diff --git a/.dockerignore b/.dockerignore index 1f7e6c71..a27998da 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,10 @@ -simics-api-sys/packages -target +config.mk +.package-list +.modcache +Dockerfile +.project-properties/ +bin/ +linux64/ +win64/ +packageinfo/ +target/ diff --git a/.github/dependabot/2023-11-07.csv b/.github/dependabot/2023-11-07.csv new file mode 100644 index 00000000..2e5ba135 --- /dev/null +++ b/.github/dependabot/2023-11-07.csv @@ -0,0 +1 @@ +CVE,Package Name,Severity,Manifest File,Status,CVSS,CVSS Vector,Vulnerable Versions,Fixed Versions,Triaged By,Triage Reason,Triage Comment diff --git a/.github/dependabot/2023-11-07.json b/.github/dependabot/2023-11-07.json new file mode 100644 index 00000000..41b42e67 --- /dev/null +++ b/.github/dependabot/2023-11-07.json @@ -0,0 +1,3 @@ +[ + +] diff --git a/.github/simics/intel-simics-package-manager-1.7.5-linux64.tar.gz b/.github/simics/intel-simics-package-manager-1.7.5-linux64.tar.gz deleted file mode 100644 index 243f3901..00000000 --- a/.github/simics/intel-simics-package-manager-1.7.5-linux64.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ecef8c0f16e799fd847007c8e670e7b56af50f4433bef621a539f1464088a1a -size 135231606 diff --git a/.github/simics/simics-pkg-1000-6.0.169-linux64.ispm b/.github/simics/simics-pkg-1000-6.0.169-linux64.ispm deleted file mode 100755 index 5925ef73..00000000 --- a/.github/simics/simics-pkg-1000-6.0.169-linux64.ispm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:37c6d0e137f9099cf4a559764d4ec838132fe5d50cb59b8cb4a65053553014be -size 205721600 diff --git a/.github/simics/simics-pkg-2096-6.0.70-linux64.ispm b/.github/simics/simics-pkg-2096-6.0.70-linux64.ispm deleted file mode 100755 index a8c5195d..00000000 --- a/.github/simics/simics-pkg-2096-6.0.70-linux64.ispm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de09f5103fb8953b713d109f57d8c1d6cf439e19d8f34629578c1ad869d72f8c -size 30269440 diff --git a/.github/simics/simics-pkg-8112-6.0.17-linux64.ispm b/.github/simics/simics-pkg-8112-6.0.17-linux64.ispm deleted file mode 100644 index d8f65ea2..00000000 --- a/.github/simics/simics-pkg-8112-6.0.17-linux64.ispm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2c1a8f6f2f139a84facd1eef9014bcbb65bddc018df49283cf9368e05104bac1 -size 74608640 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0dd30d95..630a26df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,493 +1,460 @@ --- -# SDL task names take the form " ([NE]/(NA|C|I|IP)) - " where: -# - N: No evidence required -# - E: Evidence required -# - NA: Not Applicable -# - C: Complete -# - I: Incomplete -# - IP: In Progress -# -# List of SDL tasks that are NOT checked by this pipeline: -# - CT636: Trade compliance classification: Published free of nonstandard crypto -# - CT52: Obtain Open Source PBT Approval -# - CT38: Conduct security progress reviews -# - CT36: Register SW components in OneBOM -# - CT25: Perform gap analysis on SDL plan -# - CT23: Disposition security vulnerabilities -# - CT22: Conduct manual code reviews -# - CT47: Complete a risk assessment for reused components - name: CI on: - push: - branches: ["main"] - pull_request: - branches: ["main"] + push: + branches: ["main"] + pull_request: + branches: ["main"] env: - CARGO_TERM_COLOR: always - SIMICS_PUBLIC_ISPM_VERSION: 1.7.5 - # Simics base - SIMICS_PUBLIC_PACKAGE_VERSION_1000: 6.0.169 - # QSP X86 - SIMICS_PUBLIC_PACKAGE_VERSION_2096: 6.0.70 - # QSP CPU - SIMICS_PUBLIC_PACKAGE_VERSION_8112: 6.0.17 + CARGO_TERM_COLOR: always + PUBLIC_SIMICS_PKGS_URL: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/simics-6-packages-2023-31-linux64.ispm" + PUBLIC_SIMICS_ISPM_URL: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-linux64.tar.gz" + PUBLIC_SIMICS_PKGS_URL_WINDOWS: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/simics-6-packages-2023-31-win64.ispm" + PUBLIC_SIMICS_ISPM_URL_WINDOWS: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-win64.exe" + PUBLIC_SIMICS_PACKAGE_VERSION_1000: "6.0.169" + MINGW_URL: "https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0-16.0.6-11.0.0-ucrt-r1/winlibs-x86_64-posix-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64ucrt-11.0.0-r1.7z" + MINGW_VERSION: "13.2.0-16.0.6-11.0.0-ucrt-r1" jobs: - build_and_test: - name: Build and Test - strategy: - matrix: - simics_version: [ - # Public package tests only check latest SIMICS release - "6.0.169", - ] - container: ubuntu:22.04 - runs-on: ubuntu-latest - steps: - - name: Install Dependencies - shell: bash - run: | - apt-get -y update && \ - apt-get -y install \ - git \ - curl \ - build-essential \ - cmake \ - git-lfs - - uses: actions/checkout@v3 - with: - lfs: true - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - components: rustfmt,clippy,miri - - name: Install SIMICS (External) - shell: bash - run: | - mkdir -p "${HOME}/simics/ispm" - tar --strip-components=1 -C "${HOME}/simics/ispm" \ - -xvf .github/simics/intel-simics-package-manager-${{ env.SIMICS_PUBLIC_ISPM_VERSION }}-linux64.tar.gz - "${HOME}/simics/ispm/ispm" \ - packages \ - --non-interactive \ - --verbose \ - --install-dir "${HOME}/simics" \ - --install .github/simics/simics-pkg-1000-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_1000 }}-linux64.ispm \ - --install .github/simics/simics-pkg-2096-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_2096 }}-linux64.ispm \ - --install .github/simics/simics-pkg-8112-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_8112 }}-linux64.ispm - - name: Set up .env - shell: bash - run: | - echo "SIMICS_HOME=${HOME}/simics" > .env - - name: Build Project - run: | - cargo build --features=${{ matrix.simics_version }} - - name: Check Project - run: | - cargo clippy --features=${{ matrix.simics_version}} - - name: Test Project - run: | - cargo test --features=${{ matrix.simics_version }} || ( echo "❗ Tests failed for SIMICS version ${{ matrix.simics_version }}" && exit 1 ) - echo "✅ Tests passed for SIMICS version ${{ matrix.simics_version }}" - - name: (T157, T375, T300) (N/C) - Temporary files must be cleaned up after the resource is used, Release resources when no longer needed, Test that temporary files are cleaned up after the resource is used - run: | - cargo test --manifest-path util/tmp-dir/Cargo.toml \ - || ( echo "❗ [T157] tmp-dir tests failed" && exit 1 ) - echo "✅ [T157] tmp-dir tests pass" - echo "✅ [T375] Temporary file/directory resources are released, see T157 test results" - echo "✅ [T375] LibAFL Shared memory resources are released via clean shutdown in with ::send_exiting" - echo "✅ [T300] Temporary files are cleaned up. See T157." - - name: (T297, T162, T572, T595) (N/C) - Verify that target pathname is validated before retrieving local resources, Validate pathname before retrieving local resources, Check for symlinks before opening files, Test that your application checks for symlinks before opening files - run: | - cargo test --features=${{ matrix.simics_version }} --manifest-path simics-tests/Cargo.toml path \ - || ( echo "❗ [T297] Simics path tests failed" && exit 1 ) - echo "✅ [T297] Simics path tests passed (tests check pathname validation)" - echo "✅ [T162] Simics path tests passed (tests check pathname validation)" - echo "✅ [T572] File paths are canonicalized/normalized before opening. See T297." - echo "✅ [T595] Symlinks are checked before using files. See T297." - - name: Build Docs - run: | - cargo doc --features=${{ matrix.simics_version }} --workspace \ - --no-deps - - name: Test Docs - run: | - cargo test --doc --features=${{ matrix.simics_version }} - - static_analysis: - name: Run Static Analysis - container: ubuntu:22.04 - runs-on: ubuntu-latest - steps: - - name: Install Dependencies - shell: bash - run: | - apt-get -y update && \ - apt-get -y install \ - git \ - curl \ - build-essential \ - cmake \ - git-lfs - - uses: actions/checkout@v3 - with: - lfs: true - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - components: rustfmt,clippy,miri - - name: Install SIMICS (External) - shell: bash - run: | - mkdir -p "${HOME}/simics/ispm" - tar --strip-components=1 -C "${HOME}/simics/ispm" \ - -xvf .github/simics/intel-simics-package-manager-${{ env.SIMICS_PUBLIC_ISPM_VERSION }}-linux64.tar.gz - "${HOME}/simics/ispm/ispm" \ - packages \ - --non-interactive \ - --verbose \ - --install-dir "${HOME}/simics" \ - --install .github/simics/simics-pkg-1000-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_1000 }}-linux64.ispm \ - --install .github/simics/simics-pkg-2096-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_2096 }}-linux64.ispm \ - --install .github/simics/simics-pkg-8112-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_8112 }}-linux64.ispm - - name: Set up .env - shell: bash - run: | - echo "SIMICS_HOME=${HOME}/simics" > .env - - name: CT39 - Clippy Check Project - run: | - cargo clippy --features=${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_1000 }} \ - || ( echo "❗ [CT39 (1/2)] Failed clippy static analysis checks" && exit 1 ) - echo "✅ [CT39 (1/2)] Passed clippy static analysis checks" - - name: CT39 - MIRI Check Project - run: | - cargo clippy --features=${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_1000 }} - MIRIFLAGS="-Zmiri-backtrace=full -Zmiri-disable-isolation -Zmiri-panic-on-unsupported" cargo \ - miri test --features=${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_1000 }} \ - || ( echo "❗ [CT39 (2/2)] Failed MIRI static analysis checks" && exit 1 ) - echo "✅ [CT39 (2/2)] Passed MIRI static analysis checks" - - fuzz_tests: - name: Run Fuzz Tests - container: ubuntu:22.04 - runs-on: ubuntu-latest - steps: - - name: Install Dependencies - shell: bash - run: | - apt-get -y update && \ - apt-get -y install \ - git \ - curl \ - build-essential \ - cmake \ - git-lfs - - uses: actions/checkout@v3 - with: - lfs: true - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - components: rustfmt,clippy,miri - - name: Install SIMICS (External) - shell: bash - run: | - mkdir -p "${HOME}/simics/ispm" - tar --strip-components=1 -C "${HOME}/simics/ispm" \ - -xvf .github/simics/intel-simics-package-manager-${{ env.SIMICS_PUBLIC_ISPM_VERSION }}-linux64.tar.gz - "${HOME}/simics/ispm/ispm" \ - packages \ - --non-interactive \ - --verbose \ - --install-dir "${HOME}/simics" \ - --install .github/simics/simics-pkg-1000-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_1000 }}-linux64.ispm \ - --install .github/simics/simics-pkg-2096-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_2096 }}-linux64.ispm \ - --install .github/simics/simics-pkg-8112-${{ env.SIMICS_PUBLIC_PACKAGE_VERSION_8112 }}-linux64.ispm - - name: Set up .env - shell: bash - run: | - echo "SIMICS_HOME=${HOME}/simics" > .env - - name: Install Cargo-Fuzz - run: | - cargo install cargo-fuzz - - name: CT632 (E/C) - Perform fuzz testing - run: | - cd util/version-tools - - cargo fuzz build - - timeout --preserve-status 600 cargo fuzz run \ - fuzz_version_constraint_parse || exit 0 - - echo "Done fuzzing!" - - if [ -d ./fuzz/artifacts ]; then - if find ./fuzz/artifacts -mindepth 1 -maxdepth 1 2> /dev/null | read -r; then - echo "❗ [CT632] Fuzz test found an issue" - exit 1 - fi - fi - cd ../.. - - cd util/raw-cstr - - cargo fuzz build - - timeout --preserve-status 600 cargo fuzz run \ - fuzz_raw_cstr || exit 0 - - echo "Done fuzzing!" - - if [ -d ./fuzz/artifacts ]; then - if find ./fuzz/artifacts -mindepth 1 -maxdepth 1 2> /dev/null | read -r; then - echo "❗ [CT632] Fuzz test found an issue" - exit 1 - fi - fi - cd ../.. - echo "✅ [CT632] Fuzz test completed" - exit 0 - - super_lint: - name: Run Super Linter - container: github/super-linter - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - lfs: false - - name: (CT222) (E/C) - Use hadolint to evaluate Dockerfile configuration - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Rust validation is handled by build_and_test - VALIDATE_RUST_2015: false - VALIDATE_RUST_2018: false - VALIDATE_RUST_2021: false - VALIDATE_RUST_CLIPPY: false - # We have no non-example CPP in the codebase - VALIDATE_CPP: false - VALIDATE_CLANG_FORMAT: false - VALIDATE_JSCPD: false - # This is way too pedantic - VALIDATE_NATURAL_LANGUAGE: false - run: | - /action/lib/linter.sh || ( echo "❗ [CT222] Super linter found an issue (possibly Hadolint)" && exit 1 ) - echo "✅ [CT222] Hadolint Dockerfile check passed" - - scan_hello_world: - name: Scan Hello World EFI Builder Container - container: novafacing/kaniko-trivy-alpine:kaniko-v1.12.1-debug-trivy-v0.44.1-0.0.2 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - lfs: false - - name: Build Hello World Image - run: | - /kaniko/executor \ - --build-arg "http_proxy=${http_proxy}" \ - --build-arg "HTTP_PROXY=${HTTP_PROXY}" \ - --build-arg "https_proxy=${https_proxy}" \ - --build-arg "HTTPS_PROXY=${HTTPS_PROXY}" \ - --build-arg "no_proxy=${no_proxy}" \ - --build-arg "NO_PROXY=${NO_PROXY}" \ - --build-arg "proxy=${HTTP_PROXY}" \ - --snapshot-mode=redo \ - --use-new-run \ - --context examples/hello-world \ - --dockerfile Dockerfile \ - --no-push \ - --tar-path /hello-world.tar \ - --destination=image - - name: (T1187, T1186) (N/C) - Test if secrets are stored in Dockerfiles (Hello World Image) - run: | - /kaniko/trivy image --input /hello-world.tar - - scan_x509_parse: - name: Scan X509Parse EFI Builder Container - container: novafacing/kaniko-trivy-alpine:kaniko-v1.12.1-debug-trivy-v0.44.1-0.0.2 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - lfs: false - - name: Build X509Parse Image - run: | - /kaniko/executor \ - --build-arg "http_proxy=${http_proxy}" \ - --build-arg "HTTP_PROXY=${HTTP_PROXY}" \ - --build-arg "https_proxy=${https_proxy}" \ - --build-arg "HTTPS_PROXY=${HTTPS_PROXY}" \ - --build-arg "no_proxy=${no_proxy}" \ - --build-arg "NO_PROXY=${NO_PROXY}" \ - --build-arg "proxy=${HTTP_PROXY}" \ - --snapshot-mode=redo \ - --use-new-run \ - --context examples/x509-parse \ - --dockerfile Dockerfile \ - --no-push \ - --tar-path /x509-parse.tar \ - --destination=image - - name: (T1187, T1186) (N/C) - Test if secrets are stored in Dockerfiles (X509Parse Image) - run: | - /kaniko/trivy image --input /x509-parse.tar - - additional_sdl_checks: - name: Perform Additional SDL Checks - container: ubuntu:22.04 - runs-on: ubuntu-latest - steps: - - name: Install Dependencies - run: | - apt-get -y update && \ - apt-get -y install \ - git \ - curl \ - jq \ - wget \ - build-essential \ - cmake \ - openssl \ - libssl-dev \ - pkg-config \ - git-lfs - - uses: actions/checkout@v3 - with: - lfs: false - - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - components: rustfmt,clippy,miri - - name: Install Cargo Plugins - run: | - cargo install cargo-audit cargo-outdated - - name: CT256 (N/C) - Include security.md file in open source repos - run: | - [ -f SECURITY.md ] \ - || ( echo "❗ [CT256] Missing SECURITY.md file" && exit 1 ) - echo "✅ [CT256] SECURITY.md file found" - - name: CT37 (N/NA) - Scan release package for malware - run: | - # We mark this task as NA because we do not publish any release - # package, so we check that we indeed cannot publish anything - grep -q "publish = false" 'Cargo.toml' || ( echo "❗ [CT37] Crate {} is publishable" && exit 1 ) - find . -mindepth 2 -type f -name 'Cargo.toml' -not -path './target/*' -print0 2> /dev/null \ - | xargs -0 -i bash -c \ - 'grep -qE "publish.workspace = true|publish = false" {} || ( echo "❗ [CT37] Crate {} is publishable" && exit 1 )' \ - || exit 1 - echo "✅ [CT37] No release package is provided by this repository" - - name: (T152, T14, T174) (N/C) - Avoid asking for and using excessive permissions, Enforce Principle of least privilege, Test that the client application is not asking for excessive permissions - run: | - # All the crates I can find that escalate do so by setting uid at some - # point - find . -type f -name '*.rs' -print0 2> /dev/null \ - | xargs -0 -i bash -c \ - '! grep -Eq "sudo|setuid\(0\)" {} || ( echo "❗ [T152] sudo or setuid(0) found in {}" && exit 1 )' \ - || exit 1 - echo "✅ [T152] Elevated permissions not requested or used" - - name: (T349, T350) (N/C) - Protect audit information and logs against unauthorized access, Verify that audit information is sufficiently protected - run: | - # shellcheck disable=SC2016 - find . -type f -name '*.rs' -not -path './simics-api-sys/scripts/*' -print0 2> /dev/null \ - | xargs -0 -i bash -c \ - 'MATCH=$(grep -A16 -E "File::|OpenOptions::" {} | grep -B16 -A16 -i "log"); if [ -n "${MATCH}" ]; then echo "${MATCH}" > /tmp/logmatch.$(printf {} | sed "s/\//-/g"); fi' - find /tmp -name 'logmatch.*' -print0 2> /dev/null \ - | xargs -0 -i bash -c 'grep -qE "set_permissions.*0o[0-9]*700" {} || ( echo "❗ [T349] No set_permissions call with safe default permissions found after File:: or OpenOptions::" && exit 1 )' - echo "✅ [T349] Safe set_permissions call found for all File:: and OpenOptions:: with log mentioned" - echo "✅ [T350] Logs are protected. See T349." - - name: (T437, T438) (N/C) - Include log reduction and report generation capabilities, Verify that log reduction and report generation capabilities exist - run: | - RESULTS=$(find . -type f -name '*.rs' -not -path './target/*' -print0 2> /dev/null \ - | xargs -0 -i bash -c \ - 'grep "with_filter" {}' | wc -l) - if [ "${RESULTS}" -eq 0 ]; then ( echo "❗ [T437] no 'with_filter' calls found to restrict tracing output" && exit 1 ); fi - echo "✅ [T437] 'with_filter' calls found to restrict tracing output" - echo "✅ [T438] Log reduction implemented with log levels. See T437." - - name: T633 (N/C) - Mitigate deadlock and recursion in services - run: | - echo "✅ [T633] Restarting event mgr and Rust threading guarantees used to mitigate deadlock/recursion " - - name: (T34, T31, T127, T519) (N/C) - Refuse overly-long, malformed, non-printable characters, Validate all forms of input, Test for null byte injection, Test that input validation is done on all forms of input - run: | - cat simics-fuzz/src/args/mod.rs - echo "✅ [T34] Strongly-typed argument parsing in use, strings UTF-8 enforced by Rust std" - echo "✅ [T31] Input arguments are validated. See T34 output." - echo "✅ [T127] Malformed inputs are rejected via strong argument typing. See T34." - echo "✅ [T519] Input validation implemented. See T34." - - name: (T45, T315) (N/C) - Log potential critical security events, Verify that potential security-critical events are logged - run: | - grep -A48 "let mut harness" simics-fuzz/src/fuzzer/mod.rs - echo "✅ [T45] This project is a security tool. Potential identified security issues logged by fuzzer loop" - echo "✅ [T315] Security critical events are logged. See T45." - - name: (T159, CT185, T403, T187) (N/C) - Follow best practices for secure error and exception handling, Implement full error and exception handling, Verify that errors and exceptions are securely handled, Verify that errors and exceptions are securely handled - run: | - find . -type f -name 'lib.rs' -not -path './target/*' -print0 2> /dev/null \ - | xargs -0 -i bash -c \ - 'grep -q "unwrap_used" {} || ( echo "❗ [T159] No #![deny(clippy::unwrap_used)] directive found in {}" && exit 1 )' - echo "✅ [T159] #![deny(clippy::unwrap_used)] found in all lib.rs files" - echo "✅ [CT185] Full error and exception handling implemented. See T159 output." - echo "✅ [T403] Full error and exception handling implemented. See T159 output." - echo "✅ [T187] Full error and exception handling implemented. See T159 output." - - name: T205 (N/C) - Avoid inter-process race conditions - run: | - # This can't be grepped for - echo "✅ [T205] Data races are guarded against by using safe Rust in inter-process/inter-thread code" - - name: T206 (N/C) - Avoid TOCTOU race conditions against external resources - run: | - # This is very hard to grep for - echo "✅ [T206] Accessed resources are taken when they are checked" - - name: (T47, T229) (N/NA) - Do not log confidential data, Test that logs do not contain confidential data - run: | - echo "✅ [T47] This project does not deal with confidential data/PII" - echo "✅ [T229] This project does not deal with confidential data/PII. See T47." - - name: CT188 (N/C) - Configure minimal permissions on temporary files and directories - run: | - grep -i "DEFAULT_PERMISSIONS" util/tmp-dir/src/lib.rs - echo "✅ [CT188] Default permissions are safely set for temporary directories" - - name: T232 (N/C) - Verify that end-user transaction logs capture sufficient information - run: | - LOG_MESSAGES=$(find . -type f -name '*.rs' -not -path './target/*' -exec grep -E "trace\!|debug\!|info\!|warn\!|error\!" {} \; 2> /dev/null | wc -l) - echo "✅ [T232] ${LOG_MESSAGES} found in project" - # NOTE: We ignore vulnerabilities in GH actions' node packages explicitly, they - # are not relevant for us because we also use action checks - - name: (CT247/CT200) (N/C) - Scan 3rd-Party Components for Vulnerabilities, Verify that project is not using vulnerable 3rd party components - run: | - # shellcheck disable=SC2086,SC2143 - LATEST="$(find '.github/dependabot' -name '*.csv' -print0 \ - | xargs -r -0 ls -1 -t \ - | head -n 1)" - if ! find '.github/dependabot' -name '*.csv' -mtime -14 | grep -q '.'; then - echo "❗ [CT247/CT200] No dependabot report found from last 2 weeks. Run ./scripts/dependabot.sh." - exit 1 - fi - if tail -n+2 "${LATEST}" | grep -qv ".github/actions/toolchain"; then - cat "${LATEST}" - echo "❗ [CT247/CT200] Vulnerabilities found outside of github actions. Please remediate them." - exit 1 - fi - echo "✅ [CT247/CT200] No dependabot vulnerabilities found" - - name: (CT72/CT98) (N/C) - Secure Configuration Guidance - run: | - echo "✅ [CT72/CT98] Manual secure configuration check:" - echo " - No 3rd party software/services distributed/deployed" - echo " - Dependencies configuration:" - echo " - LibAFL configured to *not* bind publicly by default" - echo " - Rust software builds with ASLR by default" - echo " - Features not used other than SIMICS version" - echo " - Compatibility settings used for SIMICS version" - echo " - No legacy features" - - name: (T186) (N/C) - Use recommended settings and latest patches for third party libraries and software - run: | - cargo audit - - if ! cargo outdated --exit-code 1; then - echo "❗ [T186] Out of date third party dependencies found" - exit 1 - fi - - echo "✅ [T186] No outdated or vulnerable third party dependencies found" + build_and_test: + name: Build and Test + container: fedora:38 + runs-on: ubuntu-latest + steps: + - name: Add ISPM to PATH + run: | + echo "${HOME}/simics/ispm/" >> "${GITHUB_PATH}" + + - name: Install Dependencies + shell: bash + run: | + dnf -y update && \ + dnf -y install \ + alsa-lib atk clang clang-libs clang-resource-filesystem \ + clang-tools-extra cmake cups curl dosfstools g++ gcc git \ + git-lfs glibc-devel glibc-devel.i686 glibc-static \ + glibc-static.i686 gtk3 lld lld-devel lld-libs llvm llvm-libs \ + llvm-static make mesa-libgbm mtools ninja-build openssl \ + openssl-devel openssl-libs python3 python3-pip yamllint + + - uses: actions/checkout@v4 + with: + lfs: true + + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly + components: rustfmt,clippy,miri + + - name: Cache SIMICS Dependencies + id: cache-simics-packages + uses: actions/cache@v3 + with: + path: ~/simics + key: simics-linux-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} + + - name: Install SIMICS (External) + if: ${{ steps.cache-simics-packages.outputs.cache-hit != 'true' }} + shell: bash + run: | + mkdir -p "${HOME}/simics/ispm/" && \ + curl --noproxy -L -o "${HOME}/simics/ispm.tar.gz" \ + "${{ env.PUBLIC_SIMICS_ISPM_URL }}" && \ + curl --noproxy -L -o "${HOME}/simics/simics.ispm" \ + "${{ env.PUBLIC_SIMICS_PKGS_URL }}" && \ + tar -C "${HOME}/simics/ispm" --strip-components=1 \ + -xvf "${HOME}/simics/ispm.tar.gz" + + - name: Set up SIMICS Install Directory + run: | + ispm settings install-dir "${HOME}/simics" + + - name: Install SIMICS Packages + if: ${{ steps.cache-simics-packages.outputs.cache-hit != 'true' }} + run: | + ispm packages --install-bundle "${HOME}/simics/simics.ispm" \ + --non-interactive --trust-insecure-packages + + - name: Build and Install TSFFS SIMICS Package + run: | + ispm projects "$(pwd)" --create --ignore-existing-files \ + --non-interactive + bin/project-setup --force + ./build.rs + ispm packages \ + -i linux64/packages/simics-pkg-31337-6.0.0-linux64.ispm \ + --non-interactive --trust-insecure-packages + + - name: Build Project + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} cargo build + - name: Check Project + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} cargo clippy + - name: Test Project + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} cargo test -p command-ext -p raw-cstr -p tmp-dir -p version-tools || ( echo "❗ Tests failed" && exit 1 ) + echo "✅ Tests passed" + - name: Build Docs + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} cargo doc --workspace --no-deps + - name: Test Docs + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} cargo test --doc + + build_windows: + name: Build and Test (Windows) + runs-on: windows-latest + steps: + - name: Add ISPM and MinGW to PATH + run: | + set PATH $env:PATH + "C:\MinGW\bin" | Out-File -FilePath $env:GITHUB_PATH + "C:\ISPM\" | Out-File -FilePath $env:GITHUB_PATH -Append + "$PATH" | Out-File -FilePath $env:GITHUB_PATH -Append + echo "Current PATH: " $env:GITHUB_PATH + + - name: Cache MinGW + id: cache-mingw + uses: actions/cache@v3 + with: + path: C:\MinGW\ + key: mingw-${{ env.MINGW_VERSION }} + + - name: Download and Extract MinGW-w64 + if: ${{ steps.cache-mingw.outputs.cache-hit != 'true' }} + run: | + Invoke-WebRequest -URI ${{ env.MINGW_URL }} -OutFile mingw.7z + 7z x mingw.7z -oC:\mingw-w64\ + mv C:\mingw-w64\mingw64\ C:\MinGW\ + + - name: Download and Install Rust + run: | + Invoke-WebRequest -URI https://win.rustup.rs/x86_64 -o C:\rustup-init.exe + C:\rustup-init.exe --default-toolchain nightly --default-host x86_64-pc-windows-gnu -y + + - name: Cache SIMICS + id: cache-simics-packages-windows + uses: actions/cache@v3 + with: + path: | + C:\ISPM\ + C:\SIMICS\ + key: simics-windows-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} + + # ispm-installer.exe is a NSIS installer for the elctron build. We want the + # default options, so we pass /S to install silently: + # https://nsis.sourceforge.io/Docs/Chapter3.html#installerusage + # + # NOTE: We use | Out-Null on the installer command to make powershell wait for it + # to actually finish instead of forking it to the background + - name: Download and Install ISPM + if: ${{ steps.cache-simics-packages-windows.outputs.cache-hit != 'true' }} + run: | + Invoke-WebRequest -URI ${{ env.PUBLIC_SIMICS_ISPM_URL_WINDOWS }} -o C:\ispm-installer.exe + C:\ispm-installer.exe /S /D='C:\ISPM\' | Out-Null + + - name: Set SIMICS Install Directory + run: | + ispm.exe settings install-dir C:\SIMICS\ + + - name: Download and Install SIMICS Packages + if: ${{ steps.cache-simics-packages-windows.outputs.cache-hit != 'true' }} + run: | + Invoke-WebRequest -URI ${{ env.PUBLIC_SIMICS_PKGS_URL_WINDOWS }} -o C:\simics-6-packages.ispm + ispm.exe packages --install-bundle C:\simics-6-packages.ispm --non-interactive --trust-insecure-packages + + - uses: actions/checkout@v4 + with: + lfs: true + + - name: Setup, Build, and Install TSFFS + run: | + ispm.exe projects $(pwd) --create --non-interactive --ignore-existing-files + ./bin/project-setup.bat --mingw-dir C:\MinGW\ --ignore-existing-files --force + cargo -Zscript build.rs + ispm.exe packages -i win64/packages/simics-pkg-31337-6.0.0-win64.ispm --non-interactive --trust-insecure-packages + + static_analysis: + name: Run Static Analysis + container: fedora:38 + runs-on: ubuntu-latest + steps: + - name: Add ISPM to PATH + run: | + echo "${HOME}/simics/ispm/" >> "${GITHUB_PATH}" + + - name: Install Dependencies + shell: bash + run: | + dnf -y update && \ + dnf -y install \ + alsa-lib atk clang clang-libs clang-resource-filesystem \ + clang-tools-extra cmake cups curl dosfstools g++ gcc git \ + git-lfs glibc-devel glibc-devel.i686 glibc-static \ + glibc-static.i686 gtk3 lld lld-devel lld-libs llvm llvm-libs \ + llvm-static make mesa-libgbm mtools ninja-build openssl \ + openssl-devel openssl-libs python3 python3-pip yamllint + + - uses: actions/checkout@v4 + with: + lfs: true + + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly + components: rustfmt,clippy,miri + + - name: Cache SIMICS Dependencies + id: cache-simics-packages + uses: actions/cache@v3 + with: + path: ~/simics + key: simics-linux-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} + + - name: Install SIMICS (External) + if: ${{ steps.cache-simics-packages.outputs.cache-hit != 'true' }} + shell: bash + run: | + mkdir -p "${HOME}/simics/ispm/" && \ + curl --noproxy -L -o "${HOME}/simics/ispm.tar.gz" \ + "${{ env.PUBLIC_SIMICS_ISPM_URL }}" && \ + curl --noproxy -L -o "${HOME}/simics/simics.ispm" \ + "${{ env.PUBLIC_SIMICS_PKGS_URL }}" && \ + tar -C "${HOME}/simics/ispm" --strip-components=1 \ + -xvf "${HOME}/simics/ispm.tar.gz" + + - name: Set up SIMICS Install Directory + run: | + ispm settings install-dir "${HOME}/simics" + + - name: Install SIMICS Packages + if: ${{ steps.cache-simics-packages.outputs.cache-hit != 'true' }} + run: | + ispm packages --install-bundle "${HOME}/simics/simics.ispm" \ + --non-interactive --trust-insecure-packages + + - name: Build and Install TSFFS SIMICS Package + run: | + ispm projects "$(pwd)" --create --ignore-existing-files \ + --non-interactive + bin/project-setup --force + ./build.rs + ispm packages \ + -i linux64/packages/simics-pkg-31337-6.0.0-linux64.ispm \ + --non-interactive --trust-insecure-packages + + - name: CT39 - Clippy Check Project + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} cargo clippy \ + || ( echo "❗ [CT39 (1/2)] Failed clippy static analysis checks" && exit 1 ) + echo "✅ [CT39 (1/2)] Passed clippy static analysis checks" + + - name: CT39 - MIRI Check Project + run: | + SIMICS_BASE=${HOME}/simics/simics-${{ env.PUBLIC_SIMICS_PACKAGE_VERSION_1000 }} \ + MIRIFLAGS="-Zmiri-backtrace=full -Zmiri-disable-isolation -Zmiri-panic-on-unsupported" \ + cargo miri test -p command-ext -p raw-cstr -p tmp-dir -p version-tools \ + || ( echo "❗ [CT39 (2/2)] Failed MIRI static analysis checks" && exit 1 ) + echo "✅ [CT39 (2/2)] Passed MIRI static analysis checks" + + fuzz_tests: + name: Run Fuzz Tests + container: fedora:38 + runs-on: ubuntu-latest + steps: + - name: Install Dependencies + shell: bash + run: | + dnf -y update && \ + dnf -y install \ + alsa-lib atk clang clang-libs clang-resource-filesystem \ + clang-tools-extra cmake cups curl dosfstools g++ gcc git \ + git-lfs glibc-devel glibc-devel.i686 glibc-static \ + glibc-static.i686 gtk3 lld lld-devel lld-libs llvm llvm-libs \ + llvm-static make mesa-libgbm mtools ninja-build openssl \ + openssl-devel openssl-libs python3 python3-pip yamllint + + - uses: actions/checkout@v4 + with: + lfs: true + + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly + components: rustfmt,clippy,miri + + - name: Install Cargo-Fuzz + run: | + cargo install cargo-fuzz + - name: CT632 (E/C) - Perform fuzz testing + run: | + cd modules/tsffs/src/util/version-tools + + cargo fuzz build + + timeout --preserve-status 600 cargo fuzz run \ + fuzz_version_constraint_parse || exit 0 + + echo "Done fuzzing!" + + if [ -d ./fuzz/artifacts ]; then + if find ./fuzz/artifacts -mindepth 1 -maxdepth 1 2> /dev/null | read -r; then + echo "❗ [CT632] Fuzz test found an issue" + exit 1 + fi + fi + cd ../../../../../ + + cd modules/tsffs/src/util/util/raw-cstr + + cargo fuzz build + + timeout --preserve-status 600 cargo fuzz run \ + fuzz_raw_cstr || exit 0 + + echo "Done fuzzing!" + + if [ -d ./fuzz/artifacts ]; then + if find ./fuzz/artifacts -mindepth 1 -maxdepth 1 2> /dev/null | read -r; then + echo "❗ [CT632] Fuzz test found an issue" + exit 1 + fi + fi + + cd ../../../../../ + + echo "✅ [CT632] Fuzz test completed" + exit 0 + + super_lint: + name: Run Super Linter + container: github/super-linter + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + lfs: false + - name: (CT222) (E/C) - Use hadolint to evaluate Dockerfile configuration + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Rust validation is handled by build_and_test + VALIDATE_RUST_2015: false + VALIDATE_RUST_2018: false + VALIDATE_RUST_2021: false + VALIDATE_RUST_CLIPPY: false + # We have no non-example CPP in the codebase + VALIDATE_CPP: false + VALIDATE_CLANG_FORMAT: false + VALIDATE_JSCPD: false + # This is way too pedantic + VALIDATE_NATURAL_LANGUAGE: false + # Dont flake8/mypy/pylint because our only python files attempt to import + # simics and fail + VALIDATE_PYTHON_FLAKE8: false + VALIDATE_PYTHON_MYPY: false + VALIDATE_PYTHON_PYLINT: false + run: | + /action/lib/linter.sh || ( echo "❗ [CT222] Super linter found an issue (possibly Hadolint)" && exit 1 ) + echo "✅ [CT222] Hadolint Dockerfile check passed" + + scan_containers: + runs-on: ubuntu-latest + strategy: + matrix: + dockerfile: + # NOTE: These containers exceed the GitHub size limit and must be scanned manually + # - Dockerfile + # - examples/manual-example/Dockerfile + # - modules/tsffs/tests/targets/minimal-riscv-64/Dockerfile + # - modules/tsffs/tests/targets/minimal-riscv-64-edk2/Dockerfile + - modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/Dockerfile + - modules/tsffs/tests/targets/minimal-x86_64-timeout/Dockerfile + - modules/tsffs/tests/targets/minimal-x86_64-edk2/Dockerfile + include: + # NOTE: These containers exceed the GitHub size limit and must be scanned manually + # - dockerfile: Dockerfile + # context: . + # - dockerfile: examples/manual-example/Dockerfile + # context: . + # - dockerfile: modules/tsffs/tests/targets/minimal-riscv-64/Dockerfile + # context: modules/tsffs/tests/targets/minimal-riscv-64/ + # - dockerfile: modules/tsffs/tests/targets/minimal-riscv-64-edk2/Dockerfile + # context: modules/tsffs/tests/targets/minimal-riscv-64-edk2/ + - dockerfile: modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/Dockerfile + context: modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/ + - dockerfile: modules/tsffs/tests/targets/minimal-x86_64-timeout/Dockerfile + context: modules/tsffs/tests/targets/minimal-x86_64-timeout/ + - dockerfile: modules/tsffs/tests/targets/minimal-x86_64-edk2/Dockerfile + context: modules/tsffs/tests/targets/minimal-x86_64-edk2/ + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + lfs: false + + - name: Build Image + run: | + docker build -t container -f ${{ matrix.dockerfile }} ${{ matrix.context }} + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: container + + additional_sdl_checks: + name: Perform Additional SDL Checks + container: fedora:38 + runs-on: ubuntu-latest + steps: + - name: Install Dependencies + run: | + dnf -y update && \ + dnf -y install \ + alsa-lib atk clang clang-libs clang-resource-filesystem \ + clang-tools-extra cmake cups curl dosfstools g++ gcc git \ + git-lfs glibc-devel glibc-devel.i686 glibc-static \ + glibc-static.i686 gtk3 lld lld-devel lld-libs llvm llvm-libs \ + llvm-static make mesa-libgbm mtools ninja-build openssl \ + openssl-devel openssl-libs python3 python3-pip yamllint + + - uses: actions/checkout@v4 + with: + lfs: false + - uses: dtolnay/rust-toolchain@nightly + with: + toolchain: nightly + components: rustfmt,clippy,miri + + - name: Install Cargo Plugins + run: | + cargo install cargo-audit cargo-outdated + - name: (CT247/CT200) (N/C) - Scan 3rd-Party Components for Vulnerabilities, Verify that project is not using vulnerable 3rd party components + run: | + # shellcheck disable=SC2086,SC2143 + LATEST="$(find '.github/dependabot' -name '*.csv' -print0 \ + | xargs -r -0 ls -1 -t \ + | head -n 1)" + if ! find '.github/dependabot' -name '*.csv' -mtime -14 | grep -q '.'; then + echo "❗ [CT247/CT200] No dependabot report found from last 2 weeks. Run ./scripts/dependabot.sh." + exit 1 + fi + if tail -n+2 "${LATEST}" | grep -qv ".github/actions/toolchain"; then + cat "${LATEST}" + echo "❗ [CT247/CT200] Vulnerabilities found outside of github actions. Please remediate them." + exit 1 + fi + echo "✅ [CT247/CT200] No dependabot vulnerabilities found" + - name: (T186) (N/C) - Use recommended settings and latest patches for third party libraries and software + run: | + cargo audit + + if ! cargo outdated --exit-code 1; then + echo "❗ [T186] Out of date third party dependencies found" + exit 1 + fi + echo "✅ [T186] No outdated or vulnerable third party dependencies found" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..5f999e52 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,51 @@ +name: Deploy Documentation + +on: + push: + branches: ["main"] + + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + deploy: + runs-on: ubuntu-latest + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@nightly + + - name: Install mdBook + run: | + cargo install mdbook + + - name: Build mdBook + run: | + cd docs + mdbook build + + - name: Setup Pages + uses: actions/configure-pages@v3 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + # Upload entire repository + path: "./docs/book/" + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index 0f4a3e72..b368aa19 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,29 @@ -/target -/Cargo.lock +Cargo.lock .env .secrets .secret* .mypy_cache -simics-api-sys/packages -paper +*restricted* +config.mk +.package-list +.modcache +simics* +GNUmakefile* +*~ + + +.cargo/ +.vscode/ +.mypy_cache/ +.project-properties/ +bin/ +dist-packages/ +dist/ +distfile-list/ +doc-src/ +linux64/ +logs/ +packageinfo/ +packageinfo/ +target/ +win64/ diff --git a/.textlintignore b/.textlintignore deleted file mode 100644 index f16f6145..00000000 --- a/.textlintignore +++ /dev/null @@ -1 +0,0 @@ -BOM.txt \ No newline at end of file diff --git a/.vscode/.gitignore b/.vscode/.gitignore deleted file mode 100644 index 450a2340..00000000 --- a/.vscode/.gitignore +++ /dev/null @@ -1 +0,0 @@ -launch.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 1218e1f9..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "C_Cpp.clang_format_style": "{Language: Cpp, BasedOnStyle: LLVM, AccessModifierOffset: -4, AlignAfterOpenBracket: Align, AlignArrayOfStructures: None, AlignConsecutiveMacros: None, AlignConsecutiveAssignments: None, AlignConsecutiveBitFields: None, AlignConsecutiveDeclarations: None, AlignEscapedNewlines: Right, AlignOperands: Align, AlignTrailingComments: true, AllowAllArgumentsOnNextLine: true, AllowAllConstructorInitializersOnNextLine: true, AllowAllParametersOfDeclarationOnNextLine: true, AllowShortEnumsOnASingleLine: true, AllowShortBlocksOnASingleLine: Never, AllowShortCaseLabelsOnASingleLine: false, AllowShortFunctionsOnASingleLine: All, AllowShortLambdasOnASingleLine: All, AllowShortIfStatementsOnASingleLine: Never, AllowShortLoopsOnASingleLine: false, AlwaysBreakAfterDefinitionReturnType: None, AlwaysBreakAfterReturnType: None, AlwaysBreakBeforeMultilineStrings: false, AlwaysBreakTemplateDeclarations: MultiLine, BinPackArguments: true, BinPackParameters: true, BraceWrapping: {, AfterCaseLabel: false, AfterClass: false, AfterControlStatement: Never, AfterEnum: false, AfterFunction: false, AfterNamespace: false, AfterObjCDeclaration: false, AfterStruct: false, AfterUnion: false, AfterExternBlock: false, BeforeCatch: false, BeforeElse: false, BeforeLambdaBody: false, BeforeWhile: false, IndentBraces: false, SplitEmptyFunction: true, SplitEmptyRecord: true, SplitEmptyNamespace: true, }, BreakBeforeBinaryOperators: None, BreakBeforeConceptDeclarations: true, BreakBeforeBraces: Attach, BreakBeforeInheritanceComma: false, BreakInheritanceList: BeforeColon, BreakBeforeTernaryOperators: true, BreakConstructorInitializersBeforeComma: false, BreakConstructorInitializers: BeforeColon, BreakAfterJavaFieldAnnotations: false, BreakStringLiterals: true, ColumnLimit: 80, CompactNamespaces: false, ConstructorInitializerAllOnOneLineOrOnePerLine: false, ConstructorInitializerIndentWidth: 4, ContinuationIndentWidth: 4, Cpp11BracedListStyle: true, DeriveLineEnding: true, DerivePointerAlignment: false, DisableFormat: false, EmptyLineAfterAccessModifier: Never, EmptyLineBeforeAccessModifier: LogicalBlock, ExperimentalAutoDetectBinPacking: false, FixNamespaceComments: true, IncludeBlocks: Preserve, IncludeIsMainRegex: '(Test)?$', IncludeIsMainSourceRegex: '', IndentAccessModifiers: false, IndentCaseLabels: true, IndentCaseBlocks: false, IndentGotoLabels: true, IndentPPDirectives: None, IndentExternBlock: AfterExternBlock, IndentRequires: false, IndentWidth: 4, IndentWrappedFunctionNames: false, InsertTrailingCommas: None, JavaScriptQuotes: Leave, JavaScriptWrapImports: true, KeepEmptyLinesAtTheStartOfBlocks: true, LambdaBodyIndentation: Signature, MacroBlockBegin: '', MacroBlockEnd: '', MaxEmptyLinesToKeep: 1, NamespaceIndentation: None, ObjCBinPackProtocolList: Auto, ObjCBlockIndentWidth: 2, ObjCBreakBeforeNestedBlockParam: true, ObjCSpaceAfterProperty: false, ObjCSpaceBeforeProtocolList: true, PenaltyBreakAssignment: 2, PenaltyBreakBeforeFirstCallParameter: 19, PenaltyBreakComment: 300, PenaltyBreakFirstLessLess: 120, PenaltyBreakString: 1000, PenaltyBreakTemplateDeclaration: 10, PenaltyExcessCharacter: 1000000, PenaltyReturnTypeOnItsOwnLine: 60, PenaltyIndentedWhitespace: 0, PointerAlignment: Right, PPIndentWidth: -1, ReferenceAlignment: Pointer, ReflowComments: true, ShortNamespaceLines: 1, SortIncludes: CaseSensitive, SortJavaStaticImport: Before, SortUsingDeclarations: true, SpaceAfterCStyleCast: false, SpaceAfterLogicalNot: false, SpaceAfterTemplateKeyword: true, SpaceBeforeAssignmentOperators: true, SpaceBeforeCaseColon: false, SpaceBeforeCpp11BracedList: false, SpaceBeforeCtorInitializerColon: true, SpaceBeforeInheritanceColon: true, SpaceBeforeParens: ControlStatements, SpaceAroundPointerQualifiers: Default, SpaceBeforeRangeBasedForLoopColon: true, SpaceInEmptyBlock: false, SpaceInEmptyParentheses: false, SpacesBeforeTrailingComments: 1, SpacesInAngles: Never, SpacesInConditionalStatement: false, SpacesInContainerLiterals: true, SpacesInCStyleCastParentheses: false, SpacesInLineCommentPrefix: {, Minimum: 1, Maximum: 1, }, SpacesInParentheses: false, SpacesInSquareBrackets: false, SpaceBeforeSquareBrackets: false, BitFieldColonSpacing: Both, Standard: Latest, TabWidth: 4, UseCRLF: false, UseTab: Never}", - "C_Cpp.clang_format_fallbackStyle": "{Language: Cpp, BasedOnStyle: LLVM, AccessModifierOffset: -4, AlignAfterOpenBracket: Align, AlignArrayOfStructures: None, AlignConsecutiveMacros: None, AlignConsecutiveAssignments: None, AlignConsecutiveBitFields: None, AlignConsecutiveDeclarations: None, AlignEscapedNewlines: Right, AlignOperands: Align, AlignTrailingComments: true, AllowAllArgumentsOnNextLine: true, AllowAllConstructorInitializersOnNextLine: true, AllowAllParametersOfDeclarationOnNextLine: true, AllowShortEnumsOnASingleLine: true, AllowShortBlocksOnASingleLine: Never, AllowShortCaseLabelsOnASingleLine: false, AllowShortFunctionsOnASingleLine: All, AllowShortLambdasOnASingleLine: All, AllowShortIfStatementsOnASingleLine: Never, AllowShortLoopsOnASingleLine: false, AlwaysBreakAfterDefinitionReturnType: None, AlwaysBreakAfterReturnType: None, AlwaysBreakBeforeMultilineStrings: false, AlwaysBreakTemplateDeclarations: MultiLine, BinPackArguments: true, BinPackParameters: true, BraceWrapping: {, AfterCaseLabel: false, AfterClass: false, AfterControlStatement: Never, AfterEnum: false, AfterFunction: false, AfterNamespace: false, AfterObjCDeclaration: false, AfterStruct: false, AfterUnion: false, AfterExternBlock: false, BeforeCatch: false, BeforeElse: false, BeforeLambdaBody: false, BeforeWhile: false, IndentBraces: false, SplitEmptyFunction: true, SplitEmptyRecord: true, SplitEmptyNamespace: true, }, BreakBeforeBinaryOperators: None, BreakBeforeConceptDeclarations: true, BreakBeforeBraces: Attach, BreakBeforeInheritanceComma: false, BreakInheritanceList: BeforeColon, BreakBeforeTernaryOperators: true, BreakConstructorInitializersBeforeComma: false, BreakConstructorInitializers: BeforeColon, BreakAfterJavaFieldAnnotations: false, BreakStringLiterals: true, ColumnLimit: 80, CompactNamespaces: false, ConstructorInitializerAllOnOneLineOrOnePerLine: false, ConstructorInitializerIndentWidth: 4, ContinuationIndentWidth: 4, Cpp11BracedListStyle: true, DeriveLineEnding: true, DerivePointerAlignment: false, DisableFormat: false, EmptyLineAfterAccessModifier: Never, EmptyLineBeforeAccessModifier: LogicalBlock, ExperimentalAutoDetectBinPacking: false, FixNamespaceComments: true, IncludeBlocks: Preserve, IncludeIsMainRegex: '(Test)?$', IncludeIsMainSourceRegex: '', IndentAccessModifiers: false, IndentCaseLabels: true, IndentCaseBlocks: false, IndentGotoLabels: true, IndentPPDirectives: None, IndentExternBlock: AfterExternBlock, IndentRequires: false, IndentWidth: 4, IndentWrappedFunctionNames: false, InsertTrailingCommas: None, JavaScriptQuotes: Leave, JavaScriptWrapImports: true, KeepEmptyLinesAtTheStartOfBlocks: true, LambdaBodyIndentation: Signature, MacroBlockBegin: '', MacroBlockEnd: '', MaxEmptyLinesToKeep: 1, NamespaceIndentation: None, ObjCBinPackProtocolList: Auto, ObjCBlockIndentWidth: 2, ObjCBreakBeforeNestedBlockParam: true, ObjCSpaceAfterProperty: false, ObjCSpaceBeforeProtocolList: true, PenaltyBreakAssignment: 2, PenaltyBreakBeforeFirstCallParameter: 19, PenaltyBreakComment: 300, PenaltyBreakFirstLessLess: 120, PenaltyBreakString: 1000, PenaltyBreakTemplateDeclaration: 10, PenaltyExcessCharacter: 1000000, PenaltyReturnTypeOnItsOwnLine: 60, PenaltyIndentedWhitespace: 0, PointerAlignment: Right, PPIndentWidth: -1, ReferenceAlignment: Pointer, ReflowComments: true, ShortNamespaceLines: 1, SortIncludes: CaseSensitive, SortJavaStaticImport: Before, SortUsingDeclarations: true, SpaceAfterCStyleCast: false, SpaceAfterLogicalNot: false, SpaceAfterTemplateKeyword: true, SpaceBeforeAssignmentOperators: true, SpaceBeforeCaseColon: false, SpaceBeforeCpp11BracedList: false, SpaceBeforeCtorInitializerColon: true, SpaceBeforeInheritanceColon: true, SpaceBeforeParens: ControlStatements, SpaceAroundPointerQualifiers: Default, SpaceBeforeRangeBasedForLoopColon: true, SpaceInEmptyBlock: false, SpaceInEmptyParentheses: false, SpacesBeforeTrailingComments: 1, SpacesInAngles: Never, SpacesInConditionalStatement: false, SpacesInContainerLiterals: true, SpacesInCStyleCastParentheses: false, SpacesInLineCommentPrefix: {, Minimum: 1, Maximum: 1, }, SpacesInParentheses: false, SpacesInSquareBrackets: false, SpaceBeforeSquareBrackets: false, BitFieldColonSpacing: Both, Standard: Latest, TabWidth: 4, UseCRLF: false, UseTab: Never}", - "C_Cpp.clang_format_sortIncludes": true, - "C_Cpp.default.cStandard": "c17", - "C_Cpp.default.cppStandard": "c++20", - "C_Cpp.formatting": "clangFormat", - "C_Cpp.intelliSenseEngine": "disabled", - "clangd.arguments": ["--compile-commands-dir=${workspaceFolder}/builddir"], - "clangd.checkUpdates": true, - "files.associations": { - "*.in": "cpp" - }, - "mesonbuild.configureOnOpen": false, - "rust-analyzer.cargo.features": ["6.0.169"], - "git.ignoreLimitWarning": true -} diff --git a/BOM.txt b/BOM.txt index 85536892..9f06842b 100644 --- a/BOM.txt +++ b/BOM.txt @@ -1,76 +1,482 @@ -┌────────────────────┬─────────┬───────────────────────┐ -│ Name │ Version │ Licenses │ -├────────────────────┼─────────┼───────────────────────┤ -│ anyhow │ 1.0.71 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ byte-strings │ 0.2.2 │ Apache-2.0, MIT, Zlib │ -├────────────────────┼─────────┼───────────────────────┤ -│ cargo_metadata │ 0.15.4 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ clap │ 4.3.5 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ const-str │ 0.5.5 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ const_format │ 0.2.31 │ Zlib │ -├────────────────────┼─────────┼───────────────────────┤ -│ crc32fast │ 1.3.2 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ derive_builder │ 0.12.0 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ dotenvy_macro │ 0.15.7 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ itertools │ 0.10.5 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ libafl │ 0.10.1 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ libc │ 0.2.147 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ num │ 0.4.0 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ num-derive │ 0.3.3 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ num-traits │ 0.2.15 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ paste │ 1.0.12 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ proc-macro-error │ 1.0.4 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ proc-macro2 │ 1.0.60 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ quote │ 1.0.28 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ rand │ 0.8.5 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ regex │ 1.8.4 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ rng │ 0.1.0 │ BSD-2-Clause │ -├────────────────────┼─────────┼───────────────────────┤ -│ rust-fsm │ 0.6.1 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ serde │ 1.0.164 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ serde_json │ 1.0.97 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ strum │ 0.24.1 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ strum_macros │ 0.24.3 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ syn │ 2.0.18 │ Apache-2.0, MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ tracing │ 0.1.37 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ tracing-subscriber │ 0.3.17 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ versions │ 5.0.0 │ MIT │ -├────────────────────┼─────────┼───────────────────────┤ -│ walkdir │ 2.3.3 │ MIT, Unlicense │ -├────────────────────┼─────────┼───────────────────────┤ -│ yaxpeax-arch │ 0.2.7 │ 0BSD │ -├────────────────────┼─────────┼───────────────────────┤ -│ yaxpeax-x86 │ 1.1.5 │ 0BSD │ -└────────────────────┴─────────┴───────────────────────┘ - ------BEGIN anyhow 1.0.71 LICENSES----- +┌──────────────────────────────┬───────────────────────────────┬─────────────────────────────────────────────────┐ +│ Name │ Version │ Licenses │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ addr2line │ 0.21.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ adler │ 1.0.2 │ 0BSD, Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ahash │ 0.8.6 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ aho-corasick │ 1.1.2 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ anstream │ 0.6.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ anstyle │ 1.0.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ anstyle-parse │ 0.2.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ anstyle-query │ 1.0.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ anstyle-wincon │ 3.0.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ anyhow │ 1.0.75 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ autocfg │ 1.1.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ backtrace │ 0.3.69 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ basic-toml │ 0.1.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ bincode │ 1.3.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ bindgen │ 0.68.1 │ BSD-3-Clause │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ bindgen │ 0.69.1 │ BSD-3-Clause │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ bitflags │ 1.3.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ bitflags │ 2.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ byte-strings │ 0.3.1 │ Apache-2.0, MIT, Zlib │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ byte-strings-proc_macros │ 0.3.1 │ Apache-2.0, MIT, Zlib │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ byteorder │ 1.5.0 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ c2rust-bitfields │ 0.18.0 │ BSD-3-Clause │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ c2rust-bitfields-derive │ 0.18.0 │ BSD-3-Clause │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cassowary │ 0.3.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cc │ 1.0.83 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cexpr │ 0.6.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cfg-if │ 1.0.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ clang-sys │ 1.6.1 │ Apache-2.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ clap │ 4.4.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ clap_builder │ 4.4.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ clap_derive │ 4.4.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ clap_lex │ 0.6.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cobs │ 0.2.3 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ colorchoice │ 1.0.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ crossterm │ 0.19.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ crossterm │ 0.27.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ crossterm_winapi │ 0.7.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ crossterm_winapi │ 0.9.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cssparser │ 0.31.2 │ MPL-2.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ cssparser-macros │ 0.6.1 │ MPL-2.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ctor │ 0.2.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ darling │ 0.14.4 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ darling │ 0.20.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ darling_core │ 0.14.4 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ darling_core │ 0.20.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ darling_macro │ 0.14.4 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ darling_macro │ 0.20.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ dashmap │ 5.5.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ derive_builder │ 0.12.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ derive_builder_core │ 0.12.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ derive_builder_macro │ 0.12.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ derive_more │ 0.99.17 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ dissimilar │ 1.0.7 │ Apache-2.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ dtoa │ 1.0.9 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ dtoa-short │ 0.3.4 │ MPL-2.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ego-tree │ 0.6.2 │ ISC │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ either │ 1.9.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ embedded-io │ 0.4.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ erased-serde │ 0.3.31 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ errno │ 0.3.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ fnv │ 1.0.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ futf │ 0.1.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ fxhash │ 0.2.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ getopts │ 0.2.21 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ getrandom │ 0.2.10 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ gimli │ 0.28.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ glob │ 0.3.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ goblin │ 0.7.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ hashbrown │ 0.14.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ heck │ 0.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ home │ 0.5.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ hostname │ 0.3.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ html5ever │ 0.26.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ident_case │ 1.0.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ indoc │ 2.0.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ instant │ 0.1.12 │ BSD-3-Clause │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ itertools │ 0.11.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ itoa │ 1.0.9 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ jobserver │ 0.1.27 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ lazy_static │ 1.4.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ lazycell │ 1.3.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libafl │ 0.11.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libafl_bolts │ 0.11.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libafl_derive │ 0.11.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libafl_targets │ 0.11.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libc │ 0.2.149 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libloading │ 0.7.4 │ ISC │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ libm │ 0.2.8 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ linux-raw-sys │ 0.4.10 │ Apache-2.0, Apache-2.0 WITH LLVM-exception, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ lock_api │ 0.4.11 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ log │ 0.4.20 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ mac │ 0.1.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ markup5ever │ 0.11.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ match_cfg │ 0.1.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ memchr │ 2.6.4 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ meminterval │ 0.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ memoffset │ 0.7.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ minimal-lexical │ 0.2.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ miniz_oxide │ 0.7.1 │ Apache-2.0, MIT, Zlib │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ mio │ 0.7.14 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ mio │ 0.8.9 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ miow │ 0.3.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ new_debug_unreachable │ 1.0.4 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ nix │ 0.26.4 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ nom │ 7.1.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ntapi │ 0.3.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num │ 0.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num-bigint │ 0.4.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num-complex │ 0.4.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num-integer │ 0.1.45 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num-iter │ 0.1.43 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num-rational │ 0.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num-traits │ 0.2.17 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num_enum │ 0.2.3 │ BSD-3-Clause │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num_enum │ 0.7.1 │ Apache-2.0, BSD-3-Clause, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ num_enum_derive │ 0.7.1 │ Apache-2.0, BSD-3-Clause, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ object │ 0.32.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ once_cell │ 1.18.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ordered-float │ 4.1.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ parking_lot │ 0.11.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ parking_lot │ 0.12.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ parking_lot_core │ 0.8.6 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ parking_lot_core │ 0.9.9 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ paste │ 1.0.14 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ peeking_take_while │ 0.1.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf │ 0.10.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf │ 0.11.2 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf_codegen │ 0.10.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf_generator │ 0.10.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf_generator │ 0.11.2 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf_macros │ 0.11.2 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf_shared │ 0.10.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ phf_shared │ 0.11.2 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ pin-project-lite │ 0.2.13 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ pin-utils │ 0.1.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ plain │ 0.2.3 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ postcard │ 1.0.8 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ppv-lite86 │ 0.2.17 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ precomputed-hash │ 0.1.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ prettyplease │ 0.2.15 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ proc-macro-error │ 1.0.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ proc-macro-error-attr │ 1.0.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ proc-macro2 │ 0.4.30 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ proc-macro2 │ 1.0.69 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ quote │ 0.6.13 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ quote │ 1.0.33 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rand │ 0.8.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rand_chacha │ 0.3.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rand_core │ 0.6.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rangemap │ 1.4.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ratatui │ 0.23.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ redox_syscall │ 0.2.16 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ redox_syscall │ 0.4.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ regex │ 1.10.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ regex-automata │ 0.4.3 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ regex-syntax │ 0.8.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rustc-demangle │ 0.1.23 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rustc-hash │ 1.1.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rustix │ 0.38.21 │ Apache-2.0, Apache-2.0 WITH LLVM-exception, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ rustversion │ 1.0.14 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ ryu │ 1.0.15 │ Apache-2.0, BSL-1.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ same-file │ 1.0.6 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ scopeguard │ 1.2.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ scraper │ 0.18.1 │ ISC │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ scroll │ 0.11.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ scroll_derive │ 0.11.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ selectors │ 0.25.0 │ MPL-2.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ serde │ 1.0.190 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ serde_derive │ 1.0.190 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ serde_json │ 1.0.108 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ serial_test │ 2.0.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ serial_test_derive │ 2.0.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ servo_arc │ 0.3.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ shlex │ 1.2.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ signal-hook │ 0.1.17 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ signal-hook │ 0.3.17 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ signal-hook-mio │ 0.2.3 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ signal-hook-registry │ 1.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ siphasher │ 0.3.11 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ smallvec │ 1.11.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ stable_deref_trait │ 1.2.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ string_cache │ 0.8.7 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ string_cache_codegen │ 0.5.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ strsim │ 0.10.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ strum │ 0.25.0 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ strum_macros │ 0.25.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ syn │ 0.15.44 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ syn │ 1.0.109 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ syn │ 2.0.38 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ tendril │ 0.4.3 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ termcolor │ 1.3.0 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ thiserror │ 1.0.50 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ thiserror-impl │ 1.0.50 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ tracing │ 0.1.40 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ tracing-attributes │ 0.1.27 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ tracing-core │ 0.1.32 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ trybuild │ 1.0.85 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ tuple_list │ 0.1.3 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ typed-builder │ 0.16.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ typed-builder │ 0.18.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ typed-builder-macro │ 0.16.2 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ typed-builder-macro │ 0.18.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ uds │ 0.4.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ unicode-ident │ 1.0.12 │ (MIT, Apache-2.0), Unicode-DFS-2016 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ unicode-segmentation │ 1.10.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ unicode-width │ 0.1.11 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ unicode-xid │ 0.1.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ utf-8 │ 0.7.6 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ utf8parse │ 0.2.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ uuid │ 1.5.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ version_check │ 0.9.4 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ versions │ 5.0.1 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ wait-timeout │ 0.2.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ walkdir │ 2.4.0 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ wasi │ 0.11.0+wasi-snapshot-preview1 │ Apache-2.0, Apache-2.0 WITH LLVM-exception, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ which │ 4.4.2 │ MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ winapi │ 0.3.9 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ winapi-i686-pc-windows-gnu │ 0.4.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ winapi-util │ 0.1.6 │ MIT, Unlicense │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ winapi-x86_64-pc-windows-gnu │ 0.4.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows │ 0.51.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows-core │ 0.51.1 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows-sys │ 0.48.0 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows-targets │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_aarch64_gnullvm │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_aarch64_msvc │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_i686_gnu │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_i686_msvc │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_x86_64_gnu │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_x86_64_gnullvm │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ windows_x86_64_msvc │ 0.48.5 │ Apache-2.0, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ xxhash-rust │ 0.8.7 │ BSL-1.0 │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ yaxpeax-arch │ 0.2.7 │ 0BSD │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ yaxpeax-riscv │ 0.1.0 │ 0BSD │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ yaxpeax-x86 │ 1.2.0 │ 0BSD │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ zerocopy │ 0.7.23 │ Apache-2.0, BSD-2-Clause, MIT │ +├──────────────────────────────┼───────────────────────────────┼─────────────────────────────────────────────────┤ +│ zerocopy-derive │ 0.7.23 │ Apache-2.0, BSD-2-Clause, MIT │ +└──────────────────────────────┴───────────────────────────────┴─────────────────────────────────────────────────┘ + +-----BEGIN addr2line 0.21.0 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -248,7 +654,34 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + -----NEXT LICENSE----- +Copyright (c) 2016-2018 The gimli Developers + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -273,258 +706,226 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END anyhow 1.0.71 LICENSES----- +-----END addr2line 0.21.0 LICENSES----- ------BEGIN byte-strings 0.2.2 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +-----BEGIN adler 1.0.2 LICENSES----- +Copyright (C) Jonas Schievink - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. - 1. Definitions. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/LICENSE-2.0 - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +1. Definitions. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. - END OF TERMS AND CONDITIONS +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. - APPENDIX: How to apply the Apache License to your work. +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. - Copyright 2021 Daniel Henry-Mantilla +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. - http://www.apache.org/licenses/LICENSE-2.0 +END OF TERMS AND CONDITIONS - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +APPENDIX: How to apply the Apache License to your work. ------NEXT LICENSE----- -MIT License + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Copyright (c) 2021 Daniel Henry-Mantilla +Copyright [yyyy] [name of copyright owner] -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + https://www.apache.org/licenses/LICENSE-2.0 -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -----NEXT LICENSE----- -zlib License - -(C) 2021 Daniel Henry-Mantilla - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - ------END byte-strings 0.2.2 LICENSES----- - ------BEGIN cargo_metadata 0.15.4 LICENSES----- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -549,256 +950,292 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END cargo_metadata 0.15.4 LICENSES----- +-----END adler 1.0.2 LICENSES----- ------BEGIN clap 4.3.5 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +-----BEGIN ahash 0.8.6 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - 1. Definitions. +1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. - END OF TERMS AND CONDITIONS +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. - APPENDIX: How to apply the Apache License to your work. +END OF TERMS AND CONDITIONS - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +APPENDIX: How to apply the Apache License to your work. - Copyright {yyyy} {name of copyright owner} + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +Copyright [yyyy] [name of copyright owner] - http://www.apache.org/licenses/LICENSE-2.0 +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -----NEXT LICENSE----- -Copyright (c) Individual contributors +Copyright (c) 2018 Tom Kaitchuck -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END ahash 0.8.6 LICENSES----- + +-----BEGIN aho-corasick 1.1.2 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. ------END clap 4.3.5 LICENSES----- +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. ------BEGIN const_format 0.2.31 LICENSES----- -Copyright (c) 2020 Matias Rodriguez. +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. ------END const_format 0.2.31 LICENSES----- +For more information, please refer to ------BEGIN crc32fast 1.3.2 LICENSES----- +-----END aho-corasick 1.1.2 LICENSES----- + +-----BEGIN anstream 0.6.4 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -1003,9 +1440,7 @@ freely, subject to the following restrictions: -----NEXT LICENSE----- -MIT License - -Copyright (c) 2018 Sam Rijs, Alex Crichton and contributors +Copyright (c) Individual contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1025,9 +1460,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END crc32fast 1.3.2 LICENSES----- +-----END anstream 0.6.4 LICENSES----- ------BEGIN derive_builder 0.12.0 LICENSES----- +-----BEGIN anstyle 1.0.4 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -1232,9 +1667,7 @@ SOFTWARE. -----NEXT LICENSE----- -The MIT License (MIT) - -Copyright (c) 2016 rust-derive-builder contributors +Copyright (c) 2022 The rust-cli Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1254,237 +1687,213 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END derive_builder 0.12.0 LICENSES----- - ------BEGIN dotenvy_macro 0.15.7 LICENSES----- -# The MIT License (MIT) +-----END anstyle 1.0.4 LICENSES----- -Copyright (c) 2014 Santiago Lapresta and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +-----BEGIN anstyle-parse 0.2.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. ------END dotenvy_macro 0.15.7 LICENSES----- + 1. Definitions. ------BEGIN itertools 0.10.5 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -1. Definitions. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -END OF TERMS AND CONDITIONS + END OF TERMS AND CONDITIONS -APPENDIX: How to apply the Apache License to your work. + APPENDIX: How to apply the Apache License to your work. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Copyright [yyyy] [name of copyright owner] + Copyright {yyyy} {name of copyright owner} -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -----NEXT LICENSE----- -Copyright (c) 2015 +Copyright (c) 2016 Joe Wilm and individual contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -1510,448 +1919,463 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END itertools 0.10.5 LICENSES----- +-----END anstyle-parse 0.2.2 LICENSES----- ------BEGIN libc 0.2.147 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +-----BEGIN anstyle-query 1.0.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -1. Definitions. + 1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -END OF TERMS AND CONDITIONS + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. ------NEXT LICENSE----- -Copyright (c) 2014-2020 The Rust Project Developers + END OF TERMS AND CONDITIONS -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + APPENDIX: How to apply the Apache License to your work. -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. + Copyright {yyyy} {name of copyright owner} ------END libc 0.2.147 LICENSES----- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at ------BEGIN num 0.4.0 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + http://www.apache.org/licenses/LICENSE-2.0 -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -1. Definitions. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +-----NEXT LICENSE----- +Copyright (c) Individual contributors - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +-----END anstyle-query 1.0.0 LICENSES----- - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +-----BEGIN anstyle-wincon 3.0.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + 1. Definitions. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -END OF TERMS AND CONDITIONS + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -APPENDIX: How to apply the Apache License to your work. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -Copyright [yyyy] [name of copyright owner] + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. - http://www.apache.org/licenses/LICENSE-2.0 + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -----NEXT LICENSE----- -Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2015 Josh Triplett, 2022 The rust-cli Developers -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ------END num 0.4.0 LICENSES----- +-----END anstyle-wincon 3.0.1 LICENSES----- ------BEGIN num-derive 0.3.3 LICENSES----- +-----BEGIN anyhow 1.0.75 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -2129,34 +2553,7 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -----NEXT LICENSE----- -Copyright (c) 2014 The Rust Project Developers - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -2181,9 +2578,9 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END num-derive 0.3.3 LICENSES----- +-----END anyhow 1.0.75 LICENSES----- ------BEGIN num-traits 0.2.15 LICENSES----- +-----BEGIN autocfg 1.1.0 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -2387,7 +2784,7 @@ See the License for the specific language governing permissions and limitations under the License. -----NEXT LICENSE----- -Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2018 Josh Stone Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -2413,9 +2810,9 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END num-traits 0.2.15 LICENSES----- +-----END autocfg 1.1.0 LICENSES----- ------BEGIN paste 1.0.12 LICENSES----- +-----BEGIN backtrace 0.3.69 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -2593,7 +2990,34 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + -----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -2618,113 +3042,19531 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END paste 1.0.12 LICENSES----- +-----END backtrace 0.3.69 LICENSES----- ------BEGIN proc-macro-error 1.0.4 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +-----BEGIN basic-toml 0.1.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END basic-toml 0.1.7 LICENSES----- + +-----BEGIN bincode 1.3.3 LICENSES----- +The MIT License (MIT) -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +Copyright (c) 2014 Ty Overby - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END bincode 1.3.3 LICENSES----- + +-----BEGIN bindgen 0.68.1 LICENSES----- +BSD 3-Clause License + +Copyright (c) 2013, Jyun-Yan You +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----END bindgen 0.68.1 LICENSES----- + +-----BEGIN bindgen 0.69.1 LICENSES----- +BSD 3-Clause License + +Copyright (c) 2013, Jyun-Yan You +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----END bindgen 0.69.1 LICENSES----- + +-----BEGIN bitflags 1.3.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END bitflags 1.3.2 LICENSES----- + +-----BEGIN bitflags 2.4.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END bitflags 2.4.1 LICENSES----- + +-----BEGIN byte-strings 0.3.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2021 Daniel Henry-Mantilla + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +MIT License + +Copyright (c) 2021 Daniel Henry-Mantilla + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----NEXT LICENSE----- +zlib License + +(C) 2021 Daniel Henry-Mantilla + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +-----END byte-strings 0.3.1 LICENSES----- + +-----BEGIN byteorder 1.5.0 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +-----END byteorder 1.5.0 LICENSES----- + +-----BEGIN cassowary 0.3.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2016 Dylan Ede + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END cassowary 0.3.0 LICENSES----- + +-----BEGIN cc 1.0.83 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END cc 1.0.83 LICENSES----- + +-----BEGIN cexpr 0.6.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +(C) Copyright 2016 Jethro G. Beekman + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END cexpr 0.6.0 LICENSES----- + +-----BEGIN cfg-if 1.0.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END cfg-if 1.0.0 LICENSES----- + +-----BEGIN clang-sys 1.6.1 LICENSES----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----END clang-sys 1.6.1 LICENSES----- + +-----BEGIN clap 4.4.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-----NEXT LICENSE----- +Copyright (c) Individual contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END clap 4.4.7 LICENSES----- + +-----BEGIN clap_builder 4.4.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2015-2022 Kevin B. Knapp and Clap Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END clap_builder 4.4.7 LICENSES----- + +-----BEGIN clap_derive 4.4.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2015-2022 Kevin B. Knapp and Clap Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END clap_derive 4.4.7 LICENSES----- + +-----BEGIN clap_lex 0.6.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2015-2022 Kevin B. Knapp and Clap Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END clap_lex 0.6.0 LICENSES----- + +-----BEGIN cobs 0.2.3 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-----NEXT LICENSE----- +Copyright (c) 2015 The cobs.rs Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END cobs 0.2.3 LICENSES----- + +-----BEGIN colorchoice 1.0.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-----NEXT LICENSE----- +Copyright (c) Individual contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END colorchoice 1.0.0 LICENSES----- + +-----BEGIN crossterm 0.19.0 LICENSES----- +MIT License + +Copyright (c) 2019 Timon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END crossterm 0.19.0 LICENSES----- + +-----BEGIN crossterm 0.27.0 LICENSES----- +MIT License + +Copyright (c) 2019 Timon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END crossterm 0.27.0 LICENSES----- + +-----BEGIN crossterm_winapi 0.7.0 LICENSES----- +MIT License + +Copyright (c) 2019 Timon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END crossterm_winapi 0.7.0 LICENSES----- + +-----BEGIN crossterm_winapi 0.9.1 LICENSES----- +MIT License + +Copyright (c) 2019 Timon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END crossterm_winapi 0.9.1 LICENSES----- + +-----BEGIN cssparser 0.31.2 LICENSES----- +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +-----END cssparser 0.31.2 LICENSES----- + +-----BEGIN cssparser-macros 0.6.1 LICENSES----- +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +-----END cssparser-macros 0.6.1 LICENSES----- + +-----BEGIN ctor 0.2.5 LICENSES----- +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-----END ctor 0.2.5 LICENSES----- + +-----BEGIN darling 0.14.4 LICENSES----- +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END darling 0.14.4 LICENSES----- + +-----BEGIN darling 0.20.3 LICENSES----- +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END darling 0.20.3 LICENSES----- + +-----BEGIN darling_core 0.14.4 LICENSES----- +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END darling_core 0.14.4 LICENSES----- + +-----BEGIN darling_core 0.20.3 LICENSES----- +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END darling_core 0.20.3 LICENSES----- + +-----BEGIN darling_macro 0.14.4 LICENSES----- +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END darling_macro 0.14.4 LICENSES----- + +-----BEGIN darling_macro 0.20.3 LICENSES----- +MIT License + +Copyright (c) 2017 Ted Driggs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END darling_macro 0.20.3 LICENSES----- + +-----BEGIN dashmap 5.5.3 LICENSES----- +MIT License + +Copyright (c) 2019 Acrimon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END dashmap 5.5.3 LICENSES----- + +-----BEGIN derive_builder 0.12.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2016 rust-derive-builder contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END derive_builder 0.12.0 LICENSES----- + +-----BEGIN derive_builder_core 0.12.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2016 rust-derive-builder contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END derive_builder_core 0.12.0 LICENSES----- + +-----BEGIN derive_builder_macro 0.12.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2016 rust-derive-builder contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END derive_builder_macro 0.12.0 LICENSES----- + +-----BEGIN derive_more 0.99.17 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2016 Jelte Fennema + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END derive_more 0.99.17 LICENSES----- + +-----BEGIN dissimilar 1.0.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END dissimilar 1.0.7 LICENSES----- + +-----BEGIN dtoa 1.0.9 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END dtoa 1.0.9 LICENSES----- + +-----BEGIN dtoa-short 0.3.4 LICENSES----- +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +-----END dtoa-short 0.3.4 LICENSES----- + +-----BEGIN ego-tree 0.6.2 LICENSES----- +Copyright © 2016, Curtis McEnroe + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +-----END ego-tree 0.6.2 LICENSES----- + +-----BEGIN either 1.9.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END either 1.9.0 LICENSES----- + +-----BEGIN embedded-io 0.4.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2022 The embedded-io authors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END embedded-io 0.4.0 LICENSES----- + +-----BEGIN erased-serde 0.3.31 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END erased-serde 0.3.31 LICENSES----- + +-----BEGIN errno 0.3.5 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Chris Wong + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END errno 0.3.5 LICENSES----- + +-----BEGIN fnv 1.0.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END fnv 1.0.7 LICENSES----- + +-----BEGIN futf 0.1.5 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 Keegan McAllister + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END futf 0.1.5 LICENSES----- + +-----BEGIN getopts 0.2.21 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END getopts 0.2.21 LICENSES----- + +-----BEGIN getrandom 0.2.10 LICENSES----- + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END getrandom 0.2.10 LICENSES----- + +-----BEGIN gimli 0.28.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END gimli 0.28.0 LICENSES----- + +-----BEGIN glob 0.3.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END glob 0.3.1 LICENSES----- + +-----BEGIN goblin 0.7.1 LICENSES----- +The MIT License (MIT) + +Copyright (c) m4b 2016-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END goblin 0.7.1 LICENSES----- + +-----BEGIN hashbrown 0.14.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 Amanieu d'Antras + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END hashbrown 0.14.2 LICENSES----- + +-----BEGIN heck 0.4.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END heck 0.4.1 LICENSES----- + +-----BEGIN home 0.5.5 LICENSES----- + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/LICENSE-2.0 + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END home 0.5.5 LICENSES----- + +-----BEGIN hostname 0.3.1 LICENSES----- +MIT License + +Copyright (c) 2016 fengcen +Copyright (c) 2019 svartalf + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END hostname 0.3.1 LICENSES----- + +-----BEGIN html5ever 0.26.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The html5ever Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END html5ever 0.26.0 LICENSES----- + +-----BEGIN ident_case 1.0.1 LICENSES----- +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END ident_case 1.0.1 LICENSES----- + +-----BEGIN indoc 2.0.4 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END indoc 2.0.4 LICENSES----- + +-----BEGIN instant 0.1.12 LICENSES----- +Copyright (c) 2019, Sébastien Crozet +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the author nor the names of its contributors may be used + to endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----END instant 0.1.12 LICENSES----- + +-----BEGIN itertools 0.11.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END itertools 0.11.0 LICENSES----- + +-----BEGIN itoa 1.0.9 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END itoa 1.0.9 LICENSES----- + +-----BEGIN jobserver 0.1.27 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END jobserver 0.1.27 LICENSES----- + +-----BEGIN lazy_static 1.4.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2010 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END lazy_static 1.4.0 LICENSES----- + +-----BEGIN lazycell 1.3.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Original work Copyright (c) 2014 The Rust Project Developers +Modified work Copyright (c) 2016-2018 Nikita Pekin and lazycell contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END lazycell 1.3.0 LICENSES----- + +-----BEGIN libc 0.2.149 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Copyright (c) 2014-2020 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END libc 0.2.149 LICENSES----- + +-----BEGIN libloading 0.7.4 LICENSES----- +Copyright © 2015, Simonas Kazlauskas + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without +fee is hereby granted, provided that the above copyright notice and this permission notice appear +in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +-----END libloading 0.7.4 LICENSES----- + +-----BEGIN libm 0.2.8 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2018 Jorge Aparicio + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END libm 0.2.8 LICENSES----- + +-----BEGIN linux-raw-sys 0.4.10 LICENSES----- +Short version for non-lawyers: + +`linux-raw-sys` is triple-licensed under Apache 2.0 with the LLVM Exception, +Apache 2.0, and MIT terms. + + +Longer version: + +Copyrights in the `linux-raw-sys` project are retained by their contributors. +No copyright assignment is required to contribute to the `linux-raw-sys` +project. + +Some files include code derived from Rust's `libstd`; see the comments in +the code for details. + +Except as otherwise noted (below and/or in individual files), `linux-raw-sys` +is licensed under: + + - the Apache License, Version 2.0, with the LLVM Exception + or + + - the Apache License, Version 2.0 + or + , + - or the MIT license + or + , + +at your option. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END linux-raw-sys 0.4.10 LICENSES----- + +-----BEGIN lock_api 0.4.11 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END lock_api 0.4.11 LICENSES----- + +-----BEGIN log 0.4.20 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END log 0.4.20 LICENSES----- + +-----BEGIN markup5ever 0.11.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The html5ever Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END markup5ever 0.11.0 LICENSES----- + +-----BEGIN match_cfg 0.1.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END match_cfg 0.1.0 LICENSES----- + +-----BEGIN memchr 2.6.4 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +-----END memchr 2.6.4 LICENSES----- + +-----BEGIN memoffset 0.7.1 LICENSES----- +Copyright (c) 2017 Gilad Naaman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-----END memoffset 0.7.1 LICENSES----- + +-----BEGIN minimal-lexical 0.2.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----NEXT LICENSE----- +Minimal-lexical is dual licensed under the Apache 2.0 license as well as the MIT +license. See the LICENCE-MIT and the LICENCE-APACHE files for the licenses. + +--- + +`src/bellerophon.rs` is loosely based off the Golang implementation, +found [here](https://github.com/golang/go/blob/b10849fbb97a2244c086991b4623ae9f32c212d0/src/strconv/extfloat.go). +That code (used if the `compact` feature is enabled) is subject to a +[3-clause BSD license](https://github.com/golang/go/blob/b10849fbb97a2244c086991b4623ae9f32c212d0/LICENSE): + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----END minimal-lexical 0.2.1 LICENSES----- + +-----BEGIN miniz_oxide 0.7.1 LICENSES----- +MIT License + +Copyright (c) 2017 Frommi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----NEXT LICENSE----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +MIT License + +Copyright (c) 2017 Frommi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----NEXT LICENSE----- +Copyright (c) 2020 Frommi + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. + +-----END miniz_oxide 0.7.1 LICENSES----- + +-----BEGIN mio 0.7.14 LICENSES----- +Copyright (c) 2014 Carl Lerche and other MIO contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----END mio 0.7.14 LICENSES----- + +-----BEGIN mio 0.8.9 LICENSES----- +Copyright (c) 2014 Carl Lerche and other MIO contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----END mio 0.8.9 LICENSES----- + +-----BEGIN miow 0.3.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END miow 0.3.7 LICENSES----- + +-----BEGIN new_debug_unreachable 1.0.4 LICENSES----- +Copyright (c) 2015 Jonathan Reem + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END new_debug_unreachable 1.0.4 LICENSES----- + +-----BEGIN nix 0.26.4 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Carl Lerche + nix-rust Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----END nix 0.26.4 LICENSES----- + +-----BEGIN nom 7.1.3 LICENSES----- +Copyright (c) 2014-2019 Geoffroy Couprie + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END nom 7.1.3 LICENSES----- + +-----BEGIN ntapi 0.3.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"),to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END ntapi 0.3.7 LICENSES----- + +-----BEGIN num 0.4.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num 0.4.1 LICENSES----- + +-----BEGIN num-bigint 0.4.4 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num-bigint 0.4.4 LICENSES----- + +-----BEGIN num-complex 0.4.4 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num-complex 0.4.4 LICENSES----- + +-----BEGIN num-integer 0.1.45 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num-integer 0.1.45 LICENSES----- + +-----BEGIN num-iter 0.1.43 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num-iter 0.1.43 LICENSES----- + +-----BEGIN num-rational 0.4.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num-rational 0.4.1 LICENSES----- + +-----BEGIN num-traits 0.2.17 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num-traits 0.2.17 LICENSES----- + +-----BEGIN num_enum 0.2.3 LICENSES----- +Copyright (c) 2018, Daniel Wagner-Hall +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of num_enum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----END num_enum 0.2.3 LICENSES----- + +-----BEGIN num_enum 0.7.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Copyright (c) 2018, Daniel Wagner-Hall +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of num_enum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num_enum 0.7.1 LICENSES----- + +-----BEGIN num_enum_derive 0.7.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Copyright (c) 2018, Daniel Wagner-Hall +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of num_enum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END num_enum_derive 0.7.1 LICENSES----- + +-----BEGIN object 0.32.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Gimli Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END object 0.32.1 LICENSES----- + +-----BEGIN once_cell 1.18.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END once_cell 1.18.0 LICENSES----- + +-----BEGIN ordered-float 4.1.1 LICENSES----- +Copyright (c) 2015 Jonathan Reem + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END ordered-float 4.1.1 LICENSES----- + +-----BEGIN parking_lot 0.11.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END parking_lot 0.11.2 LICENSES----- + +-----BEGIN parking_lot 0.12.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END parking_lot 0.12.1 LICENSES----- + +-----BEGIN parking_lot_core 0.8.6 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END parking_lot_core 0.8.6 LICENSES----- + +-----BEGIN parking_lot_core 0.9.9 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END parking_lot_core 0.9.9 LICENSES----- + +-----BEGIN paste 1.0.14 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END paste 1.0.14 LICENSES----- + +-----BEGIN peeking_take_while 0.1.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END peeking_take_while 0.1.2 LICENSES----- + +-----BEGIN phf 0.11.2 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END phf 0.11.2 LICENSES----- + +-----BEGIN phf_generator 0.11.2 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END phf_generator 0.11.2 LICENSES----- + +-----BEGIN phf_shared 0.11.2 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2014-2022 Steven Fackler, Yuki Okushi + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END phf_shared 0.11.2 LICENSES----- + +-----BEGIN pin-project-lite 0.2.13 LICENSES----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END pin-project-lite 0.2.13 LICENSES----- + +-----BEGIN pin-utils 0.1.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2018 The pin-utils authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2018 The pin-utils authors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END pin-utils 0.1.0 LICENSES----- + +-----BEGIN plain 0.2.3 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 Plain contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END plain 0.2.3 LICENSES----- + +-----BEGIN postcard 1.0.8 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2019 Anthony James Munns + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END postcard 1.0.8 LICENSES----- + +-----BEGIN ppv-lite86 0.2.17 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2019 The CryptoCorrosion Contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2019 The CryptoCorrosion Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END ppv-lite86 0.2.17 LICENSES----- + +-----BEGIN precomputed-hash 0.1.1 LICENSES----- +MIT License + +Copyright (c) 2017 Emilio Cobos Álvarez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END precomputed-hash 0.1.1 LICENSES----- + +-----BEGIN prettyplease 0.2.15 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END prettyplease 0.2.15 LICENSES----- + +-----BEGIN proc-macro-error 1.0.4 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must @@ -2809,24 +22651,11387 @@ APPENDIX: How to apply the Apache License to your work. same "printed page" as the copyright notice for easier identification within third-party archives. -Copyright 2019-2020 CreepySkeleton +Copyright 2019-2020 CreepySkeleton + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +MIT License + +Copyright (c) 2019-2020 CreepySkeleton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END proc-macro-error 1.0.4 LICENSES----- + +-----BEGIN proc-macro-error-attr 1.0.4 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2019-2020 CreepySkeleton + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +MIT License + +Copyright (c) 2019-2020 CreepySkeleton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END proc-macro-error-attr 1.0.4 LICENSES----- + +-----BEGIN proc-macro2 0.4.30 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END proc-macro2 0.4.30 LICENSES----- + +-----BEGIN proc-macro2 1.0.69 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END proc-macro2 1.0.69 LICENSES----- + +-----BEGIN quote 0.6.13 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END quote 0.6.13 LICENSES----- + +-----BEGIN quote 1.0.33 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END quote 1.0.33 LICENSES----- + +-----BEGIN rand 0.8.5 LICENSES----- +Copyrights in the Rand project are retained by their contributors. No +copyright assignment is required to contribute to the Rand project. + +For full authorship information, see the version control history. + +Except as otherwise noted (below and/or in individual files), Rand is +licensed under the Apache License, Version 2.0 or + or the MIT license + or , at your option. + +The Rand project includes code from the Rust project +published under these same licenses. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rand 0.8.5 LICENSES----- + +-----BEGIN rand_chacha 0.3.1 LICENSES----- +Copyrights in the Rand project are retained by their contributors. No +copyright assignment is required to contribute to the Rand project. + +For full authorship information, see the version control history. + +Except as otherwise noted (below and/or in individual files), Rand is +licensed under the Apache License, Version 2.0 or + or the MIT license + or , at your option. + +The Rand project includes code from the Rust project +published under these same licenses. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rand_chacha 0.3.1 LICENSES----- + +-----BEGIN rand_core 0.6.4 LICENSES----- +Copyrights in the Rand project are retained by their contributors. No +copyright assignment is required to contribute to the Rand project. + +For full authorship information, see the version control history. + +Except as otherwise noted (below and/or in individual files), Rand is +licensed under the Apache License, Version 2.0 or + or the MIT license + or , at your option. + +The Rand project includes code from the Rust project +published under these same licenses. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +-----NEXT LICENSE----- +Copyright 2018 Developers of the Rand project +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rand_core 0.6.4 LICENSES----- + +-----BEGIN rangemap 1.4.0 LICENSES----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2019-2022 Jeff Parsons, and [contributors](https://github.com/jeffparsons/rangemap/contributors) + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +Copyright 2019 Jeffrey Parsons + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END rangemap 1.4.0 LICENSES----- + +-----BEGIN ratatui 0.23.0 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2016-2022 Florian Dehau +Copyright (c) 2023 The Ratatui Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END ratatui 0.23.0 LICENSES----- + +-----BEGIN redox_syscall 0.2.16 LICENSES----- +Copyright (c) 2017 Redox OS Developers + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END redox_syscall 0.2.16 LICENSES----- + +-----BEGIN redox_syscall 0.4.1 LICENSES----- +Copyright (c) 2017 Redox OS Developers + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END redox_syscall 0.4.1 LICENSES----- + +-----BEGIN regex 1.10.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END regex 1.10.2 LICENSES----- + +-----BEGIN regex-automata 0.4.3 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END regex-automata 0.4.3 LICENSES----- + +-----BEGIN regex-syntax 0.8.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END regex-syntax 0.8.2 LICENSES----- + +-----BEGIN rustc-demangle 0.1.23 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rustc-demangle 0.1.23 LICENSES----- + +-----BEGIN rustc-hash 1.1.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rustc-hash 1.1.0 LICENSES----- + +-----BEGIN rustix 0.38.21 LICENSES----- +Short version for non-lawyers: + +`rustix` is triple-licensed under Apache 2.0 with the LLVM Exception, +Apache 2.0, and MIT terms. + + +Longer version: + +Copyrights in the `rustix` project are retained by their contributors. +No copyright assignment is required to contribute to the `rustix` +project. + +Some files include code derived from Rust's `libstd`; see the comments in +the code for details. + +Except as otherwise noted (below and/or in individual files), `rustix` +is licensed under: + + - the Apache License, Version 2.0, with the LLVM Exception + or + + - the Apache License, Version 2.0 + or + , + - or the MIT license + or + , + +at your option. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rustix 0.38.21 LICENSES----- + +-----BEGIN rustversion 1.0.14 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END rustversion 1.0.14 LICENSES----- + +-----BEGIN ryu 1.0.15 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END ryu 1.0.15 LICENSES----- + +-----BEGIN same-file 1.0.6 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2017 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +-----END same-file 1.0.6 LICENSES----- + +-----BEGIN scopeguard 1.2.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2016-2019 Ulrik Sverdrup "bluss" and scopeguard developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END scopeguard 1.2.0 LICENSES----- + +-----BEGIN scraper 0.18.1 LICENSES----- +Copyright © 2016, June McEnroe +Copyright © 2017, Vivek Kushwaha + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +-----END scraper 0.18.1 LICENSES----- + +-----BEGIN scroll 0.11.0 LICENSES----- +The MIT License (MIT) + +Copyright (c) m4b 2016 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END scroll 0.11.0 LICENSES----- + +-----BEGIN scroll_derive 0.11.1 LICENSES----- +MIT License + +Copyright (c) 2017 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END scroll_derive 0.11.1 LICENSES----- + +-----BEGIN serde 1.0.190 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END serde 1.0.190 LICENSES----- + +-----BEGIN serde_derive 1.0.190 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END serde_derive 1.0.190 LICENSES----- + +-----BEGIN serde_json 1.0.108 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END serde_json 1.0.108 LICENSES----- + +-----BEGIN serial_test 2.0.0 LICENSES----- +Copyright (c) 2018 Tom Parker-Shemilt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-----END serial_test 2.0.0 LICENSES----- + +-----BEGIN serial_test_derive 2.0.0 LICENSES----- +Copyright (c) 2018 Tom Parker-Shemilt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +-----END serial_test_derive 2.0.0 LICENSES----- + +-----BEGIN shlex 1.2.0 LICENSES----- +Copyright 2015 Nicholas Allegra (comex). + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +The MIT License (MIT) + +Copyright (c) 2015 Nicholas Allegra (comex). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----END shlex 1.2.0 LICENSES----- + +-----BEGIN signal-hook 0.1.17 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 tokio-jsonrpc developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END signal-hook 0.1.17 LICENSES----- + +-----BEGIN signal-hook 0.3.17 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 tokio-jsonrpc developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END signal-hook 0.3.17 LICENSES----- + +-----BEGIN signal-hook-mio 0.2.3 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 tokio-jsonrpc developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END signal-hook-mio 0.2.3 LICENSES----- + +-----BEGIN signal-hook-registry 1.4.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 tokio-jsonrpc developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END signal-hook-registry 1.4.1 LICENSES----- + +-----BEGIN smallvec 1.11.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2018 The Servo Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END smallvec 1.11.1 LICENSES----- + +-----BEGIN stable_deref_trait 1.2.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2017 Robert Grosse + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +-----END stable_deref_trait 1.2.0 LICENSES----- + +-----BEGIN string_cache 0.8.7 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2012-2013 Mozilla Foundation + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END string_cache 0.8.7 LICENSES----- + +-----BEGIN string_cache_codegen 0.5.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2012-2013 Mozilla Foundation + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END string_cache_codegen 0.5.2 LICENSES----- + +-----BEGIN strsim 0.10.0 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Danny Guo +Copyright (c) 2016 Titus Wormer +Copyright (c) 2018 Akash Kurdekar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END strsim 0.10.0 LICENSES----- + +-----BEGIN strum 0.25.0 LICENSES----- +MIT License + +Copyright (c) 2019 Peter Glotfelty + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END strum 0.25.0 LICENSES----- + +-----BEGIN strum_macros 0.25.3 LICENSES----- +MIT License + +Copyright (c) 2019 Peter Glotfelty + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END strum_macros 0.25.3 LICENSES----- + +-----BEGIN syn 0.15.44 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END syn 0.15.44 LICENSES----- + +-----BEGIN syn 1.0.109 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END syn 1.0.109 LICENSES----- + +-----BEGIN syn 2.0.38 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END syn 2.0.38 LICENSES----- + +-----BEGIN tendril 0.4.3 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 Keegan McAllister + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END tendril 0.4.3 LICENSES----- + +-----BEGIN termcolor 1.3.0 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +-----END termcolor 1.3.0 LICENSES----- + +-----BEGIN thiserror 1.0.50 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END thiserror 1.0.50 LICENSES----- + +-----BEGIN thiserror-impl 1.0.50 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END thiserror-impl 1.0.50 LICENSES----- + +-----BEGIN tracing 0.1.40 LICENSES----- +Copyright (c) 2019 Tokio Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END tracing 0.1.40 LICENSES----- + +-----BEGIN tracing-attributes 0.1.27 LICENSES----- +Copyright (c) 2019 Tokio Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END tracing-attributes 0.1.27 LICENSES----- + +-----BEGIN tracing-core 0.1.32 LICENSES----- +Copyright (c) 2019 Tokio Contributors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END tracing-core 0.1.32 LICENSES----- + +-----BEGIN trybuild 1.0.85 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END trybuild 1.0.85 LICENSES----- + +-----BEGIN tuple_list 0.1.3 LICENSES----- +MIT License - http://www.apache.org/licenses/LICENSE-2.0 +Copyright (c) 2020 Valerii Lashmanov -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-----END tuple_list 0.1.3 LICENSES----- + +-----BEGIN typed-builder 0.16.2 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END typed-builder 0.16.2 LICENSES----- + +-----BEGIN typed-builder 0.18.0 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END typed-builder 0.18.0 LICENSES----- + +-----BEGIN uds 0.4.1 LICENSES----- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2019-2023 Torbjørn Birch Moltu, 2020 Jon Magnuson, 2022 Jake Shadle, 2022 David Carlier, 2023 Dominik Maier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +-----END uds 0.4.1 LICENSES----- + +-----BEGIN unicode-ident 1.0.12 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----NEXT LICENSE----- +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +See Terms of Use +for definitions of Unicode Inc.’s Data Files and Software. + +NOTICE TO USER: Carefully read the following legal agreement. +BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S +DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), +YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE +TERMS AND CONDITIONS OF THIS AGREEMENT. +IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE +THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE + +Copyright © 1991-2022 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +-----END unicode-ident 1.0.12 LICENSES----- + +-----BEGIN unicode-segmentation 1.10.1 LICENSES----- +Licensed under the Apache License, Version 2.0 + or the MIT +license , +at your option. All files in the project carrying such +notice may not be copied, modified, or distributed except +according to those terms. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END unicode-segmentation 1.10.1 LICENSES----- + +-----BEGIN unicode-width 0.1.11 LICENSES----- +Licensed under the Apache License, Version 2.0 + or the MIT +license , +at your option. All files in the project carrying such +notice may not be copied, modified, or distributed except +according to those terms. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END unicode-width 0.1.11 LICENSES----- + +-----BEGIN unicode-xid 0.1.0 LICENSES----- +Licensed under the Apache License, Version 2.0 + or the MIT +license , +at your option. All files in the project carrying such +notice may not be copied, modified, or distributed except +according to those terms. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2015 The Rust Project Developers + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END unicode-xid 0.1.0 LICENSES----- + +-----BEGIN utf-8 0.7.6 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END utf-8 0.7.6 LICENSES----- + +-----BEGIN utf8parse 0.2.1 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +-----NEXT LICENSE----- +Copyright (c) 2016 Joe Wilm + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END utf8parse 0.2.1 LICENSES----- + +-----BEGIN uuid 1.5.0 LICENSES----- +The Uuid Project is copyright 2013-2014, The Rust Project Developers and +copyright 2018, The Uuid Developers. + +Licensed under the Apache License, Version 2.0 or the MIT License , at your option. All files in the project +carrying such notice may not be copied, modified, or distributed except +according to those terms. + +-----NEXT LICENSE----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +-----NEXT LICENSE----- +Copyright (c) 2014 The Rust Project Developers +Copyright (c) 2018 Ashley Mannix, Christopher Armstrong, Dylan DPC, Hunar Roop Kahlon + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +-----END uuid 1.5.0 LICENSES----- + +-----BEGIN version_check 0.9.4 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -----NEXT LICENSE----- +The MIT License (MIT) +Copyright (c) 2017-2018 Sergio Benitez + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-----END version_check 0.9.4 LICENSES----- + +-----BEGIN versions 5.0.1 LICENSES----- MIT License -Copyright (c) 2019-2020 CreepySkeleton +Copyright (c) 2021 Colin Woodbury Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -2846,9 +34051,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END proc-macro-error 1.0.4 LICENSES----- +-----END versions 5.0.1 LICENSES----- ------BEGIN proc-macro2 1.0.60 LICENSES----- +-----BEGIN wait-timeout 0.2.0 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -3026,7 +34231,34 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + -----NEXT LICENSE----- +Copyright (c) 2014 Alex Crichton + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -3051,9 +34283,60 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END proc-macro2 1.0.60 LICENSES----- +-----END wait-timeout 0.2.0 LICENSES----- + +-----BEGIN walkdir 2.4.0 LICENSES----- +The MIT License (MIT) + +Copyright (c) 2015 Andrew Gallant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +-----END walkdir 2.4.0 LICENSES----- ------BEGIN quote 1.0.28 LICENSES----- +-----BEGIN wasi 0.11.0+wasi-snapshot-preview1 LICENSES----- Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -3231,229 +34514,254 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + -----NEXT LICENSE----- -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION ------END quote 1.0.28 LICENSES----- + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. ------BEGIN rand 0.8.5 LICENSES----- -Copyrights in the Rand project are retained by their contributors. No -copyright assignment is required to contribute to the Rand project. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -For full authorship information, see the version control history. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -Except as otherwise noted (below and/or in individual files), Rand is -licensed under the Apache License, Version 2.0 or - or the MIT license - or , at your option. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -The Rand project includes code from the Rust project -published under these same licenses. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. ------NEXT LICENSE----- - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -1. Definitions. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + END OF TERMS AND CONDITIONS - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + APPENDIX: How to apply the Apache License to your work. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + Copyright [yyyy] [name of copyright owner] -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + http://www.apache.org/licenses/LICENSE-2.0 -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. -END OF TERMS AND CONDITIONS +--- LLVM Exceptions to the Apache 2.0 License ---- ------NEXT LICENSE----- -Copyright 2018 Developers of the Rand project -Copyright (c) 2014 The Rust Project Developers +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +-----NEXT LICENSE----- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -3478,651 +34786,600 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END rand 0.8.5 LICENSES----- - ------BEGIN regex 1.8.4 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +-----END wasi 0.11.0+wasi-snapshot-preview1 LICENSES----- -1. Definitions. +-----BEGIN which 4.4.2 LICENSES----- +Copyright (c) 2015 fangyuanziti - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +-----END which 4.4.2 LICENSES----- - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +-----BEGIN winapi 0.3.9 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + 1. Definitions. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -END OF TERMS AND CONDITIONS + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -APPENDIX: How to apply the Apache License to your work. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -Copyright [yyyy] [name of copyright owner] + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. - http://www.apache.org/licenses/LICENSE-2.0 + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. ------NEXT LICENSE----- -Copyright (c) 2014 The Rust Project Developers + END OF TERMS AND CONDITIONS -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + APPENDIX: How to apply the Apache License to your work. -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at ------END regex 1.8.4 LICENSES----- + http://www.apache.org/licenses/LICENSE-2.0 ------BEGIN rng 0.1.0 LICENSES----- -Copyright (c) 2016, the authors -All rights reserved. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +-----NEXT LICENSE----- +Copyright (c) 2015-2018 The winapi-rs Developers -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ------END rng 0.1.0 LICENSES----- +-----END winapi 0.3.9 LICENSES----- ------BEGIN serde 1.0.164 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +-----BEGIN winapi-util 0.1.6 LICENSES----- +The MIT License (MIT) -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Copyright (c) 2017 Andrew Gallant -1. Definitions. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. +-----NEXT LICENSE----- +This is free and unencumbered software released into the public domain. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). +For more information, please refer to - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. +-----END winapi-util 0.1.6 LICENSES----- - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." +-----BEGIN xxhash-rust 0.8.7 LICENSES----- +Boost Software License - Version 1.0 - August 17th, 2003 - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: +-----END xxhash-rust 0.8.7 LICENSES----- - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and +-----BEGIN yaxpeax-arch 0.2.7 LICENSES----- +Copyright (c) 2020 iximeow - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. +-----END yaxpeax-arch 0.2.7 LICENSES----- - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. +-----BEGIN yaxpeax-x86 1.2.0 LICENSES----- +Copyright (c) 2020 iximeow -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +-----END yaxpeax-x86 1.2.0 LICENSES----- -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +-----BEGIN zerocopy 0.7.23 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -END OF TERMS AND CONDITIONS + 1. Definitions. ------NEXT LICENSE----- -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. ------END serde 1.0.164 LICENSES----- + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. ------BEGIN serde_json 1.0.97 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -1. Definitions. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + END OF TERMS AND CONDITIONS - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + APPENDIX: How to apply the Apache License to your work. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + Copyright 2023 The Fuchsia Authors -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + http://www.apache.org/licenses/LICENSE-2.0 -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -END OF TERMS AND CONDITIONS -----NEXT LICENSE----- +Copyright 2019 The Fuchsia Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-----NEXT LICENSE----- +Copyright 2023 The Fuchsia Authors + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the @@ -4147,294 +35404,241 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END serde_json 1.0.97 LICENSES----- ------BEGIN strum 0.24.1 LICENSES----- -MIT License - -Copyright (c) 2019 Peter Glotfelty - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------END strum 0.24.1 LICENSES----- - ------BEGIN strum_macros 0.24.3 LICENSES----- -MIT License - -Copyright (c) 2019 Peter Glotfelty - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------END strum_macros 0.24.3 LICENSES----- - ------BEGIN syn 2.0.18 LICENSES----- - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +-----END zerocopy 0.7.23 LICENSES----- -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +-----BEGIN zerocopy-derive 0.7.23 LICENSES----- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -1. Definitions. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + 1. Definitions. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -END OF TERMS AND CONDITIONS + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. ------NEXT LICENSE----- -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + END OF TERMS AND CONDITIONS -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + APPENDIX: How to apply the Apache License to your work. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. ------END syn 2.0.18 LICENSES----- + Copyright 2023 The Fuchsia Authors ------BEGIN tracing 0.1.37 LICENSES----- -Copyright (c) 2019 Tokio Contributors + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -Permission is hereby granted, free of charge, to any -person obtaining a copy of this software and associated -documentation files (the "Software"), to deal in the -Software without restriction, including without -limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software -is furnished to do so, subject to the following -conditions: + http://www.apache.org/licenses/LICENSE-2.0 -The above copyright notice and this permission notice -shall be included in all copies or substantial portions -of the Software. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF -ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED -TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. ------END tracing 0.1.37 LICENSES----- +-----NEXT LICENSE----- +Copyright 2019 The Fuchsia Authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------BEGIN tracing-subscriber 0.3.17 LICENSES----- -Copyright (c) 2019 Tokio Contributors +-----NEXT LICENSE----- +Copyright 2023 The Fuchsia Authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated @@ -4460,112 +35664,5 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------END tracing-subscriber 0.3.17 LICENSES----- - ------BEGIN versions 5.0.0 LICENSES----- -MIT License - -Copyright (c) 2021 Colin Woodbury - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------END versions 5.0.0 LICENSES----- - ------BEGIN walkdir 2.3.3 LICENSES----- -The MIT License (MIT) - -Copyright (c) 2015 Andrew Gallant - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ------NEXT LICENSE----- -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or -distribute this software, either in source code form or as a compiled -binary, for any purpose, commercial or non-commercial, and by any -means. - -In jurisdictions that recognize copyright laws, the author or authors -of this software dedicate any and all copyright interest in the -software to the public domain. We make this dedication for the benefit -of the public at large and to the detriment of our heirs and -successors. We intend this dedication to be an overt act of -relinquishment in perpetuity of all present and future rights to this -software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to - ------END walkdir 2.3.3 LICENSES----- - ------BEGIN yaxpeax-arch 0.2.7 LICENSES----- -Copyright (c) 2020 iximeow - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - ------END yaxpeax-arch 0.2.7 LICENSES----- - ------BEGIN yaxpeax-x86 1.1.5 LICENSES----- -Copyright (c) 2020 iximeow - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. ------END yaxpeax-x86 1.1.5 LICENSES----- +-----END zerocopy-derive 0.7.23 LICENSES----- diff --git a/Cargo.toml b/Cargo.toml index 236aa013..ed2b7b1e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,4 @@ -# Copyright (C) 2023 Intel Corporation +# Copyright (C) 2023 Intel Corporation # SPDX-License-Identifier: Apache-2.0 [workspace.package] @@ -16,75 +16,74 @@ license = "Apache-2.0" publish = false readme = "README.md" repository = "https://github.com/intel/tsffs" -version = "0.1.0" +version = "0.2.0" + +[workspace.metadata] +build-id = 1 +version = "6.0.0" [workspace] resolver = "2" members = [ - # Include file for harnessing - "include", - # Provide simics - # Provide real simics APIs - "simics-api-sys", - "simics-api", - "simics-api-macro", - "simics", - "simics-cli", - "simics-tests", - "simics-link", - "simics-fuzz", - # Modules - "tsffs_module", - # Utilities - "util/raw-cstr", - "util/version-tools", - "util/ffi-macro", - "util/artifact-dependency", - "util/tmp-dir", + "modules/tsffs/tests", + "modules/tsffs/tests-restricted", + "modules/tsffs/src/tsffs", + "modules/tsffs/src/simics/ispm-wrapper", + "modules/tsffs/src/simics/simics-api-sys", + "modules/tsffs/src/simics/simics-macro", + "modules/tsffs/src/simics/simics-codegen", + "modules/tsffs/src/simics/simics", + + "modules/tsffs/src/util/command-ext", + "modules/tsffs/src/util/ffi-macro", + "modules/tsffs/src/util/getters", + "modules/tsffs/src/util/raw-cstr", + "modules/tsffs/src/util/tmp-dir", + "modules/tsffs/src/util/version-tools", ] default-members = [ - # Include file for harnessing - "include", - # Provide simics - # Provide real simics APIs - "simics-api-sys", - "simics-api", - "simics-api-macro", - "simics", - "simics-cli", - "simics-tests", - "simics-link", - "simics-fuzz", - # Modules - "tsffs_module", - # Utilities - "util/raw-cstr", - "util/version-tools", - "util/ffi-macro", - "util/artifact-dependency", - "util/tmp-dir", + "modules/tsffs/tests", + "modules/tsffs/tests-restricted", + "modules/tsffs/src/tsffs", + "modules/tsffs/src/simics/ispm-wrapper", + "modules/tsffs/src/simics/simics-api-sys", + "modules/tsffs/src/simics/simics-macro", + "modules/tsffs/src/simics/simics-codegen", + "modules/tsffs/src/simics/simics", + + "modules/tsffs/src/util/command-ext", + "modules/tsffs/src/util/ffi-macro", + "modules/tsffs/src/util/getters", + "modules/tsffs/src/util/raw-cstr", + "modules/tsffs/src/util/tmp-dir", + "modules/tsffs/src/util/version-tools", ] -exclude = ["docs/videos/adv", "tests/userland-examples", "tests/cc"] +exclude = [] [workspace.dependencies] -artifact-dependency = { path = "./util/artifact-dependency" } -simics-link = { path = "./simics-link" } -simics = { path = "./simics" } -simics-fuzz = { path = "./simics-fuzz" } -tsffs_module = { path = "./tsffs_module" } -simics-api-sys = { path = "./simics-api-sys" } -simics-api = { path = "./simics-api" } -simics-api-macro = { path = "./simics-api-macro" } -tmp-dir = { path = "./util/tmp-dir" } -raw-cstr = { path = "./util/raw-cstr" } -version-tools = { path = "./util/version-tools" } -ffi-macro = { path = "./util/ffi-macro" } -libafl = { git = "https://github.com/AFLplusplus/LibAFL", rev = "defe9084aed5a80ac32fe9a1f3ff00baf97738c6" } -libafl_bolts = { git = "https://github.com/AFLplusplus/LibAFL", rev = "defe9084aed5a80ac32fe9a1f3ff00baf97738c6" } -anyhow = "1.0.74" -# Match these versions to cargo_metadata -- it breaks on current versions -serde = "1.0.183" -serde_json = "1.0.104" +simics-api-sys = { path = "modules/tsffs/src/simics/simics-api-sys" } +simics-macro = { path = "modules/tsffs/src/simics/simics-macro" } +simics-codegen = { path = "modules/tsffs/src/simics/simics-codegen" } +simics = { path = "modules/tsffs/src/simics/simics" } +ispm-wrapper = { path = "modules/tsffs/src/simics/ispm-wrapper" } + +command-ext = { path = "modules/tsffs/src/util/command-ext" } +ffi-macro = { path = "modules/tsffs/src/util/ffi-macro" } +getters = { path = "modules/tsffs/src/util/getters" } +raw-cstr = { path = "modules/tsffs/src/util/raw-cstr" } +version-tools = { path = "modules/tsffs/src/util/version-tools" } + +anyhow = { version = "1.0.75" } +# libafl = { git = "https://github.com/novafacing/LibAFL", branch = "no-assert-normal" } +# libafl_bolts = { git = "https://github.com/novafacing/LibAFL", branch = "no-assert-normal" } +# libafl_targets = { git = "https://github.com/novafacing/LibAFL", branch = "no-assert-normal" } +libafl = { git = "https://github.com/novafacing/LibAFL", branch = "cmp-disable-features" } +libafl_bolts = { git = "https://github.com/novafacing/LibAFL", branch = "cmp-disable-features" } +libafl_targets = { git = "https://github.com/novafacing/LibAFL", branch = "cmp-disable-features", default-features = false, features = ["std"] } +serde = { version = "1.0.188", features = ["derive"] } +serde_json = { version = "1.0.107" } +versions = { version = "5.0.1", features = ["serde"] } + [profile.dev] rpath = true diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..6476f8d7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,128 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# hadolint global ignore=DL3041,DL3040 + +FROM fedora:38 + +# Download links can be obtained from: +# https://lemcenter.intel.com/productDownload/?Product=256660e5-a404-4390-b436-f64324d94959 +ARG PUBLIC_SIMICS_PKGS_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/simics-6-packages-2023-31-linux64.ispm" +ARG PUBLIC_SIMICS_ISPM_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-linux64.tar.gz" +# Add cargo and ispm to the path +ENV PATH="/root/.cargo/bin:/workspace/simics/ispm:${PATH}" + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Install local dependencies: +# - Libraries and dependencies for SIMICS and ISPM +# - Libraries and dependencies for building a sample UEFI application +# - Tools for creating a CRAFF image to load into a model +# - Python, including checkers/linters +# - Rust (will be on the PATH due to the ENV command above) +RUN dnf -y update && \ + dnf -y install \ + alsa-lib \ + atk \ + bash \ + clang \ + clang-libs \ + clang-resource-filesystem \ + clang-tools-extra \ + cmake \ + cups \ + curl \ + dosfstools \ + g++ \ + gcc \ + git \ + git-lfs \ + glibc-devel \ + glibc-devel.i686 \ + glibc-static \ + glibc-static.i686 \ + gtk3 \ + lld \ + lld-devel \ + lld-libs \ + llvm \ + llvm-libs \ + llvm-static \ + make \ + mesa-libgbm \ + mtools \ + ninja-build \ + openssl \ + openssl-devel \ + openssl-libs \ + python3 \ + python3-pip \ + vim \ + yamllint && \ + python3 -m pip install --no-cache-dir \ + black==23.10.1 \ + flake8==6.1.0 \ + isort==5.12.0 \ + mypy==1.6.1 \ + pylint==3.0.2 && \ + curl https://sh.rustup.rs -sSf | bash -s -- -y && \ + rustup toolchain install nightly + + +WORKDIR /workspace + +# Download and install public SIMICS. This installs all the public packages as well as the +# ispm SIMICS package and project manager. ISPM will be on the path due to the ENV command +# above +RUN mkdir -p /workspace/simics/ispm/ && \ + curl --noproxy -L -o /workspace/simics/ispm.tar.gz "${PUBLIC_SIMICS_ISPM_URL}" && \ + curl --noproxy -L -o /workspace/simics/simics.ispm "${PUBLIC_SIMICS_PKGS_URL}" && \ + tar -C /workspace/simics/ispm --strip-components=1 \ + -xvf /workspace/simics/ispm.tar.gz && \ + ispm settings install-dir /workspace/simics && \ + ispm packages --install-bundle /workspace/simics/simics.ispm --non-interactive && \ + rm /workspace/simics/ispm.tar.gz /workspace/simics/simics.ispm && \ + rm -rf /workspace/simics-6-packages/ + +# Copy the local repository into the workspace +COPY . /workspace/tsffs/ + +WORKDIR /workspace/tsffs/ + +# Build the project by initializing it as a project associated with the local SIMICS installation +# and building the module using the build script. Then, install the built TSFFS SIMICS +# package into the local SIMICS installation for use. +RUN ispm projects /workspace/tsffs/ --create --ignore-existing-files --non-interactive && \ + bin/project-setup --force && \ + ./build.rs && \ + ispm packages \ + -i /workspace/tsffs/linux64/packages/simics-pkg-31337-6.0.0-linux64.ispm \ + --non-interactive --trust-insecure-packages && \ + make clobber + +WORKDIR /workspace/projects/example/ + +# Create an example project with: +# - SIMICS Base (1000) +# - QSP X86 (2096) +# - QSP CPU (8112) +# - Crypto Engine (1030) [only necessary because it is required by Golden Cove] +# - TSFFS Fuzzer (31337) +# - A built EFI application (test.efi) which checks a password and crashes when it gets the +# password "fuzzing!" +# - A SIMICS script that configures the fuzzer for the example and starts fuzzing it +RUN ispm projects /workspace/projects/example/ --create \ + 1000-latest \ + 2096-latest \ + 8112-latest \ + 1030-latest \ + 31337-latest --ignore-existing-files --non-interactive && \ + cp /workspace/tsffs/examples/docker-example/fuzz.simics /workspace/projects/example/ && \ + cp /workspace/tsffs/modules/tsffs/tests/rsrc/minimal_boot_disk.craff /workspace/projects/example/ && \ + cp /workspace/tsffs/modules/tsffs/tests/targets/minimal-x86_64/* /workspace/projects/example/ && \ + cp /workspace/tsffs/harness/tsffs-gcc-x86_64.h /workspace/projects/example/ && \ + ninja + +RUN echo 'echo "To run the demo, run ./simics -no-gui --no-win fuzz.simics"' >> /root/.bashrc + + + diff --git a/README.md b/README.md index 454d7f7d..9fafeecd 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ # TSFFS: Target Software Fuzzer For SIMICS - TSFFS is a snapshotting, coverage-guided fuzzer built on the [SIMICS](https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html) full system simulator. TSFFS makes it easy to fuzz and triage crashes on traditionally @@ -11,21 +10,36 @@ device firmware. TSSFS can even fuzz user-space applications on Linux and Window the [requirements](./docs/Requirements.md) to find out if TSSFS can fuzz your code. - [TSFFS: Target Software Fuzzer For SIMICS](#tsffs-target-software-fuzzer-for-simics) - - [UEFI Fuzzing Demo](#uefi-fuzzing-demo) + - [Quick Start](#quick-start) + - [Documentation \& Setup](#documentation--setup) - [Capabilities](#capabilities) - - [Documentation](#documentation) - [Use Cases](#use-cases) - - [Setup](#setup) - - [Running a Simple Sample Target](#running-a-simple-sample-target) - - [Running an EDK2 Sample Target](#running-an-edk2-sample-target) - [Contact](#contact) - [Help Wanted / Roadmap](#help-wanted--roadmap) - - [Why TSFFS](#why-tsffs) - [Authors](#authors) -## UEFI Fuzzing Demo +## Quick Start + +The fastest way to start using TSFFS is with our [dockerfile](Dockerfile). To set up +TSFFS locally instead, read the [documentation](./docs/src/SUMMARY.md). + +```sh +git clone https://github.com/intel/tsffs +cd tsffs +docker build -t tsffs . +docker run -it tsffs +``` + +Then, run the provided example target and fuzzing configuration: + +```sh +./simics -no-gui --no-win ./fuzz.simics +``` + +## Documentation & Setup - +Documentation for setup & usage of this project lives in the [docs](./docs/SUMMARY.md) +directory of this repository. ## Capabilities @@ -42,11 +56,6 @@ and takes advantage of several of the state of the art capabilities of both. - MOpt & Auto-token mutations - More coming soon! -## Documentation - -Documentation for this project lives in the [docs](./docs/README.md) directory of this -repository. - ## Use Cases TSFFS is focused on several primary use cases: @@ -56,61 +65,11 @@ TSFFS is focused on several primary use cases: - Hardware-dependent kernel and firmware code - Fuzzing for complex error conditions -## Setup +However, TSFFS is also capable of fuzzing: -Detailed instructions for setting up and building this project can be found in -[Setup.md](./docs/Setup.md). You should follow the documentation there to set up the -fuzzer before trying to run the sample targets. - -## Running a Simple Sample Target - -We provide a sample target that represents the simplest possible use of the fuzzer. Once -you have set up the fuzzer by following the directions [above](#setup), you can run it -with (from the root of this repo): - -```sh -cargo run --release --features=6.0.169 -- \ - --corpus /tmp/corpus --solutions solution --log-level INFO --cores 1 \ - --file examples/harnessing-uefi/rsrc/target.efi:%simics%/target.efi \ - --file examples/harnessing-uefi/rsrc/fuzz.simics:%simics%/fuzz.simics \ - --file examples/harnessing-uefi/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff \ - --package 2096:6.0.70 \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' -``` - -If you want to see the visualizer above, you can enable the SIMICS GUI during fuzzing -by adding `-g/--enable-simics-gui` and if you want a fancy TUI output, add the `-t` flag! - -## Running an EDK2 Sample Target - -There are two provided sample targets, `hello-world` and `x509-parse`. You can run them -in the basic configuration with the commands below, respectively. - -```sh -cargo run --release --features=6.0.169 -- \ - -c /tmp/hello-world-corpus/ -o /tmp/hello-world-solution/ -l ERROR -t -C 1 \ - -P 2096:6.0.70 \ - -f examples/hello-world/rsrc/HelloWorld.efi:%simics%/targets/hello-world/HelloWorld.efi \ - -f examples/hello-world/rsrc/app.py:%simics%/scripts/app.py \ - -f examples/hello-world/rsrc/app.yml:%simics%/scripts/app.yml \ - -f examples/hello-world/rsrc/minimal_boot_disk.craff:%simics%/targets/hello-world/minimal_boot_disk.craff \ - -f examples/hello-world/rsrc/run_uefi_app.nsh:%simics%/targets/hello-world/run_uefi_app.nsh \ - -f examples/hello-world/rsrc/run-uefi-app.simics:%simics%/targets/hello-world/run-uefi-app.simics \ - -x CONFIG:%simics%/scripts/app.yml -``` - -```sh -cargo run --release --features=6.0.169 -- \ - -c /tmp/x509-parse-corpus/ -o /tmp/x509-parse-solution/ -l ERROR -t -C 1 \ - -P 2096:6.0.70 \ - -f examples/x509-parse/rsrc/X509Parse.efi:%simics%/targets/x509-parse/X509Parse.efi \ - -f examples/x509-parse/rsrc/app.py:%simics%/scripts/app.py \ - -f examples/x509-parse/rsrc/app.yml:%simics%/scripts/app.yml \ - -f examples/x509-parse/rsrc/minimal_boot_disk.craff:%simics%/targets/x509-parse/minimal_boot_disk.craff \ - -f examples/x509-parse/rsrc/run_uefi_app.nsh:%simics%/targets/x509-parse/run_uefi_app.nsh \ - -f examples/x509-parse/rsrc/run-uefi-app.simics:%simics%/targets/x509-parse/run-uefi-app.simics \ - -x CONFIG:%simics%/scripts/app.yml -``` +- Kernel & kernel drivers +- User-space applications +- Network applications ## Contact @@ -134,42 +93,15 @@ for a roadmap of planned features and enhancements. Help is welcome for any feat listed here. If someone is assigned an issue you'd like to work on, please ping them to avoid duplicating effort! -## Why TSFFS - -There are several tools capable of fuzzing firmware and UEFI code. Notably, the -[HBFA](https://github.com/tianocore/edk2-staging/tree/HBFA) -project and the [kAFL](https://github.com/IntelLabs/kAFL) project enable system software -fuzzing with various tradeoffs. - -HBFA is very fast, and enables fuzzing with sanitizers in Linux userspace. However, it -requires stubs for any hardware interactions as well as the ability to compile code with -instrumentation. For teams with resources to create a working HBFA configuration, it -should be used alongside TSFFS to enable additional error condition detection. - -kAFL is also extremely fast, and is hypervisor based which allows deterministic -snapshotting of systems under test. This also makes it ideal for very complex systems -and system-of-systems fuzzing, where interactions between components or the use of real -hardware is necessary. kAFL suffers from a similar limitation as HBFA in that it -requires working device stubs or simulation to be implemented in QEMU, and additionally -requires a patched kernel to run the required KVM modifications. - -Both of these tools should be used where possible to take advantage of their unique -capabilities, but TSFFS aims to reduce the barrier to fuzzing low-level systems -software. It is slower (though not unacceptably so) than HBFA or kAFL, and is not (yet) -capable of leveraging sanitizers. In exchange, using it is as simple as adding a few -lines of code to a SIMICS script and ten or less lines of code to your firmware source -code. In addition, because it is based on SIMICS, the tool of choice of firmware -developers, the models and configurations for the code under test can be used as they -are, and developers can continue to use familiar tools to reduce the lift of enabling -fuzzing. ## Authors +Rowan Hart + + Brandon Marken Ph.D. Robert Geunzel Ph.D. -Rowan Hart - diff --git a/build.rs b/build.rs new file mode 100755 index 00000000..edac314a --- /dev/null +++ b/build.rs @@ -0,0 +1,643 @@ +#!/usr/bin/env -S cargo +nightly -Z script + +//! This script builds and packages the TSFFS package. It simply: +//! - Invokes make to build the module +//! - Invokes make again to ensure the interface is up to date +//! - Generates the packages.list file for the module and interface +//! - Calls the `create-package-specs` script +//! - Calls the `create-modcache` script +//! - Calls the `create-packages` script +//! +//! ```cargo +//! [dependencies] +//! anyhow = "*" +//! command-ext = { path = "modules/tsffs/src/util/command-ext" } +//! typed-builder = "*" +//! walkdir = "*" +//! serde = { version = "*", features = ["derive"] } +//! serde_json = "*" +//! cargo_metadata = "*" +//! ``` + +use anyhow::{anyhow, bail, Error, Result}; +use cargo_metadata::MetadataCommand; +use command_ext::CommandExtCheck; +use serde::{Deserialize, Serialize}; +use serde_json::{to_string, value::Value}; +use std::{ + collections::HashMap, + env::current_dir, + fs::{create_dir_all, write}, + iter::once, + path::{Path, PathBuf}, + process::Command, +}; +use typed_builder::TypedBuilder; +use walkdir::WalkDir; + +fn make() -> Result<()> { + #[cfg(unix)] + Command::new("make").check()?; + #[cfg(windows)] + Command::new("mingw32-make.exe").check()?; + Ok(()) +} + +fn version() -> Result { + let metadata = MetadataCommand::new().exec()?; + let Value::Object(workspace_metadata) = metadata.workspace_metadata else { + bail!("No workspace metadata"); + }; + + let Some(Value::String(version)) = workspace_metadata.get("version") else { + bail!("No version in workspace metadata"); + }; + + Ok(version.to_string()) +} + +fn build_id() -> Result { + let metadata = MetadataCommand::new().exec()?; + let Value::Object(workspace_metadata) = metadata.workspace_metadata else { + bail!("No workspace metadata"); + }; + + let Some(Value::Number(num)) = workspace_metadata.get("build-id") else { + bail!("No build-id in workspace metadata"); + }; + + num.as_i64() + .map(|i| i as isize) + .ok_or_else(|| anyhow!("build-id is not an integer")) +} + +fn current_crate() -> Result { + let metadata = MetadataCommand::new().exec()?; + Ok(metadata + .workspace_root + .file_name() + .ok_or_else(|| anyhow!("No file name"))? + .to_string()) +} + +fn recursive_directory_listing

(directory: P) -> Vec +where + P: AsRef, +{ + WalkDir::new(directory.as_ref()) + .into_iter() + .filter_map(|p| p.ok()) + .map(|p| p.path().to_path_buf()) + .filter(|p| p.is_file()) + .collect::>() +} + +#[derive(TypedBuilder, Debug)] +struct PackagesList { + #[builder(setter(into))] + dist: String, + #[builder(setter(into))] + name: String, + #[builder(default, setter(strip_option, into))] + package_number: Option, + #[builder(default = false)] + disabled: bool, + #[builder(setter(into))] + description: String, + #[builder(default, setter(strip_option, into))] + bin_encryption_key: Option, + #[builder(default, setter(into))] + owners: Vec, + #[builder(default, setter(into))] + access_labels: Vec, + #[builder(default, setter(into))] + hosts: Vec, + #[builder(default, setter(into))] + make: Vec, + #[builder(default, setter(strip_option, into))] + doc_title: Option, + #[builder(default, setter(into))] + refman_localfiles: Vec, + #[builder(default, setter(strip_option, into))] + comment: Option, + #[builder(default = false)] + include_refmanual: bool, + #[builder(default = false)] + include_release_notes: bool, + #[builder(setter(into))] + confidentiality: String, + #[builder(default, setter(into))] + ip_plans: Vec, + #[builder(default, setter(into))] + data: Vec, + #[builder(default, setter(into))] + groups: Vec, +} + +impl ToString for PackagesList { + fn to_string(&self) -> String { + let mut list = format!("Dist: {}\nName: {}\n", self.dist, self.name); + list += &self + .package_number + .map(|n| format!("Package-number: {}\n", n)) + .unwrap_or_default(); + list += self + .disabled + .then_some("Disabled: Yes\n") + .unwrap_or_default(); + list += &format!("Description: {}\n", self.description); + list += &self + .bin_encryption_key + .as_ref() + .map(|b| format!("Bin-encryption-key: {}", b)) + .unwrap_or_default(); + list += &(!self.owners.is_empty()) + .then_some(format!("Owners: {}\n", self.owners.join(", "))) + .unwrap_or_default(); + list += &(!self.access_labels.is_empty()) + .then_some(format!( + "Access-labels: {}\n", + self.access_labels.join(", ") + )) + .unwrap_or_default(); + list += &(!self.hosts.is_empty()) + .then_some(format!("Hosts: {}\n", self.hosts.join(" "))) + .unwrap_or_default(); + list += &(!self.make.is_empty()) + .then_some(format!("Make: {}\n", self.make.join(", "))) + .unwrap_or_default(); + list += &self + .doc_title + .as_ref() + .map(|t| format!("Doc-title: {}\n", t)) + .unwrap_or_default(); + list += &(!self.refman_localfiles.is_empty()) + .then_some(format!( + "Refman-localfiles: {}\n", + self.refman_localfiles.join(", ") + )) + .unwrap_or_default(); + list += &self + .comment + .as_ref() + .map(|c| format!("Comment: {}\n", c)) + .unwrap_or_default(); + list += self + .include_refmanual + .then_some("Include-refmanual: Yes\n") + .unwrap_or_default(); + list += self + .include_release_notes + .then_some("Include-release-notes: Yes\n") + .unwrap_or_default(); + list += &format!("Confidentiality: {}\n", self.confidentiality); + list += &(!self.ip_plans.is_empty()) + .then_some(format!("IP-plans: {}\n", self.ip_plans.join(", "))) + .unwrap_or_default(); + list += &self + .data + .iter() + .map(|d| format!(" {}", d)) + .collect::>() + .join("\n"); + list += "\n\n"; + list += &self + .groups + .iter() + .map(|g| g.to_string()) + .collect::>() + .join("\n\n"); + list + } +} + +#[derive(TypedBuilder, Debug)] +struct PackagesListGroup { + #[builder(setter(into))] + group: String, + #[builder(default, setter(into))] + hosts: Vec, + #[builder(default, setter(into))] + make: Vec, + #[builder(default, setter(into))] + doc_make: Vec, + #[builder(default, setter(into))] + doc_formats: Vec, + #[builder(default, setter(into))] + require_tokens: Vec, + #[builder(default, setter(strip_option, into))] + directory: Option, + #[builder(default, setter(into))] + data: Vec, +} + +impl ToString for PackagesListGroup { + fn to_string(&self) -> String { + let mut group = format!("Group: {}\n", self.group); + group += &(!self.hosts.is_empty()) + .then_some(format!("Hosts: {}\n", self.hosts.join(" "))) + .unwrap_or_default(); + group += &(!self.make.is_empty()) + .then_some(format!("Make: {}\n", self.make.join(", "))) + .unwrap_or_default(); + group += &(!self.doc_make.is_empty()) + .then_some(format!("Doc-make: {}\n", self.doc_make.join(", "))) + .unwrap_or_default(); + group += &(!self.doc_formats.is_empty()) + .then_some(format!("Doc-formats: {}\n", self.doc_formats.join(", "))) + .unwrap_or_default(); + group += &(!self.require_tokens.is_empty()) + .then_some(format!( + "Require-tokens: {}\n", + self.require_tokens.join(", ") + )) + .unwrap_or_default(); + group += &self + .directory + .as_ref() + .map(|d| format!("Directory: {}\n", d)) + .unwrap_or_default(); + group += &self + .data + .iter() + .map(|d| format!(" {}", d)) + .collect::>() + .join("\n"); + group + } +} + +impl PackagesListGroup { + pub fn group_ref(&self) -> String { + format!("@{}", self.group) + } +} + +fn generate_packages_list

(directory: P) -> Result +where + P: AsRef, +{ + // Src has no dependencies + let src_group = PackagesListGroup::builder() + .group("src") + .data( + recursive_directory_listing( + directory.as_ref().join("modules").join("tsffs").join("src"), + ) + .iter() + .filter_map(|p| { + p.strip_prefix(directory.as_ref()) + .map(|p| p.to_path_buf()) + .ok() + }) + .map(|p| p.to_string_lossy().to_string()) + .collect::>(), + ) + .build(); + + // The module depends on the module src (of course) + let tsffs_group = PackagesListGroup::builder() + .group("tsffs") + .make(["tsffs".to_string()]) + .data([ + "$(HOST)/lib/tsffs$(SO)".to_string(), + src_group.group_ref(), + "modules/tsffs/Makefile".to_string(), + ]) + .build(); + + // The interface src is generated by the tsffs build process + let tsffs_interface_src_group = PackagesListGroup::builder() + .group("tsffs-interface-src") + .make(["tsffs".to_string()]) + .data([ + "modules/tsffs-interface/Makefile".to_string(), + "modules/tsffs-interface/tsffs-interface.dml".to_string(), + "modules/tsffs-interface/tsffs-interface.h".to_string(), + ]) + .build(); + + // The interface depends on the interface src + let tsffs_interface_group = PackagesListGroup::builder() + .group("tsffs-interface") + .make(["tsffs-interface".to_string()]) + .data([ + "$(HOST)/lib/tsffs-interface$(SO)".to_string(), + tsffs_interface_src_group.group_ref(), + ]) + .build(); + + let tl_data = vec![tsffs_group.group_ref(), tsffs_interface_group.group_ref()]; + + let groups = vec![ + src_group, + tsffs_group, + tsffs_interface_src_group, + tsffs_interface_group, + ]; + + let packages_list = PackagesList::builder() + .dist("TSFFS") + .name("TSFFS Fuzzer") + .package_number(31337) + .owners(["rhart".to_string()]) + .access_labels(["external-intel".to_string()]) + .hosts(["linux64".to_string(), "win64".to_string()]) + .doc_title("TSFFS Fuzzer") + .comment("TSFFS: Target Software Fuzzer For SIMICS") + .description("TSFFS: Target Software Fuzzer For SIMICS") + .confidentiality("Public") + .data(tl_data) + .groups(groups) + .build(); + + Ok(packages_list) +} + +/// Implements the Schema for package-specs.json +/// { +/// "$schema": "https://json-schema.org/draft/2020-12/schema", +/// "type": "array", +/// "title": "Simics Package Specification file", +/// "items": { +/// "type": "object", +/// "required": [ +/// "package-name", "package-number", "name", "description", +/// "host", "version", "build-id", "build-id-namespace", +/// "confidentiality", "files" +/// ], +/// "properties": { +/// "package-name": { +/// "type": "string" +/// }, +/// "package-number": { +/// "anyOf": [{"type": "integer"}, {"type": "null"}] +/// }, +/// "name": { +/// "type": "string" +/// }, +/// "description": { +/// "type": "string" +/// }, +/// "host": { +/// "type": "string" +/// }, +/// "version": { +/// "type": "string" +/// }, +/// "build-id": { +/// "type": "integer" +/// }, +/// "build-id-namespace": { +/// "type": "string" +/// }, +/// "confidentiality": { +/// "type": "string" +/// }, +/// "files": { +/// "type": "object", +/// "patternProperties": { +/// "^[^\\:]*/$": { +/// "type": "object", +/// "properties": { +/// "source-directory": { +/// "type": "string" +/// }, +/// "file-list": { +/// "type": "string" +/// }, +/// "suffixes": { +/// "type": "array", +/// "items": { +/// "type": "string" +/// } +/// } +/// } +/// }, +/// "^[^\\:]*[^/]$": { +/// "type": "string" +/// } +/// } +/// }, +/// "type": { +/// "enum": ["addon", "base"] +/// }, +/// "disabled": { +/// "type": "boolean" +/// }, +/// "doc-title": { +/// "anyOf": [{"type": "string"}, {"type": "null"}] +/// }, +/// "make-targets": { +/// "type": "array", +/// "items": { +/// "type": "string" +/// } +/// } +/// } +/// } +/// } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct PackageSpec { + #[serde(rename = "package-name")] + package_name: String, + #[serde(rename = "package-name-full")] + package_name_full: String, + #[serde(rename = "package-number")] + package_number: Option, + name: String, + description: String, + host: String, + version: String, + #[serde(rename = "build-id")] + build_id: isize, + #[serde(rename = "build-id-namespace")] + build_id_namespace: String, + confidentiality: String, + files: HashMap, + #[serde(rename = "type")] + // NOTE: Either "addon" or "base" -- convert to enum + typ: String, + disabled: bool, + #[serde(rename = "doc-title")] + doc_title: Option, + #[serde(rename = "make-targets")] + make_targets: Vec, + #[serde(rename = "include-release-notes")] + include_release_notes: bool, + #[serde(rename = "ip-plans")] + ip_plans: Vec, + #[serde(rename = "legacy-doc-make-targets")] + legacy_doc_make_targets: Vec, + #[serde(rename = "release-notes")] + release_notes: Vec, + #[serde(rename = "access-labels")] + access_labels: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct PackageSpecs(Vec); + +impl TryFrom for PackageSpecs { + type Error = Error; + + fn try_from(value: PackagesList) -> Result { + let version = version()?; + let build_id_namespace = current_crate()?; + let build_id = build_id()?; + let files = value + .groups + .iter() + .map(|g| g.data.clone()) + .flatten() + .collect::>(); + let make_targets = value + .groups + .iter() + .map(|g| g.make.clone()) + .flatten() + .collect::>(); + Ok(Self( + value + .hosts + .iter() + .map(|h| { + let package_name_full = format!("{}-{}", value.dist, h); + let files = files + .iter() + .map(|f| { + f.replace("$(HOST)", h) + .replace("$(SO)", if h == "linux64" { ".so" } else { ".dll" }) + }) + .filter_map(|f| match PathBuf::from(".").join(&f).canonicalize() { + Ok(fc) => Some((f.clone(), fc.to_string_lossy().to_string())), + Err(_) => None, + }) + .chain(once(( + format!("{}/lib/{}.modcache", h, package_name_full), + PathBuf::from(".") + .canonicalize() + .unwrap_or_else(|_| panic!("Failed to canonicalize modcache path")) + .join(format!("{}/lib/{}.modcache", h, package_name_full)) + .to_string_lossy() + .to_string(), + ))) + .collect::>(); + PackageSpec { + name: value.name.clone(), + package_name: value.dist.clone(), + package_name_full: package_name_full, + package_number: value.package_number.map(|pn| pn as isize), + disabled: value.disabled, + description: value.description.clone(), + host: h.clone(), + version: version.clone(), + build_id: build_id.clone(), + build_id_namespace: build_id_namespace.clone(), + confidentiality: value.confidentiality.clone(), + files: files.clone(), + typ: "addon".to_string(), + doc_title: value.doc_title.clone(), + make_targets: make_targets.clone(), + include_release_notes: value.include_release_notes, + ip_plans: value.ip_plans.clone(), + legacy_doc_make_targets: vec![], + release_notes: vec![], + access_labels: value.access_labels.clone(), + } + }) + .collect(), + )) + } +} + +fn create_package_specs(packages_list: PackagesList) -> Result<()> { + // NOTE: On systems with doc-and-packaging available, this will work, but since end users + // do not have access to this package, we do this ourselves. + // Command::new(directory.as_ref().join("bin").join("create-package-specs")) + // .arg("-o") + // .arg("linux64/package-specs.json") + // .arg("config/dist") + // .check()?; + let package_spec: PackageSpecs = packages_list.try_into()?; + #[cfg(unix)] + { + create_dir_all("linux64")?; + write( + &PathBuf::from("linux64/package-specs.json"), + to_string(&package_spec)?.as_bytes(), + )?; + } + #[cfg(windows)] + { + create_dir_all("win64")?; + write( + &PathBuf::from("win64/package-specs.json"), + to_string(&package_spec)?.as_bytes(), + )?; + } + Ok(()) +} + +fn create_modcache

(directory: P) -> Result<()> +where + P: AsRef, +{ + #[cfg(unix)] + Command::new(directory.as_ref().join("bin").join("create-modcache")) + .arg("-p") + .arg("linux64/package-specs.json") + .check()?; + + #[cfg(windows)] + Command::new(directory.as_ref().join("bin").join("create-modcache.bat")) + .arg("-p") + .arg("win64/package-specs.json") + .check()?; + Ok(()) +} + +fn create_packages

(directory: P) -> Result<()> +where + P: AsRef, +{ + #[cfg(unix)] + Command::new(directory.as_ref().join("bin").join("create-packages")) + .arg("--package-specs") + .arg("linux64/package-specs.json") + .arg("-o") + .arg("linux64/packages") + .arg("31337") + .check()?; + #[cfg(windows)] + Command::new(directory.as_ref().join("bin").join("create-packages.bat")) + .arg("--package-specs") + .arg("win64/package-specs.json") + .arg("-o") + .arg("win64/packages") + .arg("31337") + .check()?; + Ok(()) +} + +fn main() -> Result<()> { + let current_dir = current_dir()?; + + if !current_dir.join("build.rs").is_file() { + bail!("build.rs must be run from the package root like ./build.rs"); + } + + make()?; + make()?; + let packages_list_path = current_dir + .join("config") + .join("dist") + .join("packages.list"); + let packages_list = generate_packages_list(¤t_dir)?; + write(&packages_list_path, packages_list.to_string())?; + create_package_specs(packages_list)?; + create_modcache(¤t_dir)?; + create_packages(¤t_dir)?; + + Ok(()) +} diff --git a/config-user.mk b/config-user.mk new file mode 100644 index 00000000..0627a3fa --- /dev/null +++ b/config-user.mk @@ -0,0 +1,19 @@ +# coding: utf-8 + +# © 2010 Intel Corporation +# +# This software and the related documents are Intel copyrighted materials, and +# your use of them is governed by the express license under which they were +# provided to you ("License"). Unless the License provides otherwise, you may +# not use, modify, copy, publish, distribute, disclose or transmit this software +# or the related documents without Intel's prior written permission. +# +# This software and the related documents are provided as is, with no express or +# implied warranties, other than those that are expressly stated in the License. + + + +USER_BUILD_ID=tsffs:1 +ifeq ($(HOST_TYPE),win64) + LIBS=-lws2_32 -loleaut32 -lole32 -lbcrypt -luserenv -lntdll +endif \ No newline at end of file diff --git a/config/dist/README b/config/dist/README new file mode 100644 index 00000000..c970683b --- /dev/null +++ b/config/dist/README @@ -0,0 +1,442 @@ +Note +______________________________________________________________________ + +Starting with the 4.8 release the way source files are distributed +changed. The background for this is to make it easier for both us and +customers. From Simics 6, source and binary files are treated the same without +any special key for extracting source files. At the same time it should be +easy for Simics Engineers to see who can get access to a particular +group of files, hence each group will have to specify an access label +('Require-tokens'). + +Each group that contains files should provide the 'Require-tokens' to +state the access restriction to that particular group. This is not +needed for groups only including other groups, neither for macro +groups (as they are expanded to files in the group where they are +used). Supported values for the 'Require-tokens' should be added and +documented to a tokens file, such as config/dist/tokens. + +Groups can be defined in .list files. And it is possible to define and use +groups in MODULEINFO files as well, for example one group for source files +and one for binary files. MODULEINFO files are located in the same folder as +modules, extensions, etc., such as src/devices/{name}/MODULEINFO. Such a +file should just include files required by that module. + +In order to convert a group to the new format you may have to create a new +group for the source code if the source code should not be as public as the +binaries. + +During a transition period it will be possible to break some rules. +Groups only including binary files (that is files not located under +%simics%/src or specially tagged as binary) can be white listed in the +'whitelist.txt' file in this directory. It will then pass the policy checker +even if it does not provide a 'Require-tokens' property. This is not possible +for packages containing source code. The reason for that is to prevent source +files to be accidentally provided to a customer with access to the package and +a model builder license, but not the former source package. Such source code +must instead be commented out, manually checked before being distributed, and +added to groups which require appropriate tokens. + +Format +---------------------------------------------------------------------- + +The input to the dist scripts consists of a series of records, in one +or more text files. The scripts are given one or more directories as +command-line arguments, and will parse all *.list files in them. + +Order among the records does not matter. Horisontal space does not +matter, except (1) where needed to separate words and (2) in the +beginning of data lines. Records are separated by blank lines. +Everything following a "#" is ignored. + +Each record starts with a Dist or Group header, followed by +zero or more additional headers, followed by zero or more data lines. +Data lines _must_ begin with whitespace. + +A header line ending with a comma is continued on the next line: + + Foo-header: foo-value-1, foo-value-2, # ends in comma + foo-value-3 # this belongs to Foo-header too + + +Structure +---------------------------------------------------------------------- + +A group record defines a set of files or groups. It is used to group +files that should be distributed together. For example, one could +define a group for all the files that make up a device, and a group +for all the files that make up a target machine. The group for the +target machine should list the groups for the devices it uses, rather +than listing all their files directly. + +A dist record consists of a set of groups (and some metadata). For +each dist, the build system will make one package per host, containing +the files specified by the groups. + + +Access-label record +---------------------------------------------------------------------- + +Headers: + + Access-label: identifier + + Comment: + + Free text comment describing the label and its uses + + Includes: (optional) + + List of access-label identifiers that are included when setting this label + + Provide-tokens: (optional) + + Comma-separated list of security tokens that this label provides. + See Require-tokens + +Group record +---------------------------------------------------------------------- + +Headers: + + Group: identifier + + Hosts: (optional) + + Space-separated platform list. See the "Platform specifications" section. + + Make: (optional) + + Comma-separated list of make targets sufficient to build the files + specified by this group. + + Doc-make: (optional) + + Comma-separated list of documentation make targets sufficient to + build the documentation files specified by this group. + + Doc-formats: (optional) + + Comma-separated list of documentation formats to build the documentation + specified in Doc-make. Defaults to "text,neu". + + Require-tokens: (optional) + + Comma-separated list of security tokens a dist must provide + (via its access labels) in order to be allowed to include this group. + If the provided tokens don't match the required tokens exactly, the system + will cry bloody murder and refuse to continue. + + Required tokens should be the most restrictive that applies to that + group; including groups are tainted by their child groups. + + Tokens are required if the group includes any kind of files, or if the + group includes any macros. However, a macro cannot set the 'Require-tokens' + since the actual content will likely depend on how the macro is + used. Groups that only include other groups do not require any tokens. + + Directory: (optional) + + A directory that contains files to distribute. + You have to specify both the directory and the file in the directory that + lists the file to distribute on the form `/[]`. The + file list file should be a json file containing a list with directory + relative paths to the files in the directory to package. This is used by + documentation in html format, where the set of files generated during build + is not known in advance. + +Data: + + @group-identifier + + A group identifier prefixed by an @ sign means that the current + group pulls in all files specified by the named group. + + filename + + A filename simply names a file to be included by the group. The + filename may contain variable names inside $(), such as "$(SO)"; + these will be expanded according to the platform they are packaged + for. + + The filename may contain a bracketed prefix, such as + "[linux64/]lib/foo". This means that the file is interpreted as + "linux64/lib/foo" in the source tree, but appears as "lib/foo" in + the package. The bracketed prefix may recursively contain a + bracketed prefix. + + Absolute paths and .. path components may only appear within a + bracketed prefix. + + Each group or filename may be prefixed by a comma-separated tag + list, enclosed in parentheses. See the "Tags" section. + + +Link record +---------------------------------------------------------------------- + +Headers: + + Link: identifier + Link-name: name shown in the start menu (or equivalent) + Link-args: arguments passed when executing the link + Link-wdir: working directory used to execute the link + Link-target: file pointed at by the link + + See also group, as Link behaves as a group otherwise. + +Data: + See also group, as Link behaves as a group otherwise. + +Note that Link should normally not be used directly. You can use the template +shortcut-and-file(file, name, args, wdir) that will include the file that is +pointed at and the link definition. + +If you use Link directly, be aware that the file that is pointed at is expected +to be included in the data part of the link, either directly or in a sub-group. + +Link is currently implemented only for Windows shortcuts, and as such exposes +some of the internal behind our Windows packaging. For example, the name of the +file will be used as-is, so it may include Wix specific templates such as +[SimicsMenuFolder] or others. + +Dist record +---------------------------------------------------------------------- + +Headers: + + Dist: identifier + Name: pretty name + Package-number: integer (optional) + Disabled: Yes|No (optional, defaults to No) + + Description: + + A description of the package. + + Bin-encryption-key: (optional) + + The 64-digit hexadecimal key used to encrypt and decrypt packages + based on this dist. + + Owners: + + Comma-separated list of the person(s) responsible for this dist. + + Access-labels: + + Comma-separated list of access-label identifiers that apply for this + distribution. + + Hosts: (optional) + + Same as for group records. + + Make: (optional) + + Same as for group records. + + Doc-title: (optional) + + The human-readable name of this dist in the documentation. + May include spaces. + + Refman-localfiles: (optional) + + List of extra source files to scan for documentation to include in + this dist's reference manual. + + Comment: (optional) + + Free text comment describing the package. + + Include-refmanual: Yes|No (optional, defaults to No) + + Says if the package includes the Reference manual. + + Include-release-notes: Yes|No (optional, defaults to No) + + Says if the package includes the Release Notes. + + Confidentiality: Public|Intel-Confidential|Top-Secret + + Defines the confidentiality level for this dist. This determines + which access labels can be used with this dist, as well as which + groups are allowed to be included, based on their required tokens. + See the tests in t361 for more details. + + IP-plans: (optional for internal packages) + + Comma-separated list of Protex project identifiers that map to the + IP plans for this distribution. An IP plan is required if the package + has an Access-Label that marks it as being uploaded externally. + The Protex project identifiers must be included in the list + in config/protex/projects. + +Data: + + Same as for group records. However, a dist cannot include files or + macros since the dist cannot both provide and require tokens at the + same time. The simplest way is to make the dist include a single + group, e.g. @Foo-Bar-package-content. + + +Common-release-notes +---------------------------------------------------------------------- + +The Common-release-notes record is used to add release notes source +files to all Dist groups. You can specify this record multiple +times. The set of common release notes will be the union of the +release notes from all Common-release-notes records. + +Headers: + + Common-release-notes: + Set of common release note files to include in every Dist. Same + format as Release-notes headers in Groups and Dists. + +Data: + No data. + + +Macro groups +---------------------------------------------------------------------- + +A group name may end with a comma-separated list of parameter names +enclosed in parentheses, like this: "foo(x,y)". In the rest of the +group definition, parameter names enclosed in curly braces will be +replaced by the corresponding parameter values. If the parameter name +is followed by a colon and an underscore, dashes in the value are +replaced by underscores. For example, a macro group for processors +could be defined like this: + + Group: cpu(name) + Make: {name} + $(HOST)/lib/{name}$(SO) + @module_load({name}) + +In other groups, you would include instances of the macro group like +this: + + @cpu(ppc750) + +Note: When calling or defining a macro with more than one parameter, +make sure to not have any separating whitespace: + + @foo(47,11) + + +Platform specifications +---------------------------------------------------------------------- + +Platform specifications can occur in Group and Dist declarations after +the Hosts: keyword, and in brackets before each included file or group: + + Group: somegroup + Hosts: + () file.txt + () @some_other_group + +Allowed platform values: + linux64, win64 (concrete values) + windows (win64), linux (linux64) + +Multiple platforms are space-separated, meaning the union of the platforms. +Example: + + Group: group1 + file1 + (win64) file2 + (linux64 win64) file3 + (linux) file4 + +which results in the inclusion of the files on the following platforms: + + file1 on all platforms (linux64 win64) + file2 on win64 + file3 on linux64 and win64 + file4 on linux64 + +If each platform is prefixed with a minus sign, it means its complement: + + Group: group2 + (-win64) file5 + (-linux) file6 + +which results in: + + file5 on linux64 + file6 on win64 + +Platform specifications on containing Group and Dist declarations +will each constrain the contained files: + + Dist: dist1 + Hosts: -linux64 + ... + (-win64) @group3 + + Group: group3 + Hosts: linux64 win64 + file7 + (linux) file8 + +which results in these files being included in dist1: + + file7 on win64 only + file8 not at all + + +Writing guidelines +---------------------------------------------------------------------- + +Try to put each file in at most one group. (This may be enforced in a +later version of the parser.) + +The general idea of groups is that related files, such as devices and target +machines, should have their own groups, and depend on all the other necessary +groups. Each group that includes files or macros should be written in a way +that it only contains files with the same (legal) classification. In this ideal +world, extending a package with the group for a target machine will +automatically pull in all devices and such that are needed to run the target +machine, but it will also make it easy to track what can and cannot be shipped +to a specific customer. + + +Cool tools +---------------------------------------------------------------------- + +To get a nice list of our packages, with package numbers, encryption +keys, and version, simply run + + $ python scripts/dist/list_distributions.py config/dist + +If you want to do more than just watch, export.py is for you. It will +copy the files specified in one or more dists or groups from your +build tree to a new directory. This is very useful when changing a +package, since you can simply export the updated version and test it +for completeness etc. right away, without having to wait for the +nightly build. + +This example will export the contents of the Simics-Base-linux64 package +to the directory foo: + + $ python scripts/dist/export.py --host=linux64 --destination=foo \ + --export=Simics-Base config/dist + +You will get a warning if not all files were available in your build +tree; the script will also helpfully print the set of maketargets +Moneypenny would use to build the stuff in this package. + +If you are feeling ambitious in your package testing, you might even +start from a clean tree, build only the stuff specified in this list, +and see if the export script still complained about missing files. + +So much for testing a single package. If you want to see what a change +in config/dist/*.list does to all packages, just say + + $ python scripts/dist/package_contents.py config/dist + +which will give you a complete content list of all packages. Diffing +this list from before and after your change will show you what would +happen. diff --git a/config/dist/access-labels.list b/config/dist/access-labels.list new file mode 100644 index 00000000..fc501aff --- /dev/null +++ b/config/dist/access-labels.list @@ -0,0 +1,3 @@ +Access-Label: external-intel +Comment: Uploaded to Intel, external delivery allowed +Provide-tokens: public \ No newline at end of file diff --git a/config/dist/macros.list b/config/dist/macros.list new file mode 100644 index 00000000..7f2847aa --- /dev/null +++ b/config/dist/macros.list @@ -0,0 +1,122 @@ +# A bunch of macros used to simplify shortcut and documentation inclusion in +# packages: +# +# The high-level ones are probably the ones you are interested in: +# * doc() +# * doc-files() + +Main-version: 6 + +# Start-menu (or equivalent) shortcut that includes the it +# points at, the of the shortcut, the arguments used to execute +# and the working directory when executing it. +Link: shortcut-and-file(file, name, args, wdir) +Link-name: {name} +Link-args: {args} +Link-wdir: {wdir} +Link-target: {file} + {file} + +# Start-menu (or equivalent) shortcut that includes the it +# points at, the of the shortcut, the arguments used to execute +# and the working directory when executing it and a custom . +Link: shortcut-and-file-with-icon(file, name, args, wdir, icon) +Link-name: {name} +Link-args: {args} +Link-wdir: {wdir} +Link-target: {file} +Link-icon: {icon} + {file} + +# All documentation formats corresponding to the document +Group: doc-files(name) +Directory: $(HOST)/doc/html/{name}/[filelist.json] +Directory-Suffixes: .css, .js, .html, .png, .json, .svg + +Group: doc-files-pdf-only(name) + [$(HOST)/]doc/{name}.pdf + +# same as doc-files(), but with shortcutname for backward compatibility +Group: doc-files-and-shortcut(name,shortcutname) + @doc-files({name}) + +# Generic template for a reference manual in all formats and its start menu shortcut +Group: refmanual(name, dname) +Doc-make: refmanual-{name} + @doc-files(reference-manual-{name}) + +Group: online-release-notes(name) +Doc-make: rn-online +# dummy format +Doc-formats: neu + $(HOST)/doc/{name}.rndata + +# generic template for a release-notes document in all formats and its +# start menu shortcut +Group: release-notes(name) +Doc-make: rn-{name} +Doc-formats: text,html + [$(HOST)/doc/]RELEASENOTES-{name}.html + [$(HOST)/doc/RELEASENOTES-{name}.text/]RELEASENOTES-{name}$(TXT) + @doc-files(RELEASENOTES-{name}) + @online-release-notes({name}) + +# distribute a file as-is on unix, and with DOS-style newlines and a +# .txt suffix on Windows +Group: text-file(path) +Doc-make: txt-files + (-windows) {path} + (+windows) [$(HOST)/doc/txt-files/]{path}.txt + +# generic template for a target guide in all formats and its start menu shortcut +Group: targetguide(name, dname) +Doc-make: targetguide-{name} + @doc-files(target-guide-{name}) + +# Same as doc-files, but including the makefile rule to build the document +Group: doc(name) +Doc-make: {name} + @doc-files({name}) + +# Same as doc(), shortcut for backward compatibility +Group: doc-and-shortcut(name,shortcutname) +Doc-make: {name} + @doc-files({name}) + +Group: doc-pdf-only(name) +Doc-formats: pdf +Doc-make: {name} + @doc-files-pdf-only({name}) + +Group: doc-md(name) +Make: doc/{name} +Directory: $(HOST)/doc/html/{name}/[filelist.json] +Directory-Suffixes: .css, .js, .html, .png, .json, .svg + +Group: module_load(name) + $(HOST)/lib/python-py3/simmod/{name}/module_load.py + +Group: simics_start(name) + @module_py({name}/simics_start) + +Group: module_py(filename) + $(HOST)/lib/python-py3/simmod/{filename}.py + +Group: module_load_py(name) + $(HOST)/lib/python-py3/simmod/{name}/module_load.py + +Group: simics_start_py(name) + @module_py({name}/simics_start) + +Group: interface_module(filename) + $(HOST)/lib/{filename}$(SO) + +Group: core-build(f) + (+win64) win64/{f} + (+linux64) linux64/{f} + +# Use this to distribute .py files +# Do not distribute separate .py source +Group: core-py(f) + (+win64) win64/{f}.py + (+linux64) linux64/{f}.py diff --git a/config/dist/released-6.version b/config/dist/released-6.version new file mode 100644 index 00000000..fb6372fe --- /dev/null +++ b/config/dist/released-6.version @@ -0,0 +1,11 @@ +# This is a list of released versions of packages. Given this list of +# all released versions of a package, we can compute what the next +# version is going to be. +# +# The columns are: package-number, version, build-id. For example, +# "4711 3.2.1" 1501. +# +# Blank lines are ignored. Everything between a hash and end-of-line +# is ignored. + +31337 0.1.0 1 \ No newline at end of file diff --git a/config/dist/tokens b/config/dist/tokens new file mode 100644 index 00000000..15196b74 --- /dev/null +++ b/config/dist/tokens @@ -0,0 +1,13 @@ +# Tokens that a group can specify as 'required' and a dist-group can +# specify as 'provided'. +# +# NOTE: When creating a token, also give a clear description about +# restrictions and intended recipients. +# +# Example of how to run the policy.py test script with this file: +# [simics-base]/bin/minipython [pkg-6007]/scripts/dist/policy.py \ +# config/dist/ --token-file=config/dist/tokens + + +GROUP_TOKENS: +public diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..7585238e --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +book diff --git a/docs/Breakpoints.md b/docs/Breakpoints.md deleted file mode 100644 index 5577d4a4..00000000 --- a/docs/Breakpoints.md +++ /dev/null @@ -1,251 +0,0 @@ -# Breakpoints - -Using breakpoints is the main method of configuring additional user-defined fault -conditions. - -For example, if your platform considers it an error for any code to write to a -particular memory address range, breakpoints can be used to allow the fuzzer to detect -that event and report it as a fault. - -Along the way, if you'd like to skp the programming, you can find the full source for -this tutorial in the [breakpoints example](../examples/breakpoints/). - -- [Breakpoints](#breakpoints) - - [Install Rizin](#install-rizin) - - [Update the Target Software](#update-the-target-software) - - [Compile the Target Software](#compile-the-target-software) - - [Set Breakpoints as Faults](#set-breakpoints-as-faults) - - [Find Breakpoint Locations](#find-breakpoint-locations) - - [Set Breakpoints](#set-breakpoints) - - [Fuzz for Breakpoints](#fuzz-for-breakpoints) - -## Install Rizin - -Before we get started, you'll need to install the -[rizin](https://github.com/rizinorg/rizin) reverse engineering tool. We will use Rizin -to determine where we want to set our breakpoints. - -Installation instructions for Rizin can be found on their [install -page](https://rizin.re/install/). - -## Update the Target Software - - -To demonstrate how to use breakpoints, we'll first update our target software. Using -the same UEFI application target from the [Fuzzing A UEFI Target](./UEFISimpleTarget.md) -tutorial, we'll copy the code and add a couple new branches to the checks at the end -so that it looks like this: - -```c -if (*(char *)buffer == 'a') { - // Invalid opcode - __asm__(".byte 0x06"); -} else if (*(char *)buffer == 'b') { - // Crash - uint8_t *bad_ptr = (uint8_t *)0xffffffffffffffff; - *bad_ptr = 0; -} else if (*(char *)buffer == 'c') { - // Breakpoint-defined fault location (instruction BP) - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"Uh oh!\r\n"); -} else if (*(char *)buffer == 'd') { - for (size_t i = 0; i < sizeof(off_limits); i++) { - off_limits[i] = 'X'; - } -} -``` - -We'll also need to declare our `off_limits` buffer at global scope: - - -```c -char off_limits[0x100] = {0x00}; -``` - -## Compile the Target Software - -We'll compile the software in almost the same way as we did in the [Fuzzing A UEFI -Target](./UEFISimpleTarget.md) tutorial, but we will add the `-g` flag. We will also -assume you have checked out the [harnessing](./Harnessing.md) documentation and are -using the include file to harness your code. Finally, this command assumes you are -compiling in the [examples/breakpoints/src/](../examples/breakpoints/src/) directory. - -```sh -clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone \ - -O0 -I../../../include/ -g -c target.c -o target.o -lld-link -filealign:16 -subsystem:efi_application -nodefaultlib -dll -entry:UefiMain \ - target.o -out:target.efi -``` - -## Set Breakpoints as Faults - -To treat breakpoints as faults, we need to first tell the fuzzer that we want -breakpoints to be treated as faults. For various reasons, chiefly convenience, -breakpoints will *not* automatically be treated as faults and will instead be ignored. - -To stop ignoring them, call `set_breakpoints_are_faults(True)` on the module interface: - - -```simics -@conf.tsffs_module.iface.set_breakpoints_are_faults(True) -``` - -## Find Breakpoint Locations - -In practice, you may want to automate this process, possibly using DWARF or PDB debug -information. For the sake of once again dispelling any magic, we'll do it manually -first. To set breakpoints, we need to know *where* to set them. In particular, we want -to find the addresses of: - -- Our start harness' magic instruction -- The instruction that calls the "Uh oh!" print-out -- The off-limits buffer we create - -We'll use `rizin` to retrieve this information. Documenting the use of `rizin` is far -outside the scope of this document, but you can read the -[documentation](https://book.rizin.re) for more information. - -First, we want to find the address of our start harness by seeking to the `entry0` -function, printing disassembly of the function, and grepping the output for `cpuid`. - -```sh -$ rizin -Aqqc 'e asm.var=false; e asm.lines=false; sf entry0; pdf ~cpuid;' target.efi -0x180001082 cpuid -0x180001304 cpuid -``` - -We see two CPUID commands, the first of which is our *start* harness address and the -second of which is our *stop* harness. We'll use the first addres `0x180001082` later -as `TARGET_HARNESS_ADDRESS`. - -Next, we want to find the address of the instruction that is printing out the "Uh oh!" -string. - -```sh -$ rizin -Aqqc 'e asm.var=false; e asm.lines=false; sf entry0; pdf ~Uh oh!' \ - ../rsrc/target.efi -0x180001260 lea rdx, data.180002010 ; 0x180002010 ; u"Uh oh!\r\n" -``` - -This instruction is just loading the string's address in `rdx`, we need to disassemble -forward a few instructions to find the actual call: - -```sh -$ rizin -Aqqc 'e asm.var=false; e asm.lines=false; sf entry0; pd 3 @ 0x180001260' \ - ../rsrc/target.efi -0x180001260 lea rdx, data.180002010 ; 0x180002010 ; u"Uh oh!\r\n" -0x180001267 call rax -0x180001269 jmp 0x1800012c4 -``` - -Now we found the instruction we want. We'll save the call address `0x180001267` for -later as `TARGET_INSTRUCTION_ADDRESS`. - -Finally, we want to find the address in the data section our off-limits data lives. We -know we write an `'X'` character to it, so we'll first search for that: - -```sh -$ rizin -Aqqc "e asm.var=false; e asm.lines=false; sf entry0; pdf ~'X'" \ - ../rsrc/target.efi -0x1800012a3 mov byte [rax + rcx], 0x58 ; 'X' -``` - -Then we can disassemble backward to find where `rax` points to: - -```sh -$ rizin -Aqqc "e asm.var=false; e asm.lines=false; sf entry0; pd -3 @ 0x1800012a3" \ - ../rsrc/target.efi -0x180001291 jae 0x1800012ba -0x180001297 mov rcx, qword [var_c8h] -0x18000129c lea rax, section..data ; 0x180003000 -``` - -`rax` points to the data section at `0x180003000`. We'll save this final address -as `TARGET_DATA_ADDRESS`, and it has a size `0x100` which we know because we wrote the -code! - -## Set Breakpoints - -Now that we have set up breakpoints as faults, we can set the actual breakpoints. Using -the SIMICS script from the [Fuzzing A UEFI Target](./UEFISimpleTarget.md) tutorial as a -base, we'll add a new script-branch that will fire when a magic instruction occurs -with the `MAGIC_START` value (`1`). The start harness is a good place to "synchronize" -our static knowledge of the UEFI application binary we are running with the dynamic -state of the application. - -In this case, we'll use the start harness to determine the value of the instruction -pointer (IP) when the magic instruction signifying our start harness is executed. Then, -we can use the difference between the dynamic IP value and the address in our -application binary to find the address of both the instruction (in the third branch) and -memory region (accessed in the fourth branch) to breakpoint both the instruction -execution and the access of off-limits memory. - -We'll add a script branch to our fuzz script, using the addresses we found earlier. - - -```simics -script-branch "Set breakpoints" { - local $TARGET_HARNESS_ADDRESS = 0x180001082 - local $TARGET_INSTRUCTION_ADDRESS = 0x180001267 - local $TARGET_DATA_ADDRESS = 0x180003000 - - local $MAGIC_START = 1 - bp.magic.wait-for $MAGIC_START - - # Create a context for the CPU to set virtual address breakpoints. If you only need - # physical address breakpoints, you can just use `break` - local $ctx = (new-context) - board.mb.cpu0.core[0][0].set-context $ctx - - # Get the value of the IP and the offset from the known address (in this case, it - # should be 0) - local $rip = (board.mb.cpu0.core[0][0].read-reg rip) - local $offset = $rip - $TARGET_HARNESS_ADDRESS - - # Set a breakpoint on the bad instruction - local $harness_break_addr = ($TARGET_INSTRUCTION_ADDRESS + $offset) - echo "Setting instruction harness on:" - print -x $harness_break_addr - $ctx.break -x $harness_break_addr - - # Set a breakpoint on the data memory range - local $data_break_addr = ($TARGET_DATA_ADDRESS + $offset) - echo "Setting data harness on:" - print -x $data_break_addr - $ctx.break -r -w $data_break_addr 0x100 -} -``` - -## Fuzz for Breakpoints - -Now, if we run the fuzzer (assuming you are in the -[examples/breakpoints](../examples/breakpoints/) directory, replace `6.0.169` with your -installed SIMICS base version and `6.0.70` with your installed SIMICS QSP version): - -```sh -cargo run --manifest-path ../../Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./src/target.efi:%simics%/target.efi" \ - --file "./rsrc/fuzz.simics:%simics%/fuzz.simics" \ - --file "./rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' -``` - -We'll eventually see some output like: - -```text - 2023-08-03T19:47:35.634199Z INFO tsffs_module::module::components::detector: Got breakpoint - at tsffs_module/src/module/components/detector/mod.rs:280 - - 2023-08-03T19:47:35.645715Z INFO simics_fuzz::fuzzer: Target got a breakpoint #2 - at simics-fuzz/src/fuzzer/mod.rs:493 on main ThreadId(1) - - 2023-08-03T19:47:35.653409Z INFO simics_fuzz::fuzzer: [Objective #1] (GLOBAL) run time: 0h-0m-12s, clients: 2, corpus: 4, objectives: 1, executions: 11, exec/sec: 2.594 - at simics-fuzz/src/fuzzer/mod.rs:626 on main ThreadId(1) -``` - -Indicating that we've hit out breakpoint during execution and an objective has been -found. \ No newline at end of file diff --git a/docs/DebuggingFuzzer.md b/docs/DebuggingFuzzer.md deleted file mode 100644 index 7cc7b43a..00000000 --- a/docs/DebuggingFuzzer.md +++ /dev/null @@ -1,74 +0,0 @@ -# Debugging the Fuzzer - -If you aren't a developer for the fuzzer, please file an issue for any problems you -have that make you want or need to debug the fuzzer. It isn't something most users -should need to do. - -## Environment - -First, you should be using VSCode with rust-analyzer. You'll also need the CodeLLDB -extension for VSCode, with lldb installed. - -## Configuration - -We'll debug the `simics-fuzz` binary, although you may need to debug a test in -`simics-tests` or the CLI from `simics-cli`. - -Create a CodeLLDB -[configuration](https://github.com/vadimcn/codelldb/blob/master/MANUAL.md#starting-a-new-debug-session) -that looks something like this: - - -```json -{ - "configurations": [ - { - "type": "lldb", - "request": "launch", - "name": "Debug simics-fuzz", - "cargo": { - "args": ["build", "--bin", "simics-fuzz", "--features=6.0.169"] - }, - "args": [ - "-c", - "/tmp/newcorpus/", - "-s", - "/tmp/newsolution/", - "-l", - "DEBUG", - "-C", - "1", - "--package", - "2096:6.0.70", - "--file", - "examples/hello-world/rsrc/HelloWorld.efi:%simics%/targets/hello-world/HelloWorld.efi", - "--file", - "examples/hello-world/rsrc/app.py:%simics%/scripts/app.py", - "--file", - "examples/hello-world/rsrc/app.yml:%simics%/scripts/app.yml", - "--file", - "examples/hello-world/rsrc/minimal_boot_disk.craff:%simics%/targets/hello-world/minimal_boot_disk.craff", - "--file", - "examples/hello-world/rsrc/run_uefi_app.nsh:%simics%/targets/hello-world/run_uefi_app.nsh", - "--file", - "examples/hello-world/rsrc/run-uefi-app.simics:%simics%/targets/hello-world/run-uefi-app.simics", - "--command", - "COMMAND:%simics%/scripts/app.yml" - ], - "cwd": "${workspaceFolder}" - } - ] -} -``` - -This specifies the command we'll run, the args to run it, and the cargo command -needed to build it. - -## Debugging - -To debug, first open the Run and Debug menu in VSCode (the icon is a bug over a play -button). Select your launch configuration in the dropdown like so: - -![Launch configuration](./images/DEBUGGING_FUZZER_Run_and_Debug.png) - -Press the play button at the top and the binary will build and run. \ No newline at end of file diff --git a/docs/DevGuide.md b/docs/DevGuide.md deleted file mode 100644 index 7c97ad48..00000000 --- a/docs/DevGuide.md +++ /dev/null @@ -1,21 +0,0 @@ -# Developer Guide - -There are some general guidelines and practices built in to this repo for developers -convenience and as requirements for PR. - -- [Developer Guide](#developer-guide) - - [Scripts](#scripts) - -## Scripts - -There are several scripts for developers: - -- [./scripts/fmt.sh](../scripts/fmt.sh): Auto-format files. Run this before committing - or submitting a PR. -- [./scripts/check.sh](../scripts/check.sh): Check file formatting. Run this before - committing or submitting a PR. -- [./scripts/check.sh](../scripts/ci.sh): Run CI scripts. It's recommended to run this - before committing or PR-ing if you're able to save bumper-cars programming. -- [./scripts/cov.sh](../scripts/cov.sh): Generate a coverage report from tests. -- [./scripts/dependabot.sh](../scripts/dependabot.sh): Generate an up to date dependabot - report. The newest dependabot report must be 2 weeks old or newer for CI to pass. \ No newline at end of file diff --git a/docs/FAQ.md b/docs/FAQ.md deleted file mode 100644 index d88d2336..00000000 --- a/docs/FAQ.md +++ /dev/null @@ -1,60 +0,0 @@ -# FAQ - -Questions we receive from Discord, via email, and as Issues or Discussions in the -repository will be periodically added here. - -- [FAQ](#faq) - - [Q: Compile error: `dotenv!` is complaining](#q-compile-error-dotenv-is-complaining) - - [Q: Can I stop and resume the fuzzer?](#q-can-i-stop-and-resume-the-fuzzer) - - [Q: "An error was encountered while trying to build the list of packages to install"](#q-an-error-was-encountered-while-trying-to-build-the-list-of-packages-to-install) - - [Q: Can I contribute to ths project?](#q-can-i-contribute-to-ths-project) - -## Q: Compile error: `dotenv!` is complaining - - - -If you see this error: - -```text -macro expansion ignores token `;` and any following -the usage of `dotenv!` is likely invalid in expression context -``` - -Under a line of code like: - -```rust -const SIMICS_HOME: &str = dotenv!("SIMICS_HOME"); -``` - -All you need to do is follow the [setup guide](./Setup.md#set-up-simics_home) and set -up your `.env` file. - -## Q: Can I stop and resume the fuzzer? - - - -Yes, passing `--input CORPUS_DIRECTORY --corpus CORPUS_DIRECTORY`, where -`CORPUS_DIRECTORY` is a directory containing your input seed files will make the fuzzer -save the corpus, which consists of inputs the fuzzer has found which trigger new -coverage in the target software, back to the input directory. This means when you run -the fuzzer again with the same set of arguments, it will load the corpus it was working -on before, effectively "resuming" from where it left off. - -## Q: "An error was encountered while trying to build the list of packages to install" - - - -If you see "An error was encountered while trying to build the list of packages to -install" when running `ispm` to install SIMICS packages, you should try re-downloading -the SIMICS packages ISPM, it's likely the `.ispm` file is corrupted or incompletely -downloaded. - -## Q: Can I contribute to ths project? - - - -Absolutely! Please contribute, and if you have an idea that you want help implementing -or do not have time to implement, please create an issue with the "enhancement" tag so -the maintainer team can track it. - - diff --git a/docs/Harnessing.md b/docs/Harnessing.md deleted file mode 100644 index 0c0ebe64..00000000 --- a/docs/Harnessing.md +++ /dev/null @@ -1,150 +0,0 @@ -# Harnessing - -This document outlines options for harnessing your code for fuzzing. The objective of -this project is to require as little change to your target software as possible to begin -the fuzzing process. Please file an issue if you have a use case that cannot be -satisfied by any of the approaches outlined here. - -- [Harnessing](#harnessing) - - [Harnessing With Provided Include File](#harnessing-with-provided-include-file) - - [Harnessing in Constrained UEFI Environments](#harnessing-in-constrained-uefi-environments) - - [Harnessing In Non-C Languages](#harnessing-in-non-c-languages) - - -## Harnessing With Provided Include File - -In the [first tutorial](./UEFISimpleTarget.md), we wrote inline assembly to invoke the -magic `cpuid` instruction that signals the start and end of the harness. In practice, we -recommend you use the header file we provide to harness your code, either by -`#include`-ing it or, if that is difficult due to your build system, by pasting its -contents into the file containing the code you are harnessing. - -The include file [tsffs.h](../include/tsffs.h) is in the [include](../include/) -directory of this repository. To include it, you can use any of the below approaches, in -rough order of best to worst. - -- Add the `-I /path/to/tsffs/include/` flag to your - compile command and add the line `#include "tsffs.h"` to your target -- Copy `tsffs.h` into your source code next to the target file you are harnessing - and add the line `#include "tsffs.h"` -- Add the line - `#include "/path/to/tsffs/include/tsffs.h"` to your - source code in the target file. -- Copy and paste the contents of `tsffs.h` into your source file. - -Using this header, the start harness: - -```c -__asm__ __volatile__( - "cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d), "=S"(buffer_ptr), "=D"(size_ptr) - : "0"((0x0001U << 16U) | 0x4711U), "S"(buffer_ptr), "D"(size_ptr)); -``` - -Becomes simply: - -```c -HARNESS_START(&buffer_ptr, &size); -``` - -And the stop harness: - - -```c -__asm__ __volatile__("cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d) - : "0"((0x0002U << 16U) | 0x4711U)); -``` - -Becomes: - -```c -HARNESS_STOP(); -``` - -## Harnessing in Constrained UEFI Environments - -Some UEFI build environments will not support GNU inline assembly or the `__cpuid` and -`__cpuidex` macros used with the MSVC compiler. In these instances, you can write your -own harness functions if you have another method of causing a `cpuid` instruction. For -example, if you have functions defined by your build environment: - -```c -void CpuId(UINT32 CpuInfo[4], UINT32 FunctionId); -void CpuIdEx(UINT32 CpuInfo[4], UINT32 FunctionId, UINT32 SubFunctionId); -``` - -You can create your own harness code like the below: - -```c -#define MAGIC_START 1 -#define MAGIC_STOP 2 -#define MAGIC_START_WININTRIN 3 -#define MAGIC 18193 - -void harness_start(unsigned char **addr_ptr, unsigned long long *size_ptr) { - unsigned int cpuInfo[4] = {0}; - unsigned int function_id_start = (MAGIC_START_WININTRIN << 16U) | MAGIC; - unsigned int subfunction_id_addr_low = - (unsigned int)(((unsigned long long)*addr_ptr) & 0xffffffff); - unsigned int subfunction_id_addr_hi = - (unsigned int)(((unsigned long long)*addr_ptr) >> 32U); - unsigned int subfunction_id_size_low = - (unsigned int)(((unsigned long long)*size_ptr) & 0xffffffff); - unsigned int subfunction_id_size_hi = - (unsigned int)(((unsigned long long)*size_ptr) >> 32U); - CpuIdEx(cpuInfo, function_id_start, subfunction_id_addr_low); - CpuIdEx(cpuInfo, function_id_start, subfunction_id_addr_hi); - CpuIdEx(cpuInfo, function_id_start, subfunction_id_size_low); - CpuIdEx(cpuInfo, function_id_start, subfunction_id_size_hi); - *(long long *)addr_ptr = 0; - *(long long *)addr_ptr |= (long long)cpuInfo[0]; - *(long long *)addr_ptr |= ((long long)cpuInfo[1]) << 32U; - *(long long *)size_ptr = 0; - *(long long *)size_ptr |= (long long)cpuInfo[2]; - *(long long *)size_ptr |= ((long long)cpuInfo[3]) << 32U; -} - -void harness_stop(void) { - unsigned int cpuInfo[4] = {0}; - unsigned int function_id_stop = (MAGIC_STOP << 16U) | MAGIC; - CpuId(cpuInfo, function_id_stop); -} -``` - -## Harnessing In Non-C Languages - -If your target is written in Rust, you can depend on the `include` crate in this -repository and utilize the architecture-specific harness functions. - -For example, in your `Cargo.toml`, you can add the following to depend on the crate. -Note the feature version must match a version of SIMICS base you have installed, and -preferably should match the version you will use when fuzzing. - -```toml -[dependencies] -include = { path = "/path/to/tsffs/include/", features = ["6.0.169" ]} -``` - -Then, you can call the harness functions: - - -```rust -use include::x86_64::{harness_start, harness_stop}; - -fn main() { - let mut buf = &[0; 32]; - let mut buf_ptr = buf.as_mut_ptr(); - let mut buf_size: u64 = buf.len().try_into().unwrap(); - harness_start(&mut buf_ptr, &mut buf_size); - // Your code here, using buf/buf_size! - harness_stop(); -} -``` - -If your target is written in pure assembly, you can directly write the equivalent of the -inline assembly shown above. Consult the SIMICS documentation (installed with your -SIMICS installation) for reference on the magic instructions for each architecture, and -pass `n=1` to signal a start and `n=2` to signal a stop. The registers used for -auxiliary information are different for each architecture and are defined by the fuzzer -module in [magic/mod.rs](../tsffs_module/src/magic/mod.rs). \ No newline at end of file diff --git a/docs/ModuleApi.md b/docs/ModuleApi.md deleted file mode 100644 index 0f2cc13a..00000000 --- a/docs/ModuleApi.md +++ /dev/null @@ -1,73 +0,0 @@ -# Module API - -The module loaded into SIMICS that the fuzzer uses to manage execution has a small -API in the form of a SIMICS module interface. That interface is defined in three places, -which are consistent with each other: - -- [tsffs_module-interface.dml](tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.dml) -- [tsffs_module-interface.h](../tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.h) -- [module/mod.rs](../tsffs_module/src/module/mod.rs) - -That API looks like this in Rust: - -```rust -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -/// This is the rust definition for the tffs_module_interface_t declaration in the stubs, which -/// are used to generate the interface module. This struct definition must match that one exactly -/// -/// # Examples -/// -/// Assuming your model is configured, and by resuming the simulation the target The -/// following SIMICS code (either in a SIMICS script, or in an equivalent Python script) -/// is typically sufficient to start the fuzzer immediately. -/// -/// ```simics -/// stop -/// @conf.tsffs_module.iface.tsffs_module.init() -/// @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) -/// # Add triple fault (special, -1 code because it has no interrupt number) -/// @conf.tsffs_module.iface.tsffs_module.add_fault(-1) -/// # Add general protection fault (interrupt #13) -/// @conf.tsffs_module.iface.tsffs_module.add_fault(13) -/// $con.input "target.efi\n" -/// # This continue is optional, the fuzzer will resume execution for you if you do not resume -/// # it at the end of your script -/// continue -/// ``` -pub struct ModuleInterface { - /// Start the fuzzer. If `run` is true, this call will not return and the SIMICS main loop - /// will be entered. If you need to run additional scripting commands after signaling the - /// fuzzer to start, pass `False` instead, and later call either `SIM_continue()` or `run` for - /// Python and SIMICS scripts respectively. - pub init: extern "C" fn(obj: *mut ConfObject), - /// Inform the module of a processor that should be traced and listened to for timeout and - /// crash objectives. You must add exactly one processor. - pub add_processor: extern "C" fn(obj: *mut ConfObject, processor: *mut AttrValue), - /// Add a fault to the set of faults listened to by the fuzzer. The default set of faults is - /// no faults, although the fuzzer frontend being used typically specifies a limited set. - pub add_fault: extern "C" fn(obj: *mut ConfObject, fault: i64), - /// Add channels to the module. This API should not be called by users from Python and is - /// instead used by the fuzzer frontend to initiate communication with the module. - pub add_channels: extern "C" fn(obj: *mut ConfObject, tx: *mut AttrValue, rx: *mut AttrValue), - /// Set whether breakpoints are treated as faults - pub set_breakpoints_are_faults: - extern "C" fn(obj: *mut ConfObject, breakpoints_are_faults: bool), -} -``` - -The primary way of interacting with this API as a user is through Python code running -either in a Python script or a SIMICS script as your entrypoint your SIMICS project -being fuzzed uses. The documentation on the interface structure above should give you -a good idea of how to use this API. You can also take a look at the example scripts, -each of which use a slightly different pattern from each other: - -- [breakpoints](../examples/breakpoints/rsrc/fuzz.simics) -- [hello-world](../examples/hello-world/rsrc/app.py) -- [x509-parse](../examples/x509-parse/rsrc/app.py) -- [mini](../examples/mini/rsrc/fuzz.simics) -- [harnessing-uefi (tutorial)](../examples/harnessing-uefi/rsrc/fuzz.simics) - -## Faults - -Faults are defined in [fault.rs](../tsffs_module/src/module/components/detector/fault.rs), -and fault numbers correspond to exception codes for the architecture being tested. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 0271d805..00000000 --- a/docs/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Documentation Index - -This page is just an index for the documentation to make it easier to navigate. The -page links below are loosely in order of the order you'll want to read them if you are -new to using the fuzzer or evaluating whether you can use it for your project. - -## General Documentation - -- [Verify Target Software requirements for using this fuzzer with your project](./Requirements.md) -- [Install dependencies, set up workspace, and build this fuzzer](./Setup.md) -- [Module SIMICS/SIMICS Python scripting interface](./ModuleApi.md) -- [Harnessing Target Software in C, Rust, and Assembly](./Harnessing.md) -- [Fault detection with breakpoints](./Breakpoints.md) -- [FAQ](./FAQ.md) - -## Tutorials - -- [Tutorial 1: Harnessing, Fuzzing, and Triaging A Simple UEFI Application](./UEFISimpleTarget.md) - -## Developer Documentation - -- [Debugging the Fuzzer](./DebuggingFuzzer.md) -- [Updating SIMICS API bindings for new SIMICS versions](./UpdateBindings.md) -- [Various additional developer information](./DevGuide.md) \ No newline at end of file diff --git a/docs/Setup.md b/docs/Setup.md deleted file mode 100644 index eda0e851..00000000 --- a/docs/Setup.md +++ /dev/null @@ -1,253 +0,0 @@ -# Setup - -Follow these setup steps to prepare this repository to build! If you encounter any -issues during this process, check the troubleshooting section first for common -resolutions. - -- [Setup](#setup) - - [Install Prerequisites](#install-prerequisites) - - [System Packages](#system-packages) - - [Rust](#rust) - - [SIMICS](#simics) - - [(Optional) Install Simics GUI Dependencies](#optional-install-simics-gui-dependencies) - - [Download Simics](#download-simics) - - [Install Simics](#install-simics) - - [Set up SIMICS\_HOME](#set-up-simics_home) - - [Docker](#docker) - - [Build the Fuzzer](#build-the-fuzzer) - - [Troubleshooting](#troubleshooting) - - [Troubleshooting Docker Installations](#troubleshooting-docker-installations) - - [Docker Group Membership](#docker-group-membership) - - [Docker Proxy Use](#docker-proxy-use) - - [Troubleshooting Rust Installation](#troubleshooting-rust-installation) - -## Install Prerequisites - -We need a couple of things before we are ready to build. To set up this workspace, -you'll need `cargo` as well as `simics` with the packages necessary to -run whatever it is you want to run. Here, we'll just install the packages needed to -run the simple samples we provide, but this is where you will want to customize your -installation if necessary. - -Docker installation is optional and only needed if you want to build the EDK2 example -targets yourself. The pre-built EFI applications for those examples are provided. - -### System Packages - -To run SIMICS and TSFFS on your system, as well as follow this setup tutorial, you will -need several packages: - -For Ubuntu or Debian, install them with: - -```sh -sudo apt-get install build-essential curl git -``` - -For Fedora or RHEL, install them with: - -```sh -sudo dnf install curl gcc g++ make git -``` - -### Rust - -You can install the Rust toolchain (including `cargo`, `rustc`, etc) from -[rustup.rs](https://rustup.rs) by following the instructions there and running: - -```sh -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -``` - -To check that your Rust install is working, run: - -```sh -$ cargo new --bin /tmp/rust-test -$ cargo run --manifest-path /tmp/rust-test/Cargo.toml -Compiling rust-test v0.1.0 (/tmp/rust-test) -Finished dev [unoptimized + debuginfo] target(s) in 0.50s - Running `/tmp/rust-test/target/debug/rust-test` -Hello, world! -``` - -If you see the `Hello, world!` message, your Rust installation is complete! - -### SIMICS - -When building this software, you will need a working SIMICS installation. This document -will walk you through this installation and configuration of this software to utilize -the SIMICS installation. - -#### (Optional) Install Simics GUI Dependencies - -This step is optional, if you want to use the Simics GUI to install it, you will need -these dependencies. - -For Ubuntu or Debian, install them with: - -```sh -sudo apt-get install libatk1.0-0 libatk-bridge2.0-0 libcups2 libgtk-3-0 libgbm1 \ - libasound2 -``` - -On Red Hat or Fedora, install them with: - -```sh -sudo dnf install atk cups gtk3 mesa-libgbm alsa-lib -``` - -#### Download Simics - -If you only want to test the included samples or you only need to run targets that use -the public Simics packages, you can download Simics from the external intel site on the -[public release page](https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html). - -You will need to download both files (for this section, replace the version with the -version you see on the download page): - -- `intel-simics-package-manager-1.7.5-linux64.tar.gz` -- `simics-6-packages-2023-31-linux64.ispm` - -In this case, we'll assume you have downloaded both files to the `${HOME}/Downloads` -directory, which you can do by running: - -```sh -mkdir -p "${HOME}/Downloads" -curl -L -o "${HOME}/Downloads/intel-simics-package-manager-1.7.5-linux64.tar.gz" \ - https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-linux64.tar.gz -curl -L -o "${HOME}/Downloads/simics-6-packages-2023-31-linux64.ipsm" \ - https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/simics-6-packages-2023-31-linux64.ispm \ -``` - -#### Install Simics - -Assuming the two download locations above, we will install Simics to `${HOME}/simics`. - -```sh -mkdir -p "${HOME}/simics/ispm" -tar -C "${HOME}/simics/ispm" --strip-components=1 \ - -xvf ~/Downloads/intel-simics-package-manager-1.7.5-linux64.tar.gz -"${HOME}/simics/ispm/ispm" packages \ - --install-dir "${HOME}/simics" \ - --install-bundle ~/Downloads/simics-6-packages-2023-31-linux64.ispm \ - --non-interactive -``` - -#### Set up SIMICS_HOME - -In the root of this project, create a file `.env` containing a line like the below that -points to your `SIMICS_HOME` directory (the `--install-dir` argument you passed to -`ispm` in the last step). - -```sh -SIMICS_HOME=/home/YOUR_USERNAME/simics/ -``` - -You can create the `.env` file with: - -```sh -echo "SIMICS_HOME=${HOME}/simics/" > .env -``` - -### Docker - -Docker installation is completely optional, and is only needed to manually build the -example EFI applications. Pre-built applications are provided in this repository, so you -can safely skip this step unless you want to modify them or create your own target EFI -applications. - -You can find instructions to install docker at -[docs.docker.com](https://docs.docker.com/engine/install). The instructions vary -slightly by distribution, so be sure to follow the directions for your particular Linux -flavor. - -After installing docker, you can test that your installation is working by running: - -```sh -$ docker run hello-world -Unable to find image 'hello-world:latest' locally -latest: Pulling from library/hello-world -719385e32844: Pull complete -Digest: sha256:a13ec89cdf897b3e551bd9f89d499db6ff3a7f44c5b9eb8bca40da20eb4ea1fa -Status: Downloaded newer image for hello-world:latest - -Hello from Docker! -This message shows that your installation appears to be working correctly. - -To generate this message, Docker took the following steps: - 1. The Docker client contacted the Docker daemon. - 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. - (amd64) - 3. The Docker daemon created a new container from that image which runs the - executable that produces the output you are currently reading. - 4. The Docker daemon streamed that output to the Docker client, which sent it - to your terminal. - -To try something more ambitious, you can run an Ubuntu container with: - $ docker run -it ubuntu bash - -Share images, automate workflows, and more with a free Docker ID: - https://hub.docker.com/ - -For more examples and ideas, visit: - https://docs.docker.com/get-started/ -``` - -You should see the message that starts `Hello from Docker!`. If you don't, check -[troubleshooting](#troubleshooting-docker-installations) - -## Build the Fuzzer - -After installing the prerequisites, you can build the fuzzer by running the command -below in the root of this repository. - -```sh -cargo build --features=6.0.169 -``` - If the SIMICS 6 packages version you installed -differs from the version shown above, replace the feature version number you see here -with the version of SIMICS base you installed. You can figure out what version -that is with `ls "${HOME}/simics" | grep -E 'simics-[0-9]+(\.[0-9]+){2}'` - -## Troubleshooting - -### Troubleshooting Docker Installations - -#### Docker Group Membership - -If you get an error like this when trying to run docker commands: - -```text -permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied -``` - -You need to add your user to the `docker` group by running: - -```sh -sudo groupadd docker -sudo usermod -aG docker $USER -``` - -You'll then need to log out and log back in, or you can run `newgrp docker` to apply -the changes in your running shell. Be aware `newgrp` will not persist changes in other -shells, so logging out and in is recommended. - -After adding yourself to the `docker` group, you should be able to run `groups` and -see `docker` on the output line. If you don't, try running the above command with your -username like so `sudo usermod -aG docker YOUR_USERNAME`. - -#### Docker Proxy Use - -If you need to use a proxy to connect to the internet (for example you are on a VPN) -you may want to follow the directions from -[docker](https://docs.docker.com/config/daemon/systemd/#httphttps-proxy) to direct -docker engine to use a proxy to pull images. - -If you need to do this, you will also likely need to follow the directions from -[docker](https://docs.docker.com/network/proxy/) to use a proxy *inside* the image, not -just for pulling images. - -### Troubleshooting Rust Installation - -If you get an error while installing Rust or once you try to build and run a test that -either a compiler or linker is missing, you are likely missing the `build-essential` -(or the equivalent on your Linux distribution) package. diff --git a/docs/UEFISimpleTarget.md b/docs/UEFISimpleTarget.md deleted file mode 100644 index 5ca8d29f..00000000 --- a/docs/UEFISimpleTarget.md +++ /dev/null @@ -1,801 +0,0 @@ -# Fuzzing a UEFI Target - -In this tutorial, we will create the simplest possible UEFI app target for the fuzzer -and add a harness for it. We'll fuzz the harnessed application until we find a crash or -two, then we'll briefly show how to traige the crash we found. - -- [Fuzzing a UEFI Target](#fuzzing-a-uefi-target) - - [Set Up The Fuzzer](#set-up-the-fuzzer) - - [Install Dependencies](#install-dependencies) - - [Ubuntu](#ubuntu) - - [Fedora](#fedora) - - [Create the Target](#create-the-target) - - [target.c](#targetc) - - [Compile the Target](#compile-the-target) - - [Test the Target](#test-the-target) - - [Set Up the Project](#set-up-the-project) - - [Run the Target](#run-the-target) - - [Add the Harness](#add-the-harness) - - [Understand the Harness](#understand-the-harness) - - [Compile the Harnessed Target](#compile-the-harnessed-target) - - [Modify the SIMICS Script](#modify-the-simics-script) - - [Create an Input Corpus](#create-an-input-corpus) - - [Fuzz the Harnessed Target](#fuzz-the-harnessed-target) - - [Triage the Crash](#triage-the-crash) - - -## Set Up The Fuzzer - -Before going through this tutorial, you'll need to have the fuzzer set up by following -the [setup guide](./Setup.md). - -## Install Dependencies - -For this tutorial, you need: - -- `clang` -- `lld` - -You can install both from your package manager. - -### Ubuntu - -To install `clang` and `lld` on Ubuntu: - -```sh -apt-get -y install clang lld -``` - -### Fedora - -To install `clang` and `lld` on Fedora: - -```sh -dnf -y install clang lld -``` - -## Create the Target - -Typically, UEFI app targets will be based on an existing UEFI framework, like EDK2. For -simplicity, we'll first cover harnessing using a much simpler target that we can compile -like any other software using `clang` and `lld`. - -Our target will be as simple as possible -- it will print out in hex the contents of a -buffer. This is a poor target for fuzzing, but it will allow us to see our fuzzer in -action. We will write our target in one file to keep things simple. - -### target.c - -First, we need to define a few [EFI-specified](https://uefi.org/specifications) -structures. These structures define the system table, the header for the table, and the -protocol for the *EFI Simple Text Output Protocol*, which we will use to print text to -the screen. Don't worry too much about the contents of these structures, it isn't -relevant to harnessing. paste all the code below into `target.c`. - -```c -#include -#include - -// NOTE: Forward declaration -struct EfiSimpleTextOutputProtocol; - -typedef uint64_t (*EfiTextString)(struct EfiSimpleTextOutputProtocol *this, - int16_t *string); -typedef struct EfiTableHeader { - uint64_t signature; - uint32_t revision; - uint32_t headerSize; - uint32_t crc32; - uint32_t reserved; -} EfiTableHeader; - -typedef struct EfiSimpleTextOutputProtocol { - uint64_t reset; - EfiTextString output_string; - uint64_t test_string; - uint64_t query_mode; - uint64_t set_mode; - uint64_t set_attribute; - uint64_t clear_screen; - uint64_t set_cursor_position; - uint64_t enable_cursor; - uint64_t mode; -} EfiSimpleTextOutputProtocol; - -typedef struct EfiSystemTable { - EfiTableHeader hdr; - int16_t *firmwareVendor; - uint32_t firmwareRevision; - void *consoleInHandle; - uint64_t conIn; - void *consoleOutHandle; - EfiSimpleTextOutputProtocol *conOut; - void *standardErrorHandle; - uint64_t stdErr; - uint64_t runtimeServices; - uint64_t bootServices; - uint64_t numberOfTableEntries; - uint64_t configurationTable; -} EfiSystemTable; - -``` - -We have now defined our spec-mandated structures, and we can move on to our application -code. This code declares a (probably stack) buffer, and prints out the buffer as hex -to the screen before returning. Notice that because UEFI mandates wide characters, our -buffer is of 16-bit integers. - -```c - -const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - - -int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { - int16_t buffer[0x20]; - size_t size = sizeof(buffer) - 1; - - for (size_t i = 0; i < size; i++) { - if (i != 0 && !(i % 8)) { - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"\r\n"); - } - int16_t buf[5]; - buf[4] = 0; - int16_t chr = buffer[i]; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); - } - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); - - return 0; -} -``` - -This is all we need for our target! - -## Compile the Target - -To compile and link this target, run: - -```sh -clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone \ - -O0 -c target.c -o target.o -lld-link -filealign:16 -subsystem:efi_application -nodefaultlib -dll -entry:UefiMain \ - target.o -out:target.efi -``` - -Some of these arguments are probably unfamiliar, so we'll walk through each one: - -- [`-target x86_64-pc-win32-coff`](https://clang.llvm.org/docs/CrossCompilation.html): - output code for x86_64 architecture, for generic PCs (i.e. not Apple, NVidia, IBM), - for the Win32 operating system, in COFF file format. UEFI is compatible with Win32 - in terms of object files and ABI, which is why we use this target and not one like - "x86_64-pc-uefi" (which doesn't exist). -- [`-fno-stack-protector`](https://clang.llvm.org/docs/ClangCommandLineReference.html): - Do not emit a stack protector -- [`-fshort-wchar`](https://clang.llvm.org/docs/ClangCommandLineReference.html): - specifies that `wchar_t` is an unsigned short value. -- [`-mno-red-zone`](https://clang.llvm.org/docs/ClangCommandLineReference.html): - Do not use a red-zone, which is an ABI-mandated 128-byte area beyond the stack pointer - that is not modified by signal/interrupt handlers. -- [`-filealign:16`](https://lld.llvm.org/ELF/linker_script.html): 16-bit align the - executable's sections. -- [`-subsystem:efi_application`](https://learn.microsoft.com/en-us/cpp/build/reference/subsystem-specify-subsystem?view=msvc-170): - Specify linking for the EFI_APPLICATION subsystem. -- [`-nodefaultlib`](https://github.com/llvm/llvm-project/blob/bf98aaae00465c1e52376f8e138e4c51eb526d12/lld/COFF/Options.td#L82): - Remove all default libraries from linker output (i.e. no glibc) -- [`-dll`](https://github.com/llvm/llvm-project/blob/bf98aaae00465c1e52376f8e138e4c51eb526d12/lld/COFF/Options.td#L139): - Output a DLL (Dynamically Linked Library) -- [`-entry:UefiMain`](https://github.com/llvm/llvm-project/blob/bf98aaae00465c1e52376f8e138e4c51eb526d12/lld/COFF/Options.td#L47): - Specify the name of the entrypoint symbol - -You should have an output file, `target.efi`. - -## Test the Target - -Now that we have an EFI application, we should test it before we run it with the fuzzer. -In the following commands, replace `${SIMICS_HOME}` with the directory you installed -SIMICS into during setup. If you would like, you can run `export $(cat .env | xargs)` in -the root of this repository to export the variable(s) from the `.env` file you set up in -the setup instructions. - -### Set Up the Project - -Set up the project by creating a new SIMICS project as shown below (replace `6.0.169` -with your installed SIMICS version and `6.0.70` with your installed SIMICS QSP version): - -```sh -${SIMICS_HOME}/simics-6.0.169/bin/project-setup ./target-test -cd ./target-test -echo "${SIMICS_HOME}/simics-qsp-x86-6.0.70/" > .package-list -./bin/project-setup -``` - -Now, copy the EFI application you just built into the project. - -```sh -cp ../target.efi ./ -``` - -Next, we need the boot drive `minimal_boot_disk.craff` from this repository, which we -will also copy into the project. Replace `PATH/TO/THIS/REPO/` with the path to this -repository's root. - -```sh -cp /PATH/TO/THIS/REPO/examples/harnessing-uefi/rsrc/minimal_boot_disk.craff ./ -``` - -Finally, we will add a SIMICS script that will automatically boot the machine, enter -the UEFI shell, and download our EFI application onto the machine for us. - -```sh -cat < test.simics -\$disk0_image = (lookup-file "%simics%/minimal_boot_disk.craff") -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -script-branch "UEFI Shell Enter Branch" { - local \$kbd = \$system.mb.sb.kbd - local \$con = \$system.console.con - local \$sercon = \$system.serconsole.con - - bp.time.wait-for seconds = 10 - - \$kbd.key-press ESC - bp.time.wait-for seconds = 3 - - foreach \$i in (range 2) { - \$kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - - \$kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - \$kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - - \$kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - \$kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - \$con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - # We are now in the UEFI shell, we'll download our EFI app - local \$manager = (start-agent-manager) - \$con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/target.efi") + "\n") - bp.time.wait-for seconds = .5 -} -run -EOF -``` - -### Run the Target - -Now that we've set up our project, we can actually run the target. We will run SIMICS -with its GUI interface so we can interact with the machine directly. When we run our -fuzzer, we will typically not use the GUI for performance reasons, but it is helpful to -check that the fuzzer and target are working as expected. - -```sh -./simics ./test.simics -``` - -The machine will boot up and automatically select several menu items to boot into the -UEFI shell and change to the `FS0` filesystem, then download our UEFI application. -You'll see the screen below: - -![Console](./images/HARNESSING_UEFI_SIMPLE_Run_Target.png) - -Once booted to the UEFI shell, you can run the application by typing `target.efi` and -pressing enter on the graphical console: - -![Console](./images/HARNESSING_UEFI_SIMPLE_Run_Target_Post.png) - -You'll see uninitialized memory, because we did not zero the buffer after initializing -it. If you do, you are ready to move on to the next step by pressing `CTRL+C` in the -terminal you ran SIMICS in, then typing `exit` to exit SIMICS. - -## Add the Harness - -This fuzzer's "harness" uses SIMICS' *Magic Instruction* capabilities, which is a fancy -way of saying "run a `cpuid` instruction with a specific -[leaf value](https://www.felixcloutier.com/x86/cpuid)". Therefore, to harness source -code, all we need to do is issue a `cpuid` to tell the fuzzer where the beginning of the -fuzzing loop is, and another `cpuid` to tell the fuzzer where the end of the fuzzing -loop is in our code. - -The harness we will cover first is the no-frills approach, invoking the SIMICS magic -instruction directly. In practice, we provide a [single header file](../include/tsffs.h) -you should use, which we'll cover [in another -document](./Harnessing.md#harnessing-with-provided-include-file). For the sake of -complete understanding, we will pull back the curtain first. After finishing this -tutorial, you should always prefer using the `tsffs.h` header file. You can check out -[target-harnessed-include.c](../examples/harnessing-uefi/src/target-harnessed-include.c) -to see how this target should be harnessed using the header. - -We'll copy `target.c` to `target-harnessed.c` and modify our `UefiMain` function to look -like this: - -```c -int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { - uint32_t _a, _b, _c, _d = 0; - - int16_t buffer[0x20]; - size_t size = sizeof(buffer) - 1; - int16_t *buffer_ptr = &buffer[0]; - - __asm__ __volatile__( - "cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d), "=S"(buffer_ptr), "=D"(size) - : "0"((0x0001U << 16U) | 0x4711U), "S"(buffer_ptr), "D"(size)); - - for (size_t i = 0; i < size; i++) { - if (i != 0 && !(i % 8)) { - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"\r\n"); - } - int16_t buf[5]; - buf[4] = 0; - int16_t chr = buffer[i]; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); - } - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); - - if (buffer[1] == 'a') { - - } - - __asm__ __volatile__("cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d) - : "0"((0x0002U << 16U) | 0x4711U)); - - return 0; -} -``` - -## Understand the Harness - -Some of this might be unfamiliar, so we'll walk through each line we added. - - -The `cpuid` instruction stores the result in four 32-bit variables. We don't need to -read the *real* result from the `cpuid` instruction, but we should still put it -somewhere, so we save the result into these four values. We don't use them, so we name -them with underscores. -```c -uint32_t _a, _b, _c, _d = 0; -``` - -Here, we're just saving the address of the buffer in a pointer variable. `gcc` will let -us pass `&buffer[0]` directly into the inline assembly, but `clang` will not. We declare -a second variable as a more portable option. - -```c -int16_t *buffer_ptr = &buffer[0]; -``` - -If you aren't familiar with inline assembly, the `__asm__` blocks likely look very -arcane. The first line is our assembly instruction block (just our `cpuid` instruction -in this instance). The second line, with *constraints* like `=a` specifies where -*outputs* of the assembly should go. For example, `"=D"(size)` specifies that after this -assembly block (in this case, one instruction), the contents of register `rdi` should be -written to the variable `size`. The last line specifies our inputs, where `"0"` -specifies that this argument should be in the same position as the first output -argument, so in this cas in register `eax`, `"S"` specifies that the buffer address -should be in `rsi`, and so forth. If you're curious, you can read the -[docs](https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#x86-Operand-Modifiers). - -```c -__asm__ __volatile__( - "cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d), "=S"(buffer_ptr), "=D"(size) - : "0"((0x0001U << 16U) | 0x4711U), "S"(buffer_ptr), "D"(size)); -``` - -The block above translates to the assembly code: - -```asm -0x180001025 mov qword [var_48h], 0x3f -0x18000102e lea rax, [var_50h] -0x180001033 mov qword [var_40h], rax -0x180001038 mov rsi, qword [var_40h] -0x18000103d mov rdi, qword [var_48h] -0x180001042 mov eax, 0x00014711 -0x180001047 cpuid -0x180001049 mov dword [var_9ch], eax -0x180001050 mov dword [var_98h], ebx -0x180001057 mov dword [var_94h], ecx -0x18000105e mov dword [var_90h], edx -0x180001065 mov qword [var_40h], rsi -0x18000106a mov qword [var_48h], rdi -0x18000106f mov qword [var_38h], 0 -``` - -We set `rsi` to the address of our buffer and `rdi` to the size of our buffer. Then, -we set `eax` to `0x00014711`. `0x0001` is the code the fuzzer recognizes indicating -this is a *start* harness (as opposed to a *stop* harness, or some other future type). -`0x4711` is the code SIMICS recognizes indicating this is a "magic" `cpuid`. Other -`cpuid` leaves will not trigger SIMICS' magic cpuid code. - -Finally, the actual `cpuid` instruction happens, which SIMICS recognizes and passes the -correct information to the fuzzer, which does its own startup at this point. - -Importantly for us, after this line the value of `size` will be modified to whatever -length the *current* fuzz input is (up to a maximum of the original `size` value), and -the contents of the buffer will be replaced with `size` bytes of fuzzer data. This -fuzzer data will be different each execution as the fuzzer tries different data to -achieve different feedback. - -In real world usage, we define macros for this operation and provide them in a -header file to avoid exposing this complexity to the user, but it is important to -understand how this works under the hood in case you need to customize this process. - -The final block below performs the same operation, but doesn't need any input or output -to or from the fuzzer because it simply signals the end of the fuzzing loop. When the -code reaches this point, the fuzzer will stop it and restore the snapshot at the start -with a new input. The only difference here is the magic value `0x2` instead of -`0x1` signifying a *stop* instead of a *start* harness. - -```c -__asm__ __volatile__("cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d) - : "0"((0x0002U << 16U) | 0x4711U)); -``` - -Finally, you probably noticed we added the code below: - -```c - if (*(char *)buffer == 'a') { - // Invalid opcode - __asm__(".byte 0x06"); - } else if (*(char *)buffer == 'b') { - // Crash - uint8_t *bad_ptr = (uint8_t *)0xffffffffffffffff; - *bad_ptr = 0; - } -``` - -This does exactly what it says, when the first character in the fuzzer input is 'a', an -invalid instruction will be executed, triggering an *invalid opcode* exception (x86_64 -exception #6). When the first character in the fuzzer input is 'b', the code will -dereference the address in `bad_ptr`, causing a crash! In our case, this will cause a -*page fault* (x86_64 exception code #14). You can find a list of supported faults linked -from the [API](./ModuleApi.md) page. - -## Compile the Harnessed Target - -Like before, we will compile our target: - -```sh -clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone \ - -O0 -c target-harnessed.c -o target-harnessed.o -lld-link -filealign:16 -subsystem:efi_application -nodefaultlib -dll -entry:UefiMain \ - target-harnessed.o -out:target-harnessed.efi -``` - -We end up with a `.efi` file containing our harnessed code. - -## Modify the SIMICS Script - -We need to make a couple small modifications to our SIMICS script. Create -a new script called `fuzz.simics`: - -```sh -cat < fuzz.simics -\$disk0_image = (lookup-file "%simics%/minimal_boot_disk.craff") -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -script-branch "UEFI Shell Enter Branch" { - local \$kbd = \$system.mb.sb.kbd - local \$con = \$system.console.con - local \$sercon = \$system.serconsole.con - - bp.time.wait-for seconds = 10 - - \$kbd.key-press ESC - bp.time.wait-for seconds = 3 - - foreach \$i in (range 2) { - \$kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - - \$kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - \$kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - - \$kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - \$kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - \$con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - # We are now in the UEFI shell, we'll download our EFI app - local \$manager = (start-agent-manager) - \$con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/target.efi") + "\n") - bp.time.wait-for seconds = .5 - - stop - - # Configure the fuzzer - @conf.tsffs_module.iface.tsffs_module.init() - @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) - # Page fault - @conf.tsffs_module.iface.tsffs_module.add_fault(14) - # Invalid opcode - @conf.tsffs_module.iface.tsffs_module.add_fault(6) - - $con.input "target.efi\n" - continue - -} -run -EOF -``` - -The only change we make is at the bottom of our script branch. Because the fuzzer must -run unattended, we need to "type in" the name of the EFI application to run, so we use -`$con.input`. Before that, we need to stop execution and set up the fuzzer module that -is loaded into SIMICS. The fuzzer module's API is documented on the -[API page](./ModuleApi.md). - -First, we call the `init` method. This tells the fuzzer to initialize itself at this -point and set up its internal state. - -Next, we provide the processor object of the first (and in this case only, as this test -is single-threaded) processor we are running, which informs the module that it should be -traced and listened to for faults. - -Finally, we inform the module that we want to treat exception #14 (page fault) as an -objective for this fuzzing campaign. The default is not to detect any exceptions as -objectives, so be sure to add a fault when you run the fuzzer. - -You should customize the set of faults you set for your fuzzing task. For example, not -all applications will consider a page fault an error condition if they have paging -enabled, but may consider a double fault a serious issue indicating a problem with -the page fault handler. - -## Create an Input Corpus - -We'll create an input corpus with just one file in it. If we do not provide an input -corpus, a random corpus will be generated for us, but this is not the recommended way -to run the fuzzer. - -```sh -mkdir -p input -echo "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" > input/1 -echo "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" > input/2 -echo "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" > input/3 -echo "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" > input/4 -``` - -This is obviously not an ideal corpus, but it - -## Fuzz the Harnessed Target - -If you aren't familiar with [`cargo`](https://doc.rust-lang.org/cargo/), it is the -Rust package manager and general utility tool for running and managing *crates*, which -is Rust's name for packages. We will use it to build and run our project. - -The easiest way to run this fuzzer is by passing `--manifest-path` to `cargo run`. This -lets us run the fuzzer from anywhere, but avoids the need to install it in your `PATH`. - -Your current directory should contain: - -- `target-harnessed.efi` -- `fuzz.simics` - -Before we run the fuzzer, let's take a look at its help output (replace -`/path/to/this/repository` with the actual path to this repo's root). Note that running -with the short `-h` flag will produce a shorter help message for quick reference -(replace `6.0.169` with your installed SIMICS base version). - -```sh -cargo run --manifest-path /path/to/this/repository/Cargo.toml --release \ - --features=6.0.169 -- \ - --help -``` - -As you will see in the output (too long to paste here), the `simics-fuzz` frontend -provides easy shortcuts to set up a new project with the packages and files we need, so -to start the fuzzer all we need to do is run the command below (replace -`/path/to/this/repository` with the actual path to this repo's root, `6.0.169` with your -installed SIMICS base version, and `6.0.70` with your installed SIMICS QSP version). - -```sh -cargo run --manifest-path /path/to/this/repository/Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./target-harnessed.efi:%simics%/target.efi" \ - --file "./fuzz.simics:%simics%/fuzz.simics" \ - --file "/path/to/this/repository/examples/harnessing-uefi/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' -``` - -The target software will start up and begin fuzzing. There is a fair amount of output, -but the key messages to keep an eye on are messages showing that processors are -correctly added for the module, detector, and tracer components: - -```text - 2023-07-20T22:45:26.689753Z INFO tsffs_module::module::components::detector: Detector added processor #0 - at tsffs_module/src/module/components/detector/mod.rs:162 - - 2023-07-20T22:45:26.689765Z INFO tsffs_module::module::components::tracer: Tracer added processor #0 - at tsffs_module/src/module/components/tracer/mod.rs:123 - - 2023-07-20T22:45:26.689772Z INFO tsffs_module::module: Added processor #0 - at tsffs_module/src/module/mod.rs:362 -``` - -As well as the message showing which faults have been added: - -```text - 2023-07-20T22:45:26.689868Z INFO tsffs_module::module::components::detector: Detector adding fault X86_64(Page) - at tsffs_module/src/module/components/detector/mod.rs:173 - - 2023-07-20T22:45:26.689958Z INFO tsffs_module::module::components::detector: Detector adding fault X86_64(InvalidOpcode) - at tsffs_module/src/module/components/detector/mod.rs:173 -``` - -The fuzzer will display an informational message every 15 seconds approximately (sooner -if an event occurs) that looks like this: - -```text - 2023-07-20T22:45:30.044546Z INFO simics_fuzz::fuzzer: [Testcase #1] (GLOBAL) run time: 0h-0m-15s, clients: 2, corpus: 3, objectives: 0, executions: 5, exec/sec: 3.250 - at simics-fuzz/src/fuzzer/mod.rs:565 on main ThreadId(1) - - 2023-07-20T22:45:30.044577Z INFO simics_fuzz::fuzzer: (CLIENT) corpus: 3, objectives: 0, executions: 5, exec/sec: 3.250, coverage: 583/131072 (0%) - at simics-fuzz/src/fuzzer/mod.rs:565 on main ThreadId(1) -``` - -This message displays executions, speed, coverage, corpus size, and objectives found. -After a minute or so, you should see the messages indicating that first, an exception -was seen (and it was a registered exception with `add_fault`) and second, a new -objective was picked up by the fuzzer. - -```text -2023-07-20T22:45:51.695252Z INFO tsffs_module::module::components::detector: Got exception with fault: X86_64(InvalidOpcode) - at tsffs_module/src/module/components/detector/mod.rs:223 - - 2023-07-20T22:45:51.695301Z INFO tsffs_module::module::components::detector: Got exception with fault: X86_64(InvalidOpcode) - at tsffs_module/src/module/components/detector/mod.rs:223 - - 2023-07-20T22:45:51.695567Z INFO simics_fuzz::fuzzer: Target crashed with fault X86_64(InvalidOpcode) - at simics-fuzz/src/fuzzer/mod.rs:439 on main ThreadId(1) - - 2023-07-20T22:45:51.702212Z INFO simics_fuzz::fuzzer: [Objective #1] (GLOBAL) run time: 0h-0m-37s, clients: 2, corpus: 5, objectives: 1, executions: 52, exec/sec: 2.242 - at simics-fuzz/src/fuzzer/mod.rs:565 on main ThreadId(1) -``` - -This will be accompanied by a new solution file in our solutions directory: - - -```sh -$ cat solutions/* -aCCCCCCCC% -``` - -And indeed, our found solution does have 'a' as the first character (which corresponds -with the invalid opcode crash we have). If we let the fuzzer continue, we will find -another solution that triggers the second crash. - -## Triage the Crash - -Now that we have some crashes in our `solutions` directory, we can triage the crash -using SIMICS' excellent debugging capabilities. To drop into the SIMICS command line -interface, at the point of the crash, add an argument `--repro solutions/SOLUTION_FILE` -to your command (replace `/path/to/this/repository` with the actual path to this repo's -root, `6.0.169` with your installed SIMICS base version, and `6.0.70` with your -installed SIMICS QSP version). - -```sh -cargo run --manifest-path /path/to/this/repository/Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.69 \ - --file "./target-harnessed.efi:%simics%/target-harnessed.efi" \ - --file "./fuzz.simics:%simics%/fuzz.simics" \ - --file "/path/to/this/repository/examples/harnessing-uefi/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' \ - --repro solutions/SOLUTION_FILE -``` - -The fuzzer will run with the single provided input until the fault, timeout, or SIMICS -error the fuzzer caught previously when running with this input occurs. Then, the fuzzer -will drop you into the standard SIMICS command line interface. - -```simics - 2023-07-21T20:14:52.840971Z INFO tsffs_module::module::components::detector: Got exception with fault: X86_64(InvalidOpcode) - at tsffs_module/src/module/components/detector/mod.rs:225 - - 2023-07-21T20:14:52.841090Z INFO tsffs_module::module: Entering repro mode, starting SIMICS CLI - at tsffs_module/src/module/mod.rs:214 - -simics> -``` - -From this point, you can use SIMICS as you normally would to debug the crash state. For -example, you can view the state of registers at the crash: - -```simics -simics> pregs -64-bit mode -Pending exception, vector 6 -rax = 0x0000000000000061 r8 = 0x0000000000000000 -rcx = 0x0000000000000000 r9 = 0x0000000000000260 -rdx = 0x0000000000000012 r10 = 0x00000000f016d1c0 -rbx = 0x00000000df321b18 r11 = 0x0000000000000020 -rsp = 0x00000000df3218d0 r12 = 0x0000000000000000 -rbp = 0x00000000df321b08 r13 = 0x00000000dda2b918 -rsi = 0x00000000df321920 r14 = 0x00000000dd7d2cd0 -rdi = 0x0000000000000009 r15 = 0x00000000dd838bc8 - -rip = 0x00000001800011c0 - -eflags = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 = 0x00000246 - I V V A V R - N I I O D I T S Z - A - P - C - D I I C M F T O O F F F F F F F F F - P F P P - L L -``` - -Since this is exception #6, invalid opcode, we might want to examine memory at the -instruction pointer to determine why we are executing an invalid instruction: - -```simics -simics> x %rip -ds:0x00000001800011c0 06e9 2700 0000 0fbe 4424 5083 f862 0f85 ..'.....D$P..b.. -``` - -If we were really debugging, we would have found the problem: `0x06` isn't a valid -x86_64 instruction! - -One key option that is available in addition to normal SIMICS commands is reverse -execution and restoring to the initial snapshot (which was taken for you by the fuzzer). -The bookmark created by the fuzzer just after writing the testcase into memory is called -`start`. - -```simics -simics> list-bookmarks - name cycles ------------------------------------------------------- - start 75187942584 - 75188460742 ------------------------------------------------------- -``` - -We can restore the bookmark by running: - -```simics -simics> reverse-to start -[board.mb.cpu0.core[0][0]] cs:0x0000000180001047 p:0x180001047 cpuid -``` - -From this point, we can continue to view registers, step instructions forward, modify -memory, step *backward* (because we have reverse execution enabled), etc. You -can find complete documentation for SIMICS including all of its powerful debugging tools -in the documentation by running `./documentation` in the SIMICS project we created in -`./project`. diff --git a/docs/UpdateBindings.md b/docs/UpdateBindings.md deleted file mode 100644 index 3d47c5a6..00000000 --- a/docs/UpdateBindings.md +++ /dev/null @@ -1,11 +0,0 @@ -# Updating Bindings - -Unless you are a developer of the fuzzer, you should't need to go through this -procedure. You are welcome to, however, if you beat the maintainers on the draw for new -SIMICS version releases. - -To update bindings, first run `update-bindings.rs` according to the -[README](../simics-api-sys/scripts/README.md). - -Next, add and/or update the version for SIMICS base (package 1000), QSP, and QSP-X86 -in all locations they occur. `rg` or `grep` is helpful. \ No newline at end of file diff --git a/docs/book.toml b/docs/book.toml new file mode 100644 index 00000000..6f6cdf27 --- /dev/null +++ b/docs/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["novafacing"] +language = "en" +multilingual = false +src = "src" +title = "TSFFS: Target Software Fuzzer for SIMICS" diff --git a/docs/images/DEBUGGING_FUZZER_Run_and_Debug.png b/docs/images/DEBUGGING_FUZZER_Run_and_Debug.png deleted file mode 100644 index ad45c23a..00000000 Binary files a/docs/images/DEBUGGING_FUZZER_Run_and_Debug.png and /dev/null differ diff --git a/docs/images/HARNESSING_UEFI_SIMPLE_Run_Target.png b/docs/images/HARNESSING_UEFI_SIMPLE_Run_Target.png deleted file mode 100644 index 9ecdea10..00000000 Binary files a/docs/images/HARNESSING_UEFI_SIMPLE_Run_Target.png and /dev/null differ diff --git a/docs/images/HARNESSING_UEFI_SIMPLE_Run_Target_Post.png b/docs/images/HARNESSING_UEFI_SIMPLE_Run_Target_Post.png deleted file mode 100644 index cc74d9c5..00000000 Binary files a/docs/images/HARNESSING_UEFI_SIMPLE_Run_Target_Post.png and /dev/null differ diff --git a/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_Post.png b/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_Post.png deleted file mode 100644 index e353f238..00000000 Binary files a/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_Post.png and /dev/null differ diff --git a/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_Pre.png b/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_Pre.png deleted file mode 100644 index 64668964..00000000 Binary files a/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_Pre.png and /dev/null differ diff --git a/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png b/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png deleted file mode 100644 index 7ef22653..00000000 Binary files a/docs/images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png and /dev/null differ diff --git a/docs/images/SETUP_Install_Finished.png b/docs/images/SETUP_Install_Finished.png deleted file mode 100644 index 516dc339..00000000 Binary files a/docs/images/SETUP_Install_Finished.png and /dev/null differ diff --git a/docs/images/SETUP_Install_Only.png b/docs/images/SETUP_Install_Only.png deleted file mode 100644 index 56eff277..00000000 Binary files a/docs/images/SETUP_Install_Only.png and /dev/null differ diff --git a/docs/images/SETUP_Install_Proceed.png b/docs/images/SETUP_Install_Proceed.png deleted file mode 100644 index e57a1c0d..00000000 Binary files a/docs/images/SETUP_Install_Proceed.png and /dev/null differ diff --git a/docs/images/SETUP_Select_Install_Directory.png b/docs/images/SETUP_Select_Install_Directory.png deleted file mode 100644 index e752a467..00000000 Binary files a/docs/images/SETUP_Select_Install_Directory.png and /dev/null differ diff --git a/docs/images/demo.cast b/docs/images/demo.cast new file mode 100644 index 00000000..bea258bf --- /dev/null +++ b/docs/images/demo.cast @@ -0,0 +1,33364 @@ +{"version": 2, "width": 152, "height": 42, "timestamp": 1699241188, "env": {"SHELL": "/usr/bin/zsh", "TERM": "xterm"}} +[0.177938, "o", "\u001b[?25l\u001b[?7l"] +[0.1795, "o", "\u001b[38;5;12m\u001b[1m .',;::::;,'.\r\n .';:cccccccccccc:;,.\r\n .;cccccccccccccccccccccc;.\r\n .:cccccccccccccccccccccccccc:.\r\n .;ccccccccccccc;\u001b[37m\u001b[0m\u001b[1m.:dddl:.\u001b[38;5;12m\u001b[1m;ccccccc;.\r\n .:ccccccccccccc;\u001b[37m\u001b[0m\u001b[1mOWMKOOXMWd\u001b[38;5;12m\u001b[1m;ccccccc:.\r\n.:ccccccccccccc;\u001b[37m\u001b[0m\u001b[1mKMMc\u001b[38;5;12m\u001b[1m;cc;\u001b[37m\u001b[0m\u001b[1mxMMc\u001b[38;5;12m\u001b[1m:ccccccc:.\r\n,cccccccccccccc;\u001b[37m\u001b[0m\u001b[1mMMM.\u001b[38;5;12m\u001b[1m;cc;\u001b[37m\u001b[0m\u001b[1m;WW:\u001b[38;5;12m\u001b[1m:cccccccc,\r\n:cccccccccccccc;\u001b[37m\u001b[0m\u001b[1mMMM.\u001b[38;5;12m\u001b[1m;cccccccccccccccc:\r\n:ccccccc;\u001b[37m\u001b[0m\u001b[1moxOOOo\u001b[38;5;12m\u001b[1m;\u001b[37m\u001b[0m\u001b[1mMMM0OOk.\u001b[38;5;12m\u001b[1m;cccccccccccc:\r\ncccccc:\u001b[37m\u001b[0m\u001b[1m0MMKxdd:\u001b[38;5;12m\u001b[1m;\u001b[37m\u001b[0m\u001b[1mMMMkddc.\u001b[38;5;12m\u001b[1m;cccccccccccc;\r\nccccc:\u001b[37m\u001b[0m\u001b[1mXM0'\u001b[38;5;12m\u001b[1m;cccc;\u001b[37m\u001b[0m\u001b[1mMMM.\u001b[38;5;12m\u001b[1m;cccccccccccccccc'\r\nccccc;\u001b[37m\u001b[0m\u001b[1mMMo\u001b[38;5;12m\u001b[1m;ccccc;\u001b[37m\u001b[0m\u001b[1mMMW.\u001b[38;5;12m\u001b[1m;ccccccccccccccc;\r\nccccc;\u001b[37m\u001b[0m\u001b[1m0MNc.\u001b[38;5;12m\u001b[1mccc\u001b[37m\u001b[0m\u001b[1m.xMMd\u001b[38;5;12m\u001b[1m:ccccccccccccccc;\r\ncccccc;\u001b[37m\u001b[0m\u001b[1mdNMWXXXWM0:\u001b[38;5;12m\u001b[1m:cccccccccccccc:,\r\ncccccccc;\u001b[37m\u001b[0m\u001b[1m.:odl:.\u001b[38;5;12m\u001b[1m;cccccccccccccc:,.\r\n:cccccccccccccccccccccccccccc:'.\r\n.:cccccccccccccccccccccc:;,..\r\n '::cccccccccccccc::;,.\u001b[0m\r\n\u001b[19A\u001b[9999999D"] +[0.184079, "o", "\u001b[41C\u001b[0m\u001b[1m\u001b[38;5;12m\u001b[1mrhart\u001b[0m@\u001b[38;5;12m\u001b[1mrhart-desk\u001b[0m \r\n"] +[0.184202, "o", "\u001b[41C\u001b[0m----------------\u001b[0m \r\n"] +[0.188808, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mOS\u001b[0m\u001b[0m:\u001b[0m Fedora Linux 38 (Sway) x86_64\u001b[0m \r\n"] +[0.194815, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mHost\u001b[0m\u001b[0m:\u001b[0m MS-7D99 1.0\u001b[0m \r\n"] +[0.20043, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mKernel\u001b[0m\u001b[0m:\u001b[0m 6.5.5-200.fc38.x86_64\u001b[0m \r\n"] +[0.205961, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mUptime\u001b[0m\u001b[0m:\u001b[0m 6 days, 4 hours, 40 mins\u001b[0m \r\n"] +[0.568355, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mPackages\u001b[0m\u001b[0m:\u001b[0m 2046 (rpm), 5 (flatpak)\u001b[0m \r\n"] +[0.570484, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mShell\u001b[0m\u001b[0m:\u001b[0m zsh 5.9\u001b[0m \r\n"] +[0.57192, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mResolution\u001b[0m\u001b[0m:\u001b[0m 3840x2160\u001b[0m \r\n"] +[0.583569, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mWM\u001b[0m\u001b[0m:\u001b[0m sway\u001b[0m \r\n"] +[0.589492, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mTheme\u001b[0m\u001b[0m:\u001b[0m Adwaita [GTK3]\u001b[0m \r\n"] +[0.594262, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mIcons\u001b[0m\u001b[0m:\u001b[0m Adwaita [GTK3]\u001b[0m \r\n"] +[0.599439, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mTerminal\u001b[0m\u001b[0m:\u001b[0m asciinema\u001b[0m \r\n"] +[0.611965, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mCPU\u001b[0m\u001b[0m:\u001b[0m 13th Gen Intel i9-13900 (32) @ 5.300GHz\u001b[0m \r\n"] +[0.634015, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mGPU\u001b[0m\u001b[0m:\u001b[0m Intel Raptor Lake-S GT1 [UHD Graphics 770]\u001b[0m \r\n"] +[0.641805, "o", "\u001b[41C\u001b[38;5;12m\u001b[1mMemory\u001b[0m\u001b[0m:\u001b[0m 23784MiB / 128573MiB\u001b[0m \r\n"] +[0.64275, "o", "\r\n\u001b[41C\u001b[30m\u001b[40m \u001b[31m\u001b[41m \u001b[32m\u001b[42m \u001b[33m\u001b[43m \u001b[34m\u001b[44m \u001b[35m\u001b[45m \u001b[36m\u001b[46m \u001b[37m\u001b[47m \u001b[m\r\n\u001b[41C\u001b[38;5;8m\u001b[48;5;8m \u001b[38;5;9m\u001b[48;5;9m \u001b[38;5;10m\u001b[48;5;10m \u001b[38;5;11m\u001b[48;5;11m \u001b[38;5;12m\u001b[48;5;12m \u001b[38;5;13m\u001b[48;5;13m \u001b[38;5;14m\u001b[48;5;14m \u001b[38;5;15m\u001b[48;5;15m \u001b[m\r\n\r\n"] +[0.643119, "o", "\r\n"] +[0.645767, "o", "\u001b[?25h\u001b[?7h"] +[0.703531, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\u001b]2;rhart@rhart-desk:~/hub/tsffs\u0007\u001b]1;~/hub/tsffs\u0007"] +[0.70434, "o", "\u001b]7;file://rhart-desk/home/rhart/hub/tsffs\u001b\\"] +[0.724232, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;2;90;82;76m╭─\u001b[0m\u001b[38;2;137;180;130m\u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40m \u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40mtsffs\u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40m \u001b[0m\u001b[48;2;124;111;100;38;2;137;180;130m\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m on \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161msimics-package\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m?\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;216;166;87m \u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m \u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m19:26:29\u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m \u001b[0m\u001b[48;2;80;73;69;38;2;124;111;100m\u001b[0m\u001b[48;2;80;73;69mrhart\u001b[0m\u001b[48;2;80;73;69m@\u001b[0m\u001b[48;2;80;73;69mrhart-desk\u001b[0m\u001b[48;2;40;40;40;38;2;80;73;69m\u001b[0m\u001b[48;2;40;40;40m \u001b[0m\u001b[48;2;40;40;40m0\u001b[0m\u001b[48;2;40;40;40m \u001b[0m\u001b[48;2;40;40;40;38;2;137;180;130m\u001b[0m\u001b[38;2;40;40;40m\u001b[0m\u001b[38;2;70;65;62m···················································································\u001b[0m\r\n\u001b[38;2;90;82;76m╰─ϕ \u001b[0m\u001b[K"] +[0.724323, "o", "\u001b[?1h\u001b=\u001b[?2004h"] +[2.320487, "o", "c"] +[2.485733, "o", "\bcl"] +[2.585712, "o", "e"] +[2.692658, "o", "a"] +[2.787634, "o", "r"] +[2.96079, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"] +[2.961847, "o", "\u001b]2;clear\u0007\u001b]1;clear\u0007"] +[2.993017, "o", "\u001b[H\u001b[2J\u001b[3J"] +[2.993237, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"] +[2.993389, "o", "\u001b]2;rhart@rhart-desk:~/hub/tsffs\u0007\u001b]1;~/hub/tsffs\u0007"] +[2.997823, "o", "\u001b]7;file://rhart-desk/home/rhart/hub/tsffs\u001b\\"] +[3.028587, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;2;90;82;76m╭─\u001b[0m\u001b[38;2;137;180;130m\u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40m \u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40mtsffs\u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40m \u001b[0m\u001b[48;2;124;111;100;38;2;137;180;130m\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m on \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161msimics-package\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m?\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;216;166;87m \u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m \u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m19:26:31\u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m \u001b[0m\u001b[48;2;80;73;69;38;2;124;111;100m\u001b[0m\u001b[48;2;80;73;69mrhart\u001b[0m\u001b[48;2;80;73;69m@\u001b[0m\u001b[48;2;80;73;69mrhart-desk\u001b[0m\u001b[48;2;40;40;40;38;2;80;73;69m\u001b[0m\u001b[48;2;40;40;40m \u001b[0m\u001b[48;2;40;40;40m0\u001b[0m\u001b[48;2;40;40;40m \u001b[0m\u001b[48;2;40;40;40;38;2;137;180;130m\u001b[0m\u001b[38;2;40;40;40m\u001b[0m\u001b[38;2;70;65;62m···················································································\u001b[0m\r\n\u001b[38;2;90;82;76m╰─ϕ \u001b[0m\u001b[K"] +[3.028672, "o", "\u001b[?1h\u001b=\u001b[?2004h"] +[3.629235, "o", "d"] +[3.708885, "o", "\bdo"] +[3.815746, "o", "c"] +[3.915952, "o", "k"] +[4.010828, "o", "e"] +[4.178018, "o", "r"] +[4.285924, "o", " "] +[4.383453, "o", "r"] +[4.508853, "o", "u"] +[4.703016, "o", "n"] +[4.791946, "o", " "] +[4.934972, "o", "-"] +[5.152101, "o", "i"] +[5.257965, "o", "t"] +[5.310221, "o", " "] +[5.508031, "o", "t"] +[5.664181, "o", "s"] +[5.826097, "o", "f"] +[6.015939, "o", "f"] +[6.175898, "o", "s"] +[6.375889, "o", "-"] +[6.525942, "o", "d"] +[6.70603, "o", "e"] +[6.756232, "o", "m"] +[6.881054, "o", "o"] +[7.23122, "o", "\u001b[?1l\u001b>\u001b[?2004l\r\r\n"] +[7.232145, "o", "\u001b]2;docker run -it tsffs-demo\u0007\u001b]1;docker\u0007"] +[7.504609, "o", "\u001b]0;@efdf71a01882:/workspace/tsffs\u0007\u001b[?2004h[root@efdf71a01882 tsffs]# "] +[8.384703, "o", "l"] +[8.438542, "o", "s"] +[8.554396, "o", "\r\n\u001b[?2004l\r"] +[8.561059, "o", "CITATION.cff Cargo.lock GNUmakefile README.md compiler.mk demo.cast \u001b[0m\u001b[01;34mdocs\u001b[0m \u001b[01;34mharness\u001b[0m \u001b[01;32msimics\u001b[0m \u001b[01;32msimics-old\u001b[0m\r\nCODE_OF_CONDUCT.md Cargo.toml GNUmakefile-doc SECURITY.md \u001b[01;34mconfig\u001b[0m \u001b[01;34mdoc\u001b[0m \u001b[01;32mdocumentation\u001b[0m \u001b[01;34mmodules\u001b[0m \u001b[01;32msimics-eclipse\u001b[0m srcs.json\r\nCONTRIBUTING.md Dockerfile-demo LICENSE \u001b[01;32mbuild.rs\u001b[0m config-user.mk \u001b[01;34mdoc-src\u001b[0m \u001b[01;34mexamples\u001b[0m \u001b[01;34mscripts\u001b[0m \u001b[01;32msimics-gui\u001b[0m \u001b[01;34mtargets\u001b[0m\r\n"] +[8.561435, "o", "\u001b]0;@efdf71a01882:/workspace/tsffs\u0007\u001b[?2004h[root@efdf71a01882 tsffs]# "] +[9.422077, "o", "l"] +[9.507489, "o", "s"] +[9.580575, "o", " "] +[10.244492, "o", "/"] +[10.476543, "o", "w"] +[10.573273, "o", "o"] +[10.673374, "o", "r"] +[10.775275, "o", "k"] +[10.918164, "o", "space/"] +[11.917566, "o", "s"] +[12.019555, "o", "i"] +[12.16649, "o", "mics/"] +[14.479518, "o", "\r\n\u001b[?2004l\r"] +[14.48414, "o", "\u001b[0m\u001b[01;34mispm\u001b[0m \u001b[01;34msimics-crypto-engine-6.0.4\u001b[0m \u001b[01;34msimics-oss-sources-6.0.53\u001b[0m \u001b[01;34msimics-qsp-cpu-6.0.17\u001b[0m \u001b[01;34msimics-risc-v-cpu-6.0.57\u001b[0m \u001b[01;34msimics-viewer-6.0.17\u001b[0m\r\n\u001b[01;34mmanifests\u001b[0m \u001b[01;34msimics-docea-base-6.0.30\u001b[0m \u001b[01;34msimics-pkg-mgr-tmp-root\u001b[0m \u001b[01;34msimics-qsp-isim-6.0.pre6\u001b[0m \u001b[01;34msimics-risc-v-simple-6.0.4\u001b[0m\r\n\u001b[01;34msimics-6.0.169\u001b[0m \u001b[01;34msimics-gdb-6.0.3\u001b[0m \u001b[01;34msimics-qsp-clear-linux-6.0.14\u001b[0m \u001b[01;34msimics-qsp-x86-6.0.70\u001b[0m \u001b[01;34msimics-training-6.0.pre32\u001b[0m\r\n"] +[14.484609, "o", "\u001b]0;@efdf71a01882:/workspace/tsffs\u0007\u001b[?2004h[root@efdf71a01882 tsffs]# "] +[18.721281, "o", "i"] +[18.837279, "o", "s"] +[18.932621, "o", "p"] +[19.112344, "o", "m"] +[19.216162, "o", " "] +[19.468087, "o", "p"] +[19.611331, "o", "r"] +[19.68542, "o", "o"] +[19.861769, "o", "j"] +[19.936111, "o", "e"] +[20.154862, "o", "c"] +[20.329514, "o", "t"] +[20.529638, "o", "s"] +[21.634631, "o", " "] +[22.485915, "o", "/"] +[22.905682, "o", "w"] +[23.055523, "o", "o"] +[23.155733, "o", "r"] +[23.257388, "o", "k"] +[23.36148, "o", "s"] +[23.549474, "o", "p"] +[23.655848, "o", "a"] +[23.857604, "o", "c"] +[24.054584, "o", "e"] +[24.154578, "o", "/"] +[24.410576, "o", "t"] +[24.604691, "o", "s"] +[24.760427, "o", "f"] +[24.953339, "o", "f"] +[25.097629, "o", "s"] +[25.827611, "o", "/"] +[25.996677, "o", " "] +[26.208859, "o", "-"] +[26.377719, "o", "-"] +[26.460673, "o", "c"] +[26.633782, "o", "r"] +[26.685637, "o", "e"] +[26.776525, "o", "a"] +[26.901746, "o", "t"] +[27.051362, "o", "e"] +[27.176747, "o", " "] +[27.355749, "o", "-"] +[27.529802, "o", "-"] +[27.768669, "o", "i"] +[27.898799, "o", "g"] +[28.022563, "o", "n"] +[28.176282, "o", "o"] +[28.255407, "o", "r"] +[28.346267, "o", "e"] +[28.49562, "o", "-"] +[28.614246, "o", "e"] +[28.819808, "o", "x"] +[28.950689, "o", "i"] +[29.062476, "o", "s"] +[29.24238, "o", "t"] +[29.348597, "o", "i"] +[29.491384, "o", "n"] +[29.600459, "o", "g"] +[29.734558, "o", "-"] +[29.867422, "o", "f"] +[29.994464, "o", "i"] +[30.166631, "o", "l"] +[30.238591, "o", "e"] +[30.41269, "o", "s"] +[30.512623, "o", " "] +[30.705627, "o", "-"] +[30.865574, "o", "-"] +[31.0857, "o", "n"] +[31.25369, "o", "o"] +[31.433675, "o", "n"] +[31.6576, "o", "-"] +[31.865579, "o", "i"] +[32.025522, "o", "n"] +[32.105709, "o", "t"] +[32.214747, "o", "e"] +[32.359602, "o", "r"] +[32.48173, "o", "a"] +[32.703386, "o", "c"] +[32.897617, "o", "t"] +[32.99873, "o", "i"] +[33.102781, "o", "v"] +[33.276541, "o", "e"] +[33.445549, "o", "\r\n\u001b[?2004l\r"] +[33.550346, "o", "Will create project in directory /workspace/tsffs/ with all installed packages from /workspace/simics\r\n"] +[34.129868, "o", "tsffs created successfully\r\n"] +[34.329816, "o", "\u001b]0;@efdf71a01882:/workspace/tsffs\u0007\u001b[?2004h[root@efdf71a01882 tsffs]# "] +[36.235783, "o", "."] +[36.416743, "o", "/"] +[36.53521, "o", "b"] +[36.610798, "o", "u"] +[36.784606, "o", "i"] +[36.924242, "o", "l"] +[37.09013, "o", "d"] +[37.36668, "o", "."] +[37.473635, "o", "r"] +[37.639763, "o", "s"] +[38.706544, "o", " "] +[38.980712, "o", "#"] +[39.086667, "o", " "] +[39.320745, "o", "B"] +[39.413864, "o", "u"] +[39.592834, "o", "i"] +[39.755698, "o", "l"] +[39.865849, "o", "d"] +[39.935212, "o", " "] +[40.878756, "o", "T"] +[41.053638, "o", "S"] +[41.218616, "o", "F"] +[41.384861, "o", "F"] +[41.561781, "o", "S"] +[42.78457, "o", " "] +[42.984832, "o", "m"] +[43.131661, "o", "o"] +[43.276855, "o", "d"] +[43.334731, "o", "u"] +[43.506775, "o", "l"] +[43.581708, "o", "e"] +[43.950341, "o", "/"] +[44.236785, "o", "p"] +[44.313799, "o", "a"] +[44.484988, "o", "c"] +[44.580816, "o", "k"] +[44.653803, "o", "a"] +[44.759795, "o", "g"] +[44.927392, "o", "e"] +[45.080994, "o", "\r\n\u001b[?2004l\r"] +[45.114923, "o", "\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m:\u001b[0m `package.edition` is unspecified, defaulting to `2021`\r\n"] +[45.139871, "o", "\u001b[1m\u001b[32m Updating\u001b[0m crates.io index\r\n"] +[45.653504, "o", "\u001b[1m\u001b[36m Fetch\u001b[0m [==========================> ] 23 complete; 2 pending \r"] +[45.661475, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 1 crate \r\u001b[1m\u001b[36m Downloading\u001b[0m 2 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 3 crates \r"] +[45.661743, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 4 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 5 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 6 crates \r"] +[45.661947, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 7 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 8 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 9 crates \r"] +[45.66216, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 10 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 11 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 12 crates \r"] +[45.662466, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 13 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 14 crates \r"] +[45.662688, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 15 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 16 crates \r"] +[45.662825, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 17 crates \r"] +[45.663148, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 18 crates \r\u001b[1m\u001b[36m Downloading\u001b[0m 19 crates \r"] +[45.663335, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 20 crates \r"] +[46.128402, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 20 crates, remaining bytes: 58.4 KB \r"] +[46.134404, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m unicode-ident v1.0.12\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 19 crates, remaining bytes: 23.0 KB \r"] +[46.155085, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m ryu v1.0.15\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 18 crates, remaining bytes: 30.5 KB \r"] +[46.163146, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m quote v1.0.33\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 17 crates, remaining bytes: 77.9 KB \r"] +[46.169141, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m same-file v1.0.6\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 16 crates, remaining bytes: 62.4 KB \r"] +[46.172001, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m camino v1.1.6\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 15 crates, remaining bytes: 62.4 KB \r"] +[46.176778, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m itoa v1.0.9\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 14 crates \r"] +[46.179287, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m semver v1.0.20\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 13 crates \r"] +[46.180343, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m anyhow v1.0.75\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 12 crates \r"] +[46.183588, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m thiserror-impl v1.0.50\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 11 crates, remaining bytes: 189.1 KB \r"] +[46.18961, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m serde v1.0.190\r\n"] +[46.189634, "o", "\u001b[1m\u001b[36m Downloading\u001b[0m 10 crates, remaining bytes: 138.2 KB \r"] +[46.197341, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m cargo-platform v0.1.4\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 9 crates, remaining bytes: 511.4 KB \r"] +[46.200415, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m typed-builder-macro v0.18.0\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 8 crates, remaining bytes: 462.3 KB \r"] +[46.202822, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m walkdir v2.4.0\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 7 crates, remaining bytes: 429.5 KB \r"] +[46.206222, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m serde_derive v1.0.190\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 6 crates, remaining bytes: 249.5 KB \r"] +[46.209334, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m proc-macro2 v1.0.69\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 5 crates, remaining bytes: 219.2 KB \r"] +[46.211462, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m thiserror v1.0.50\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 4 crates, remaining bytes: 170.1 KB \r"] +[46.21433, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m typed-builder v0.18.0\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 3 crates, remaining bytes: 170.1 KB \r"] +[46.21526, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m cargo_metadata v0.18.1\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 2 crates, remaining bytes: 170.1 KB \r"] +[46.21772, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m serde_json v1.0.108\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 1 crate, remaining bytes: 104.6 KB \r"] +[46.221837, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m syn v2.0.39\r\n\u001b[1m\u001b[36m Downloading\u001b[0m 0 crates \r"] +[46.227341, "o", "\u001b[K\u001b[1m\u001b[32m Downloaded\u001b[0m 20 crates (940.3 KB) in 0.56s\r\n"] +[46.236143, "o", "\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro2 v1.0.69\r\n\u001b[1m\u001b[32m Compiling\u001b[0m unicode-ident v1.0.12\r\n\u001b[1m\u001b[32m Compiling\u001b[0m serde v1.0.190\r\n\u001b[1m\u001b[32m Compiling\u001b[0m thiserror v1.0.50\r\n\u001b[1m\u001b[32m Compiling\u001b[0m serde_json v1.0.108\r\n\u001b[1m\u001b[32m Compiling\u001b[0m camino v1.1.6\r\n"] +[46.236243, "o", "\u001b[1m\u001b[32m Compiling\u001b[0m semver v1.0.20\r\n\u001b[1m\u001b[32m Compiling\u001b[0m anyhow v1.0.75\r\n"] +[46.237063, "o", "\u001b[1m\u001b[32m Compiling\u001b[0m ryu v1.0.15\r\n"] +[46.237848, "o", "\u001b[1m\u001b[32m Compiling\u001b[0m itoa v1.0.9\r\n"] +[46.238002, "o", "\u001b[1m\u001b[32m Compiling\u001b[0m same-file v1.0.6\r\n"] +[46.239728, "o", "\u001b[1m\u001b[36m Building\u001b[0m [ ] 0/36: same-file, proc-macro2(build.rs), serde(build.rs), camino(build.rs), serde_json(build.rs), semver...\r"] +[46.263819, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m walkdir v2.4.0\r\n\u001b[1m\u001b[36m Building\u001b[0m [ ] 0/36: same-file, proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build.rs...\r"] +[46.278439, "o", "\u001b[1m\u001b[36m Building\u001b[0m [ ] 1/36: same-file, proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build.rs...\r"] +[46.281456, "o", "\u001b[1m\u001b[36m Building\u001b[0m [> ] 2/36: proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build.rs), semver(b...\r"] +[46.289849, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=> ] 3/36: proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build.rs), semver(b...\r"] +[46.313494, "o", "\u001b[1m\u001b[36m Building\u001b[0m [==> ] 4/36: proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build.rs), semver(b...\r"] +[46.373326, "o", "\u001b[1m\u001b[36m Building\u001b[0m [==> ] 5/36: proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build.rs), semver(b...\r\u001b[1m\u001b[36m Building\u001b[0m [===> ] 6/36: proc-macro2(build.rs), serde(build.rs), camino(build.rs), walkdir, serde_json(build), semver(buil...\r"] +[46.374676, "o", "\u001b[1m\u001b[36m Building\u001b[0m [====> ] 7/36: proc-macro2(build.rs), semver(build), serde(build.rs), camino(build.rs), walkdir, serde_json(buil...\r"] +[46.37536, "o", "\u001b[1m\u001b[36m Building\u001b[0m [======> ] 9/36: proc-macro2(build.rs), semver(build), serde(build.rs), camino(build), walkdir, thiserror(build), ...\r"] +[46.380697, "o", "\u001b[1m\u001b[36m Building\u001b[0m [======> ] 10/36: proc-macro2(build.rs), semver(build), serde(build.rs), camino(build), walkdir, anyhow(build), thi...\r\u001b[1m\u001b[36m Building\u001b[0m [=======> ] 11/36: proc-macro2(build.rs), semver(build), camino(build), walkdir, anyhow(build), thiserror(build), se...\r"] +[46.381898, "o", "\u001b[1m\u001b[36m Building\u001b[0m [========> ] 13/36: semver(build), proc-macro2(build), walkdir, anyhow(build), thiserror(build), serde(build) \r"] +[46.382963, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=========> ] 14/36: proc-macro2(build), walkdir, anyhow(build), thiserror(build), serde(build) \r"] +[46.391777, "o", "\u001b[1m\u001b[36m Building\u001b[0m [==========> ] 15/36: proc-macro2(build), walkdir, anyhow(build), thiserror(build) \r\u001b[1m\u001b[36m Building\u001b[0m [===========> ] 16/36: proc-macro2, walkdir, anyhow(build), thiserror(build) \r"] +[46.394307, "o", "\u001b[1m\u001b[36m Building\u001b[0m [===========> ] 17/36: proc-macro2, walkdir, anyhow(build) \r"] +[46.406712, "o", "\u001b[1m\u001b[36m Building\u001b[0m [============> ] 18/36: anyhow, proc-macro2, walkdir \r"] +[46.412277, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=============> ] 19/36: anyhow, proc-macro2 \r"] +[46.508787, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m quote v1.0.33\r\n\u001b[1m\u001b[36m Building\u001b[0m [=============> ] 19/36: anyhow, proc-macro2, quote \r"] +[46.513246, "o", "\u001b[1m\u001b[36m Building\u001b[0m [==============> ] 20/36: proc-macro2, quote \r"] +[46.547827, "o", "\u001b[1m\u001b[36m Building\u001b[0m [==============> ] 21/36: quote \r"] +[46.55959, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m syn v2.0.39\r\n\u001b[1m\u001b[36m Building\u001b[0m [==============> ] 21/36: syn, quote \r"] +[46.58597, "o", "\u001b[1m\u001b[36m Building\u001b[0m [===============> ] 22/36: syn \r"] +[47.548432, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m serde_derive v1.0.190\r\n\u001b[1m\u001b[36m Building\u001b[0m [================> ] 23/36: serde_derive \r\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m thiserror-impl v1.0.50\r\n\u001b[1m\u001b[32m Compiling\u001b[0m typed-builder-macro v0.18.0\r\n\u001b[1m\u001b[36m Building\u001b[0m [================> ] 23/36: typed-builder-macro, thiserror-impl, serde_derive \r"] +[47.942369, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=================> ] 24/36: typed-builder-macro, serde_derive, thiserror \r"] +[47.955414, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m command-ext v0.1.0 (/workspace/tsffs/modules/tsffs/src/util/command-ext)\r\n\u001b[1m\u001b[36m Building\u001b[0m [=================> ] 24/36: typed-builder-macro, serde_derive, command-ext, thiserror \r"] +[47.960045, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=================> ] 25/36: typed-builder-macro, serde_derive, command-ext \r"] +[47.986328, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m typed-builder v0.18.0\r\n\u001b[1m\u001b[36m Building\u001b[0m [==================> ] 26/36: serde_derive, command-ext, typed-builder \r"] +[47.998246, "o", "\u001b[1m\u001b[36m Building\u001b[0m [===================> ] 27/36: serde_derive, typed-builder \r"] +[47.998645, "o", "\u001b[1m\u001b[36m Building\u001b[0m [====================> ] 28/36: serde_derive \r"] +[48.49686, "o", "\u001b[1m\u001b[36m Building\u001b[0m [====================> ] 29/36: serde \r"] +[49.262161, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m cargo-platform v0.1.4\r\n\u001b[1m\u001b[36m Building\u001b[0m [====================> ] 29/36: cargo-platform, serde, camino, semver, serde_json \r"] +[49.308412, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=====================> ] 30/36: cargo-platform, camino, semver, serde_json \r"] +[49.340777, "o", "\u001b[1m\u001b[36m Building\u001b[0m [======================> ] 31/36: camino, semver, serde_json \r"] +[49.365741, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=======================> ] 32/36: camino, serde_json \r"] +[49.396286, "o", "\u001b[1m\u001b[36m Building\u001b[0m [=======================> ] 33/36: serde_json \r"] +[49.52466, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m cargo_metadata v0.18.1\r\n\u001b[1m\u001b[36m Building\u001b[0m [=======================> ] 33/36: cargo_metadata, serde_json \r"] +[49.605017, "o", "\u001b[1m\u001b[36m Building\u001b[0m [========================> ] 34/36: cargo_metadata \r"] +[49.947211, "o", "\u001b[K\u001b[1m\u001b[32m Compiling\u001b[0m build- v0.0.0 (/workspace/tsffs)\r\n\u001b[1m\u001b[36m Building\u001b[0m [=========================> ] 35/36: build-(bin) \r"] +[50.322654, "o", "\u001b[K\u001b[1m\u001b[32m Finished\u001b[0m dev [unoptimized + debuginfo] target(s) in 5.22s\r\n"] +[50.327491, "o", "\u001b[1m\u001b[32m Running\u001b[0m `/root/.cargo/target/08/b9e3fa8adae7a1/debug/build-`\r\n"] +[107.964738, "o", "\u001b]0;@efdf71a01882:/workspace/tsffs\u0007\u001b[?2004h[root@efdf71a01882 tsffs]# "] +[112.965174, "o", "i"] +[113.070946, "o", "s"] +[113.24272, "o", "p"] +[113.555779, "o", "m"] +[113.692777, "o", " "] +[114.33897, "o", "p"] +[114.40712, "o", "a"] +[114.608595, "o", "c"] +[114.75613, "o", "k"] +[114.812009, "o", "a"] +[114.934783, "o", "g"] +[115.110992, "o", "e"] +[115.279093, "o", "s"] +[115.355977, "o", " "] +[115.679068, "o", "-"] +[116.034046, "o", "i"] +[116.150031, "o", " "] +[116.653914, "o", "l"] +[116.821665, "o", "i"] +[116.989401, "o", "n"] +[117.14489, "o", "u"] +[117.263793, "o", "x"] +[117.452988, "o", "6"] +[117.61334, "o", "4/"] +[118.172146, "o", "p"] +[118.241054, "o", "a"] +[118.439844, "o", "\u0007ckage"] +[118.940138, "o", "\u0007"] +[119.616315, "o", "s"] +[119.854291, "o", "/"] +[120.333431, "o", "simics-pkg-31337-6.0.0-linux64.ispm "] +[123.328962, "o", "-"] +[123.498906, "o", "-"] +[123.823943, "o", "t"] +[124.01803, "o", "r"] +[124.127944, "o", "u"] +[124.217042, "o", "s"] +[124.379899, "o", "t"] +[124.448036, "o", "-"] +[124.672873, "o", "i"] +[124.82697, "o", "n"] +[124.897878, "o", "s"] +[125.050057, "o", "e"] +[125.316098, "o", "c"] +[125.497016, "o", "u"] +[125.596871, "o", "r"] +[125.673976, "o", "e"] +[125.829866, "o", "-"] +[125.999027, "o", "p"] +[126.090924, "o", "a"] +[126.264913, "o", "c"] +[126.353023, "o", "k"] +[126.439703, "o", "a"] +[126.539799, "o", "g"] +[126.720884, "o", "e"] +[126.89587, "o", "s"] +[127.247968, "o", "\r\n\u001b[?2004l\r"] +[127.36343, "o", "The following packages will be installed\r\n"] +[127.365928, "o", " Package Number Version From Repo Install Directory \r\n 31337 6.0.0 linux64/packages /workspace/simics \r\n\r\n\r\n"] +[127.368444, "o", "\u001b[32m?\u001b[39m \u001b[1mProceed?\u001b[22m\u001b[0m \u001b[0m\u001b[2m(Y/n) \u001b[22m\u001b[17D\u001b[17C"] +[128.541602, "o", "\u001b[2K\u001b[G"] +[128.542282, "o", "\u001b[32m?\u001b[39m \u001b[1mProceed?\u001b[22m\u001b[0m \u001b[0m\u001b[2m(Y/n) \u001b[22mY\u001b[18D\u001b[18C"] +[128.863908, "o", "\u001b[2K\u001b[G"] +[128.864274, "o", "\u001b[32m?\u001b[39m \u001b[1mProceed?\u001b[22m\u001b[0m \u001b[0m\u001b[36mYes\u001b[39m\u001b[14D\u001b[14C\r\n"] +[128.875215, "o", "\u001b[?25l\u001b[?7l"] +[128.974869, "o", "\u001b[1G\u001b[1G[ ] 31337-6.0.0: Pending\u001b[0K"] +[129.074735, "o", "\u001b[1G"] +[129.174689, "o", "\u001b[1G"] +[129.220618, "o", "\u001b[?25h\u001b[?7h\u001b[1G\u001b[1G[======================================== ] TSFFS 31337-6.0.0: Done\u001b[0K"] +[129.220648, "o", "\r\n"] +[129.220954, "o", "Complete\r\n"] +[129.246922, "o", "\u001b]0;@efdf71a01882:/workspace/tsffs\u0007\u001b[?2004h[root@efdf71a01882 tsffs]# "] +[130.720225, "o", "c"] +[130.911043, "o", "d"] +[130.988208, "o", " "] +[131.217932, "o", "/"] +[131.392091, "o", "w"] +[131.483101, "o", "o"] +[131.577089, "o", "r"] +[131.676803, "o", "k"] +[131.761961, "o", "s"] +[131.909207, "o", "p"] +[131.981169, "o", "a"] +[132.154789, "o", "c"] +[132.329805, "o", "e"] +[132.412967, "o", "\r\n\u001b[?2004l\r"] +[132.413372, "o", "\u001b]0;@efdf71a01882:/workspace\u0007\u001b[?2004h[root@efdf71a01882 workspace]# "] +[132.807113, "o", "l"] +[132.897117, "o", "s"] +[132.973144, "o", "\r\n\u001b[?2004l\r"] +[132.975968, "o", "\u001b[0m\u001b[01;34msimics\u001b[0m \u001b[01;34mtsffs\u001b[0m\r\n"] +[132.976481, "o", "\u001b]0;@efdf71a01882:/workspace\u0007\u001b[?2004h[root@efdf71a01882 workspace]# "] +[133.429156, "o", "m"] +[133.592818, "o", "k"] +[133.717976, "o", "d"] +[133.817894, "o", "i"] +[133.94175, "o", "r"] +[133.9724, "o", " "] +[134.096812, "o", "p"] +[134.320992, "o", "r"] +[134.494769, "o", "o"] +[134.74274, "o", "j"] +[134.793772, "o", "e"] +[134.993901, "o", "c"] +[135.202005, "o", "t"] +[135.360959, "o", "s"] +[135.443965, "o", "\r\n\u001b[?2004l\r"] +[135.44951, "o", "\u001b]0;@efdf71a01882:/workspace\u0007\u001b[?2004h[root@efdf71a01882 workspace]# "] +[135.75882, "o", "c"] +[135.938901, "o", "d"] +[136.007949, "o", " "] +[136.132719, "o", "p"] +[136.208383, "o", "r"] +[136.333122, "o", "o"] +[136.488084, "o", "j"] +[136.582092, "o", "e"] +[136.781198, "o", "cts/"] +[137.385246, "o", "\r\n\u001b[?2004l\r\u001b]0;@efdf71a01882:/workspace/projects\u0007\u001b[?2004h[root@efdf71a01882 projects]# "] +[138.382464, "o", "i"] +[138.482285, "o", "s"] +[138.563077, "o", "p"] +[138.755858, "o", "m"] +[138.875054, "o", " "] +[139.360979, "o", "p"] +[139.461026, "o", "r"] +[139.581982, "o", "o"] +[139.703473, "o", "j"] +[139.753774, "o", "e"] +[139.953002, "o", "c"] +[140.133528, "o", "t"] +[140.297016, "o", "s"] +[140.40253, "o", " "] +[141.494423, "o", "$"] +[141.578206, "o", "("] +[141.904964, "o", "p"] +[142.001101, "o", "w"] +[142.254978, "o", "d"] +[142.549995, "o", ")"] +[142.800001, "o", "/"] +[142.926979, "o", "e"] +[143.148972, "o", "x"] +[143.325985, "o", "a"] +[143.423842, "o", "m"] +[143.555788, "o", "p"] +[143.773896, "o", "l"] +[143.85302, "o", "e"] +[143.95267, "o", " "] +[144.223096, "o", "-"] +[144.3822, "o", "-"] +[144.478113, "o", "c"] +[144.647494, "o", "r"] +[144.723256, "o", "e"] +[144.780322, "o", "a"] +[144.900224, "o", "t"] +[145.06718, "o", "e"] +[145.225171, "o", " "] +[145.497086, "o", "1"] +[145.849281, "o", "0"] +[146.022333, "o", "0"] +[146.172081, "o", "0"] +[146.37797, "o", "-"] +[146.626023, "o", "l"] +[146.727712, "o", "a"] +[146.870911, "o", "t"] +[147.015289, "o", "e"] +[147.096267, "o", "s"] +[147.175039, "o", "t"] +[147.364247, "o", " "] +[148.259994, "o", "2"] +[148.40877, "o", "0"] +[148.640961, "o", "9"] +[148.936882, "o", "6"] +[149.210818, "o", "-"] +[149.453953, "o", "l"] +[149.509581, "o", "a"] +[149.6429, "o", "t"] +[149.809081, "o", "e"] +[149.917049, "o", "s"] +[150.062088, "o", "t"] +[150.25136, "o", " "] +[150.559866, "o", "8"] +[150.7048, "o", "1"] +[150.87333, "o", "1"] +[151.073206, "o", "2"] +[151.296866, "o", "-"] +[151.581025, "o", "l"] +[151.67613, "o", "a"] +[152.019285, "o", "t"] +[152.168415, "o", "e"] +[152.274376, "o", "s"] +[152.473365, "o", "t"] +[152.872316, "o", " "] +[153.203394, "o", "1"] +[153.298385, "o", "0"] +[153.788504, "o", "3"] +[153.919206, "o", "0"] +[154.16303, "o", "-"] +[154.397011, "o", "l"] +[154.468102, "o", "a"] +[154.601326, "o", "t"] +[154.744115, "o", "e"] +[154.835504, "o", "s"] +[154.943977, "o", "t"] +[155.051317, "o", " "] +[155.267236, "o", "3"] +[155.475052, "o", "1"] +[155.693265, "o", "3"] +[155.915136, "o", "3"] +[156.090215, "o", "7"] +[156.390272, "o", "-"] +[156.619197, "o", "l"] +[156.714147, "o", "a"] +[156.841151, "o", "t"] +[157.013986, "o", "e"] +[157.114331, "o", "s"] +[157.233224, "o", "t"] +[158.919366, "o", " "] +[159.237191, "o", "-"] +[159.419383, "o", "-"] +[159.654391, "o", "n"] +[159.836757, "o", "o"] +[160.009505, "o", "n"] +[160.209233, "o", "-"] +[160.428408, "o", "i"] +[160.803351, "o", "\b\u001b[K"] +[160.963355, "o", "\b\u001b[K"] +[161.142232, "o", "\b\u001b[K"] +[161.308348, "o", "\b\u001b[K"] +[161.483338, "o", "\b\u001b[K"] +[161.64117, "o", "\b\u001b[K"] +[161.816364, "o", "\b\u001b[K"] +[161.989241, "o", "\b\u001b[K"] +[162.189373, "o", "\r\n\u001b[?2004l\r"] +[162.370132, "o", "The following packages were already installed\r\n"] +[162.373961, "o", " Package Number Version From Repo Install Directory \r\n 1000 6.0.169 /workspace/simics/simics-6.0.169 \r\n 2096 6.0.70 /workspace/simics/simics-qsp-x86-6.0.70 \r\n 8112 6.0.17 /workspace/simics/simics-qsp-cpu-6.0.17 \r\n 1030 6.0.4 /workspace/simics/simics-crypto-engine-6.0.4 \r\n 31337 6.0.0 /workspace/simics/simics-tsffs-6.0.0 \r\n\r\n\r\n"] +[162.374023, "o", "Will create project in directory /workspace/projects/example\r\n"] +[162.376332, "o", "\u001b[32m?\u001b[39m \u001b[1mProceed?\u001b[22m\u001b[0m \u001b[0m\u001b[2m(Y/n) \u001b[22m\u001b[17D\u001b[17C"] +[163.226317, "o", "\u001b[2K\u001b[G\u001b[32m?\u001b[39m \u001b[1mProceed?\u001b[22m\u001b[0m \u001b[0m\u001b[2m(Y/n) \u001b[22mY\u001b[18D\u001b[18C"] +[163.598121, "o", "\u001b[2K\u001b[G"] +[163.598283, "o", "\u001b[32m?\u001b[39m \u001b[1mProceed?\u001b[22m\u001b[0m \u001b[0m\u001b[36mYes\u001b[39m\u001b[14D\u001b[14C\r\n"] +[163.603171, "o", "\u001b[?25l"] +[163.60376, "o", "\u001b[32m?\u001b[39m \u001b[1mProject will be created at \"/workspace/projects/example\" which does not exist. Do you want to create it?\u001b[22m\u001b[0m \u001b[0m\u001b[2m(Use arrow keys)\u001b[22m\r\n\u001b[36m❯ Yes\u001b[39m \r\n No \u001b[5D\u001b[5C"] +[165.899133, "o", "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[G"] +[165.899935, "o", "\u001b[32m?\u001b[39m \u001b[1mProject will be created at \"/workspace/projects/example\" which does not exist. Do you want to create it?\u001b[22m\u001b[0m \u001b[0m\u001b[36mYes\u001b[39m\u001b[110D\u001b[110C"] +[165.900404, "o", "\r\n\u001b[?25h"] +[166.410719, "o", "example created successfully\r\n"] +[166.5394, "o", "\u001b[?25h"] +[166.54456, "o", "\u001b]0;@efdf71a01882:/workspace/projects\u0007\u001b[?2004h[root@efdf71a01882 projects]# "] +[167.941416, "o", "c"] +[168.13148, "o", "d"] +[168.231276, "o", " "] +[168.505551, "o", "e"] +[168.724467, "o", "x"] +[169.006926, "o", "ample/"] +[169.756327, "o", "\r\n\u001b[?2004l\r\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[170.350441, "o", "c"] +[170.455429, "o", "p"] +[170.575352, "o", " "] +[171.602224, "o", "/"] +[171.829433, "o", "w"] +[171.952161, "o", "o"] +[172.098083, "o", "rkspace/"] +[172.496156, "o", "t"] +[172.698607, "o", "sffs/"] +[173.764406, "o", "e"] +[173.994773, "o", "xamples/"] +[174.692351, "o", "d"] +[174.792236, "o", "o"] +[174.893565, "o", "cker-example/"] +[175.642368, "o", "f"] +[176.341678, "o", "uzz.simics "] +[177.296546, "o", "."] +[177.464337, "o", "/"] +[178.77853, "o", "\r\n\u001b[?2004l\r"] +[178.785008, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[179.182286, "o", "c"] +[179.286465, "o", "p"] +[179.406142, "o", " "] +[179.852641, "o", "/"] +[180.097032, "o", "w"] +[180.227336, "o", "o"] +[180.379334, "o", "rkspace/"] +[180.794266, "o", "f"] +[181.217308, "o", "\b\u001b[K"] +[181.277435, "o", "t"] +[181.466274, "o", "s"] +[181.671597, "o", "ffs/"] +[183.661418, "o", "m"] +[183.83023, "o", "o"] +[183.944409, "o", "dules/"] +[184.243433, "o", "t"] +[184.483433, "o", "s"] +[184.714625, "o", "\u0007ffs"] +[185.081568, "o", "t"] +[185.22439, "o", "e"] +[185.479367, "o", "s"] +[185.798677, "o", "\u0007"] +[186.377272, "o", "\b\u001b[K"] +[186.554615, "o", "\b\u001b[K"] +[187.219787, "o", "\b\u001b[K"] +[187.481574, "o", "/"] +[187.599397, "o", "t"] +[187.718664, "o", "e"] +[187.77468, "o", "s"] +[187.868591, "o", "t"] +[188.053597, "o", "\u0007s"] +[189.071068, "o", "/"] +[189.290255, "o", "r"] +[189.464316, "o", "s"] +[189.689655, "o", "rc/"] +[190.144409, "o", "m"] +[190.301387, "o", "i"] +[190.388668, "o", "nimal_boot_disk.craff "] +[191.037363, "o", "."] +[191.202325, "o", "/"] +[191.567437, "o", "\r\n\u001b[?2004l\r"] +[191.571019, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[192.391469, "o", "c"] +[192.500316, "o", "p"] +[192.622333, "o", " "] +[192.997266, "o", "/"] +[193.159344, "o", "w"] +[193.284449, "o", "o"] +[193.384433, "o", "r"] +[193.490446, "o", "k"] +[193.590485, "o", "space/"] +[194.308665, "o", "t"] +[194.458423, "o", "s"] +[194.639583, "o", "ffs/"] +[195.092892, "o", "m"] +[195.213771, "o", "o"] +[195.312906, "o", "dules/"] +[195.710181, "o", "t"] +[195.903242, "o", "s"] +[196.092311, "o", "\u0007ffs"] +[196.408737, "o", "t"] +[196.576717, "o", "e"] +[196.931078, "o", "\b\u001b[K"] +[197.104627, "o", "\b\u001b[K"] +[197.527611, "o", "/"] +[197.577684, "o", "t"] +[197.677787, "o", "e"] +[197.733688, "o", "s"] +[198.050519, "o", "\u0007ts"] +[199.860662, "o", "/"] +[200.171542, "o", "t"] +[200.298417, "o", "a"] +[200.41651, "o", "r"] +[200.572651, "o", "gets/"] +[201.090594, "o", "m"] +[201.265436, "o", "i"] +[201.429712, "o", "n"] +[201.58466, "o", "i"] +[201.678476, "o", "\u0007mal-"] +[202.400543, "o", "x"] +[202.508477, "o", "8"] +[202.705796, "o", "\u00076"] +[203.756569, "o", "_"] +[204.001804, "o", "6"] +[204.126924, "o", "\u00074"] +[204.899726, "o", "/"] +[205.123164, "o", " "] +[205.542559, "o", "\b\u001b[K"] +[205.781235, "o", "*"] +[205.929562, "o", " "] +[206.14174, "o", "."] +[206.296664, "o", "/"] +[207.594803, "o", "\r\n\u001b[?2004l\r"] +[207.599546, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[209.73589, "o", "c"] +[209.818155, "o", "p"] +[209.947425, "o", " "] +[210.397577, "o", "/"] +[210.609919, "o", "w"] +[210.714654, "o", "o"] +[210.819753, "o", "r"] +[210.921916, "o", "k"] +[211.084078, "o", "space/"] +[211.566895, "o", "t"] +[211.720753, "o", "s"] +[211.94625, "o", "ffs/"] +[212.960702, "o", "h"] +[213.012844, "o", "a"] +[213.209834, "o", "rness/"] +[214.447819, "o", "t"] +[214.602708, "o", "s"] +[214.8098, "o", "\u0007ffs-gcc-"] +[215.796739, "o", "x"] +[215.965482, "o", "8"] +[216.16464, "o", "\u00076"] +[216.92084, "o", "_"] +[217.171805, "o", "6"] +[217.314974, "o", "4.h "] +[218.509755, "o", "."] +[218.683749, "o", "/"] +[218.957734, "o", "\r\n\u001b[?2004l\r"] +[218.961166, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[219.455453, "o", "n"] +[219.624572, "o", "i"] +[219.779787, "o", "n"] +[220.05601, "o", "j"] +[220.153995, "o", "a"] +[220.262026, "o", "\r\n\u001b[?2004l\r"] +[220.269103, "o", "\r[0/2] clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -O0 -I ../../../../../harness/ -c test.c -o test.o\u001b[K"] +[220.305074, "o", "\r[1/2] clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar -mno-red-zone -O0 -I ../../../../../harness/ -c test.c -o test.o\u001b[K\r[1/2] lld-link -filealign:16 -subsystem:efi_application -nodefaultlib -dll -entry:UefiMain test.o -out:test.efi\u001b[K"] +[220.320008, "o", "\r[2/2] lld-link -filealign:16 -subsystem:efi_application -nodefaultlib -dll -entry:UefiMain test.o -out:test.efi\u001b[K\r\n"] +[220.320272, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[221.85096, "o", "l"] +[221.917991, "o", "s"] +[222.272817, "o", "\r\n\u001b[?2004l\r"] +[222.27963, "o", "GNUmakefile build.ninja config.mk \u001b[0m\u001b[01;32mdocumentation\u001b[0m minimal_boot_disk.craff \u001b[01;32msimics\u001b[0m \u001b[01;32msimics-gui\u001b[0m \u001b[01;34mtargets\u001b[0m \u001b[01;32mtest.efi\u001b[0m test.o\r\n\u001b[01;34mbin\u001b[0m compiler.mk \u001b[01;34mdoc\u001b[0m fuzz.simics \u001b[01;34mmodules\u001b[0m \u001b[01;32msimics-eclipse\u001b[0m \u001b[01;32msimics-old\u001b[0m test.c test.lib tsffs-gcc-x86_64.h\r\n"] +[222.280076, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[230.205083, "o", "l"] +[230.280834, "o", "e"] +[230.463968, "o", "s"] +[230.629117, "o", "s"] +[230.754123, "o", " "] +[230.878083, "o", "f"] +[230.982232, "o", "u"] +[231.097049, "o", "z"] +[231.258066, "o", "z"] +[231.353143, "o", "."] +[231.482264, "o", "s"] +[231.570202, "o", "i"] +[231.725107, "o", "m"] +[231.858067, "o", "i"] +[231.943197, "o", "c"] +[232.073185, "o", "s"] +[232.192233, "o", "\r\n\u001b[?2004l\r"] +[232.252548, "o", "\u001b[?1049h\u001b[22;0;0t\u001b[42;1H\u001b[?1h\u001b=\r# Copyright (C) 2023 Intel Corporation\r\n# SPDX-License-Identifier: Apache-2.0\r\n\r\n# Load the TSFFS module. The project has the TSFFS package added to it by the\r\n# ISPM command, this loads the known module into the simulator.\r\nload-module tsffs\r\n\r\n# Create the TSFFS fuzzer object\r\n@tsffs = SIM_create_object(SIM_get_class(\"tsffs\"), \"tsffs\", [])\r\n\r\n# Set the log level for TSFFS to 3 (debug). Set to 4 (trace) or 1 (error) for additional\r\n# debug information or brevity, respectively\r\ntsffs.log-level 3\r\n\r\n# Set to start on magic harness. This is the \"default\" behavior for harnessing.\r\n@tsffs.iface.tsffs.set_start_on_harness(True)\r\n\r\n# Set to stop on magic harness. This is the \"default\" behavior for harnessing.\r\n@tsffs.iface.tsffs.set_stop_on_harness(True)\r\n\r\n# Set a virtual-time timeout of 3 seconds. If the target runs for this amount of time\r\n# without encountering a normal stop or another solution condition, it will be\r\n# considered a timeout.\r\n@tsffs.iface.tsffs.set_timeout(3.0)\r\n\r\n# Set page faults as an exception-type solution. When the CPU raises exception #14, the\r\n# input that caused it will be saved as a solution.\r\n@tsffs.iface.tsffs.add_exception_solution(14)\r\n\r\n# Set to generate a random corpus. This is only used for demonstration purposes.\r\n@tsffs.iface.tsffs.set_generate_random_corpus(True)\r\n\r\n# Public SIMICS uses SIMICS base version 6.0.169, so snapshots are not yet available\r\n@tsffs.iface.tsffs.set_use_snapshots(False)\r\n\r\n# Tokenize our UEFI executable to greatly enhance mutation efficacy\r\n@tsffs.iface.tsffs.tokenize_executable(\"%simics%/test.efi\")\r\n\r\n# Load the UEFI shell target for the QSP-x86 board, using an x86-64 Golden Cove (Sapphire Rapids) processor class\r\n# We set disk0 to the minimal_boot_disk.craff provided, which includes the SimicsAgent.efi app we can use to download\r\n# our target UEFI application.\r\n\u001b[7mfuzz.simics\u001b[27m\u001b[K"] +[236.596424, "o", "\r\u001b[Kload-target \"qsp-x86/uefi-shell\" namespace = qsp machine:hardware:storage:disk0:image = \"minimal_boot_disk.craff\" machine:hardware:processor:class = \"x \b:\u001b[K"] +[237.196555, "o", "\r\u001b[K86-goldencove-server\"\r\n:\u001b[K"] +[237.236912, "o", "\r\u001b[K\r\n:\u001b[K"] +[237.277067, "o", "\r\u001b[K# Uncomment to disable QSP serial console output. This disables the target from printing.\r\n:\u001b[K"] +[237.31726, "o", "\r\u001b[K# qsp.serconsole.con.disable-cmd-line-output\r\n:\u001b[K"] +[237.357411, "o", "\r\u001b[K\r\n:\u001b[K"] +[237.397683, "o", "\r\u001b[K# This script branch runs when the model starts. It waits an appropriate amount of time,\r\n:\u001b[K"] +[237.437898, "o", "\r\u001b[K# then downloads the UEFI application we are fuzzing and runs it. The application is\r\n:\u001b[K"] +[237.477999, "o", "\r\u001b[K# compiled with a harness that uses magic instructions to signal the fuzzer, which will\r\n:\u001b[K"] +[237.518159, "o", "\r\u001b[K# enter the fuzzing loop once the harness code is reached.\r\n:\u001b[K"] +[237.558203, "o", "\r\u001b[Kscript-branch {\r\n:\u001b[K"] +[237.598627, "o", "\r\u001b[K bp.time.wait-for seconds = 15\r\n:\u001b[K"] +[237.638646, "o", "\r\u001b[K qsp.serconsole.con.input \"\\n\"\r\n:\u001b[K"] +[237.678966, "o", "\r\u001b[K bp.time.wait-for seconds = .5\r\n:\u001b[K"] +[237.719167, "o", "\r\u001b[K qsp.serconsole.con.input \"FS0:\\n\"\r\n:\u001b[K"] +[237.759507, "o", "\r\u001b[K bp.time.wait-for seconds = .5\r\n:\u001b[K"] +[237.799438, "o", "\r\u001b[K local $manager = (start-agent-manager)\r\n:\u001b[K"] +[237.83982, "o", "\r\u001b[K qsp.serconsole.con.input (\"SimicsAgent.efi --download \" + (lookup-file \"%simics%/test.efi\") + \"\\n\")\r\n:\u001b[K"] +[237.880133, "o", "\r\u001b[K bp.time.wait-for seconds = .5\r\n:\u001b[K"] +[237.920373, "o", "\r\u001b[K qsp.serconsole.con.input \"test.efi\\n\"\r\n:\u001b[K"] +[237.959741, "o", "\r\u001b[K}\r\n:\u001b[K"] +[238.000426, "o", "\r\u001b[K\r\n:\u001b[K"] +[238.040793, "o", "\r\u001b[Krun\r\n\u001b[7m(END)\u001b[27m\u001b[K"] +[238.081213, "o", "\r\u001b[K\u0007\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.121043, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.161211, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.201077, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.241658, "o", "\r\u001b[K\u0007\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.282101, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.321964, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.362074, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[238.402324, "o", "\r\u001b[K\r\u001b[K\u001b[7m(END)\u001b[27m\u001b[K"] +[241.266925, "o", "\r\u001b[K\u001b[?1l\u001b>\u001b[?1049l\u001b[23;0;0t"] +[241.26769, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[242.215544, "o", "."] +[242.379259, "o", "/"] +[243.985135, "o", "s"] +[244.091208, "o", "i"] +[244.257206, "o", "m"] +[244.382182, "o", "i"] +[244.464053, "o", "c"] +[244.601027, "o", "s"] +[245.93202, "o", " "] +[246.17999, "o", "-"] +[246.954002, "o", "n"] +[247.112192, "o", "o"] +[247.308135, "o", "-"] +[247.496118, "o", "g"] +[247.59827, "o", "u"] +[247.745285, "o", "i"] +[247.882346, "o", " "] +[248.059256, "o", "-"] +[248.231035, "o", "-"] +[248.448323, "o", "n"] +[248.622121, "o", "o"] +[248.89632, "o", "-"] +[249.153474, "o", "w"] +[249.226103, "o", "i"] +[249.394449, "o", "n"] +[249.537099, "o", " "] +[250.090402, "o", "."] +[250.246017, "o", "/"] +[250.893589, "o", "f"] +[250.991385, "o", "u"] +[251.111042, "o", "z"] +[251.279167, "o", "z"] +[251.368277, "o", "."] +[251.511288, "o", "s"] +[251.590162, "o", "i"] +[251.767167, "o", "m"] +[251.908245, "o", "i"] +[251.977098, "o", "c"] +[252.10705, "o", "s"] +[252.457975, "o", "\r\n\u001b[?2004l\r"] +[252.598811, "o", "\r"] +[252.669243, "o", "Intel Simics 6 (build 6233 linux64) © 2023 Intel Corporation\r\n\r\nUse of this software is subject to appropriate license.\r\nType 'copyright' for details on copyright and 'help' for on-line documentation.\r\n\r\n"] +[252.673864, "o", "[sim info] Created class tsffs\r\n"] +[252.673959, "o", "[sim info] Registered interface for class tsffs\r\n"] +[252.674435, "o", "[tsffs info] set_start_on_harness(true)\r\n[tsffs info] set_stop_on_harness(true)\r\n"] +[252.67467, "o", "[tsffs info] set_timeout(3)\r\n[tsffs info] add_exception_solution(14)\r\n[tsffs info] set_generate_random_corpus(true)\r\n"] +[252.674817, "o", "[tsffs info] use_snapshots(false)\r\n[tsffs info] tokenize_executable(/workspace/projects/example/test.efi)\r\n"] +[253.464163, "o", "[qsp.mb.cpu0.core[0][0] info] VMP disabled. Failed to open device.\r\n\r\nWARNING: Simics failed to enable VMP. Enabling VMP substantially improves\r\n simulation performance. The problem is most likely caused by the\r\n vmxmon kernel module not being properly installed or updated.\r\n See the \"Simics User's Guide\", the \"Performance\" section,\r\n for instructions how to setup VMP.\r\n\r\n"] +[253.853721, "o", "[qsp.mb.sb.lpc.bank.cs_conf unimpl] Write to unimplemented field cs_conf.oic.aen (0x31ff) (value written = 0x01, contents = 0x00), will not warn again.\r\n"] +[253.911502, "o", "[qsp.mb.sb.lpc.bank.acpi_io_regs unimpl] Write to unimplemented field acpi_io_regs.smi_en.EOS (0x30) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n"] +[253.932335, "o", "[qsp.mb.sb.spi.bank.spi_regs spec-viol] Write to read-only field spi_regs.hsfsts.fdv (value written = 0x0000, contents = 0x0001).\r\n"] +[254.00102, "o", "[qsp.mb.sb.thermal.bank.pci_config spec-viol] Enabling bus master, but this device doesn't support it\r\n"] +[254.077098, "o", "\\033[=3h\\033[=3hPress ESC to enter BIOS menu\\r\\n\r\n"] +[254.106831, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Read from unimplemented register csr.extcnf_ctrl (0x00000f00) (contents = 0x00000000).\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented register csr.extcnf_ctrl (0xf00) (value written = 0x00000020).\r\n"] +[254.107245, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tctl.rrthresh (0x400) (value written = 0x00000000, contents = 0x00000001), will not warn again.\r\n"] +[254.107708, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Read from unimplemented register csr.fwsm_s (0x00005b54) (contents = 0x00000000).\r\n"] +[254.114608, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented register csr.strap (0xc) (value written = 0x00008086).\r\n"] +[254.115183, "o", "[qsp.mb.sb.lan.bank.csr spec-viol] Read from poorly or non-documented register csr.dummy_3004 (contents = 0).\r\n[qsp.mb.sb.lan.bank.csr spec-viol] Write to poorly or non-documented register csr.dummy_3004 (value written = 0x50000, contents = 0).\r\n[qsp.mb.sb.phy.bank.mii_regs unimpl] Write to unimplemented register mii_regs.vendor_specific[15] (0x3e) (value written = 0x6094).\r\n[qsp.mb.sb.phy.bank.mii_regs unimpl] Read from unimplemented register mii_regs.vendor_specific[4] (0x0028) (contents = 0x0000).\r\n"] +[254.115427, "o", "[qsp.mb.sb.phy.bank.mii_regs unimpl] Write to unimplemented register mii_regs.vendor_specific[4] (0x28) (value written = 0x0000).\r\n"] +[254.115484, "o", "[qsp.mb.sb.lan.bank.csr spec-viol] writing 0 to count is not allowed\r\n[qsp.mb.sb.lan.bank.csr spec-viol] writing 0 to count is not allowed\r\n[qsp.mb.sb.lan.bank.csr unimpl] Read from unimplemented register csr.eec (0x00000010) (contents = 0x00000000).\r\n"] +[254.115759, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Read from unimplemented register csr.ledctl (0x00000e00) (contents = 0x00000000).\r\n"] +[254.124558, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tx_queue[0].txdctl.pthresh (0x3828) (value written = 0x0000001f, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tx_queue[0].txdctl.wthresh (0x3828) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tx_queue[0].txdctl.gran (0x3828) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tx_queue[1].txdctl.pthresh (0x3928) (value written = 0x0000001f, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tx_queue[1].txdctl.wthresh (0x3928) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.tx_queue[1].txdctl.gran (0x3928) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr spec-viol] Read from poorly or non-documented register csr.dummy_5b00 (contents = 0).\r\n[qsp.mb.sb.lan.bank.csr spec-viol] Write to poorly or non-documented register csr.dummy_5b00 (value written = 0xffffffc0, contents = 0).\r\n"] +[254.124982, "o", "[qsp.mb.sb.lan.bank.csr spec-viol] Read from poorly or non-documented register csr.sec (contents = 0).\r\n"] +[254.137282, "o", "[qsp.mb.sb.lan.bank.csr spec-viol] writing 0 to count is not allowed\r\n[qsp.mb.sb.lan.bank.csr spec-viol] writing 0 to count is not allowed\r\n"] +[254.144567, "o", "[qsp.mb.sb.lan spec-viol] access to reserved register at offset 0x280c in CSR bank\r\n"] +[254.150474, "o", "[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented register csr.h2me (0x5b50) (value written = 0x00000000).\r\n"] +[254.160709, "o", "[qsp.mb.sb.phy.bank.mii_regs unimpl] Read from unimplemented register mii_regs.vendor_specific[3] (0x0026) (contents = 0x0000).\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.ctrl.rfce (0) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n[qsp.mb.sb.lan.bank.csr unimpl] Write to unimplemented field csr.ctrl.tfce (0) (value written = 0x00000001, contents = 0x00000000), will not warn again.\r\n"] +[254.812425, "o", "\\033[=3h \\r\\n\r\n"] +[254.813726, "o", " \\r\\n\r\n"] +[254.81445, "o", " \\r\\n\r\n"] +[254.815546, "o", " \\r\\n\r\n"] +[254.8167, "o", " \\r\\n\r\n"] +[254.81748, "o", " \\r\\n\r\n"] +[254.81823, "o", " \\r\\n\r\n"] +[254.8196, "o", " \\r\\n\r\n"] +[254.819809, "o", " \\r\\n\r\n"] +[254.820549, "o", " \\r\\n\r\n"] +[254.821141, "o", " \\r\\n\r\n"] +[254.821707, "o", " \\r\\n\r\n"] +[254.82234, "o", " \\r\\n\r\n"] +[254.823004, "o", " \\r\\n\r\n"] +[254.823735, "o", " \\r\\n\r\n"] +[254.82432, "o", " \\r\\n\r\n"] +[254.824856, "o", " \\r\\n\r\n"] +[254.825421, "o", " \\r\\n\r\n"] +[254.825925, "o", " \\r\\n\r\n"] +[254.826628, "o", " \\r\\n\r\n"] +[254.827224, "o", " \\r\\n\r\n"] +[254.827769, "o", " \\r\\n\r\n"] +[254.828309, "o", " \\r\\n\r\n"] +[254.828852, "o", " \\r\\n\r\n"] +[254.829431, "o", " \\r\\n\r\n"] +[254.830707, "o", " \\r\\n\r\n"] +[254.831802, "o", " \\r\\n\r\n"] +[254.832349, "o", " \\r\\n\r\n"] +[254.832897, "o", " \\r\\n\r\n"] +[254.833456, "o", " \\r\\n\r\n"] +[254.83417, "o", " \\r\\n\r\n"] +[254.834767, "o", " \\r\\n\r\n"] +[254.836488, "o", " \\r\\n\r\n"] +[254.837053, "o", " \\r\\n\r\n"] +[254.837903, "o", " \\r\\n\r\n"] +[254.838638, "o", " \\r\\n\r\n"] +[254.843114, "o", " \\r\\n\r\n"] +[254.843956, "o", " \\r\\n\r\n"] +[254.844594, "o", " \\r\\n\r\n"] +[254.845144, "o", " \\r\\n\r\n"] +[254.84567, "o", " \\r\\n\r\n"] +[254.846206, "o", " \\r\\n\r\n"] +[254.846743, "o", " \\r\\n\r\n"] +[254.847467, "o", " \\r\\n\r\n"] +[254.848028, "o", " \\r\\n\r\n"] +[254.848565, "o", " \\r\\n\r\n"] +[254.849103, "o", " \\r\\n\r\n"] +[254.849662, "o", " \\r\\n\r\n"] +[254.85046, "o", " \\r\\n\r\n"] +[254.851062, "o", " \\r\\n\r\n"] +[254.851647, "o", " \\r\\n\r\n"] +[254.862559, "o", " Select Language >Device Manager >Boot Manager >Boot Maintenance Manager Continue Reset \\r\\n\r\n"] +[254.866535, "o", " ^v=Move Highlight =Select Entry This is the option \\r\\n\r\n"] +[254.867058, "o", "one adjusts to change \\r\\n\r\n"] +[254.867656, "o", "the language for the \\r\\n\r\n"] +[254.868199, "o", "current system \\r\\n\r\n"] +[254.86838, "o", " \\r\\n\r\n"] +[254.868624, "o", " \\r\\n\r\n"] +[254.86887, "o", " \\r\\n\r\n"] +[254.869115, "o", " \\r\\n\r\n"] +[254.869354, "o", " \\r\\n\r\n"] +[254.86961, "o", " \\r\\n\r\n"] +[254.870047, "o", " \\r\\n\r\n"] +[254.870385, "o", " \\r\\n\r\n"] +[254.957902, "o", " Select Language ^v=Move Highlight =Select Entry >Device Manager This selection will \\r\\n\r\n"] +[254.958207, "o", "take you to the \\r\\n\r\n"] +[254.958688, "o", "Device Manager \\r\\n\r\n"] +[254.95878, "o", " \\r\\n\r\n"] +[254.959047, "o", " \\r\\n\r\n"] +[254.959234, "o", " \\r\\n\r\n"] +[254.959701, "o", " \\r\\n\r\n"] +[254.960004, "o", " \\r\\n\r\n"] +[254.960401, "o", " \\r\\n\r\n"] +[254.960643, "o", " \\r\\n\r\n"] +[254.960943, "o", " \\r\\n\r\n"] +[254.96111, "o", " \\r\\n\r\n"] +[254.969131, "o", " >Device Manager ^v=Move Highlight =Select Entry >Boot Manager This selection will \\r\\n\r\n"] +[254.96952, "o", "take you to the Boot \\r\\n\r\n"] +[254.969868, "o", "Manager \\r\\n\r\n"] +[254.97008, "o", " \\r\\n\r\n"] +[254.970328, "o", " \\r\\n\r\n"] +[254.970564, "o", " \\r\\n\r\n"] +[254.970793, "o", " \\r\\n\r\n"] +[254.971026, "o", " \\r\\n\r\n"] +[254.971271, "o", " \\r\\n\r\n"] +[254.971504, "o", " \\r\\n\r\n"] +[254.971737, "o", " \\r\\n\r\n"] +[254.971969, "o", " \\r\\n\r\n"] +[254.982792, "o", "/------------------------------------------------------------------------------\\\\\\r\\n\r\n"] +[254.983007, "o", "||\\r\\n\r\n"] +[254.988021, "o", " Boot Manager \\\\------------------------------------------------------------------------------/\\r\\n\r\n"] +[254.991965, "o", "/------------------------------------------------------------------------------\\\\\\r\\n\r\n"] +[254.992261, "o", "||\\r\\n\r\n"] +[254.99254, "o", "||\\r\\n\r\n"] +[254.996816, "o", "\\\\------------------------------------------------------------------------------/\\r\\n\r\n"] +[255.001059, "o", " \\r\\n\r\n"] +[255.001716, "o", " \\r\\n\r\n"] +[255.002515, "o", " \\r\\n\r\n"] +[255.003023, "o", " \\r\\n\r\n"] +[255.003473, "o", " \\r\\n\r\n"] +[255.003953, "o", " \\r\\n\r\n"] +[255.004398, "o", " \\r\\n\r\n"] +[255.005052, "o", " \\r\\n\r\n"] +[255.005568, "o", " \\r\\n\r\n"] +[255.006033, "o", " \\r\\n\r\n"] +[255.006495, "o", " \\r\\n\r\n"] +[255.007105, "o", " \\r\\n\r\n"] +[255.007589, "o", " \\r\\n\r\n"] +[255.008204, "o", " \\r\\n\r\n"] +[255.008703, "o", " \\r\\n\r\n"] +[255.009067, "o", " \\r\\n\r\n"] +[255.009616, "o", " \\r\\n\r\n"] +[255.010091, "o", " \\r\\n\r\n"] +[255.02308, "o", " Boot Manager Menu UEFI Simics Turbo Harddrive VT00002 UEFI Simics Turbo Harddrive VT00003 UEFI PXEv4 (MAC:0017A0000000) UEFI PXEv6 (MAC:0017A0000000) UEFI HTTPv4 (MAC:0017A0000000) UEFI HTTPv6 (MAC:0017A0000000) EFI Internal Shell Use the <^> and keys to choose a boot option, the key to select a boot option, and the key to exit the Boot Manager Menu. \\r\\n\r\n"] +[255.026266, "o", " Esc=Exit ^v=Move Highlight =Select Entry Device Path : \\r\\n\r\n"] +[255.026765, "o", "PciRoot(0x0)/Pci(0x1F, \\r\\n\r\n"] +[255.027181, "o", "0x2)/Sata(0x0,0xFFFF,0 \\r\\n\r\n"] +[255.027382, "o", "x0) \\r\\n\r\n"] +[255.027572, "o", " \\r\\n\r\n"] +[255.027787, "o", " \\r\\n\r\n"] +[255.027996, "o", " \\r\\n\r\n"] +[255.028202, "o", " \\r\\n\r\n"] +[255.028415, "o", " \\r\\n\r\n"] +[255.028621, "o", " \\r\\n\r\n"] +[255.028827, "o", " \\r\\n\r\n"] +[255.029038, "o", " \\r\\n\r\n"] +[255.029265, "o", " \\r\\n\r\n"] +[255.029469, "o", " \\r\\n\r\n"] +[255.029796, "o", " \\r\\n\r\n"] +[255.193665, "o", " UEFI Simics Turbo Harddrive VT00002 Esc=Exit ^v=Move Highlight =Select Entry UEFI Simics Turbo Harddrive VT00003 Device Path : \\r\\n\r\n"] +[255.194103, "o", "PciRoot(0x0)/Pci(0x1F, \\r\\n\r\n"] +[255.194516, "o", "0x2)/Sata(0x2,0xFFFF,0 \\r\\n\r\n"] +[255.194622, "o", "x0) \\r\\n\r\n"] +[255.194666, "o", " \\r\\n\r\n"] +[255.194995, "o", " \\r\\n\r\n"] +[255.195192, "o", " \\r\\n\r\n"] +[255.195278, "o", " \\r\\n\r\n"] +[255.195601, "o", " \\r\\n\r\n"] +[255.195682, "o", " \\r\\n\r\n"] +[255.195892, "o", " \\r\\n\r\n"] +[255.19602, "o", " \\r\\n\r\n"] +[255.196245, "o", " \\r\\n\r\n"] +[255.196455, "o", " \\r\\n\r\n"] +[255.196752, "o", " \\r\\n\r\n"] +[255.203389, "o", " UEFI Simics Turbo Harddrive VT00003 Esc=Exit ^v=Move Highlight =Select Entry UEFI PXEv4 (MAC:0017A0000000) Device Path : \\r\\n\r\n"] +[255.203973, "o", "PciRoot(0x0)/Pci(0x19, \\r\\n\r\n"] +[255.2043, "o", "0x0)/MAC(0017A0000000, \\r\\n\r\n"] +[255.204692, "o", "0x0)/IPv4(0.0.0.0,0x0, \\r\\n\r\n"] +[255.204989, "o", "DHCP,0.0.0.0,0.0.0.0,0 \\r\\n\r\n"] +[255.205211, "o", ".0.0.0) \\r\\n\r\n"] +[255.205399, "o", " \\r\\n\r\n"] +[255.205626, "o", " \\r\\n\r\n"] +[255.205849, "o", " \\r\\n\r\n"] +[255.206072, "o", " \\r\\n\r\n"] +[255.206307, "o", " \\r\\n\r\n"] +[255.206533, "o", " \\r\\n\r\n"] +[255.206759, "o", " \\r\\n\r\n"] +[255.207144, "o", " \\r\\n\r\n"] +[255.207436, "o", " \\r\\n\r\n"] +[255.212672, "o", " UEFI PXEv4 (MAC:0017A0000000) Esc=Exit ^v=Move Highlight =Select Entry UEFI PXEv6 (MAC:0017A0000000) Device Path : \\r\\n\r\n"] +[255.213177, "o", "PciRoot(0x0)/Pci(0x19, \\r\\n\r\n"] +[255.213539, "o", "0x0)/MAC(0017A0000000, \\r\\n\r\n"] +[255.213912, "o", "0x0)/IPv6(0000:0000:00 \\r\\n\r\n"] +[255.214249, "o", "00:0000:0000:0000:0000 \\r\\n\r\n"] +[255.21468, "o", ":0000,0x0,Static,0000: \\r\\n\r\n"] +[255.215013, "o", "0000:0000:0000:0000:00 \\r\\n\r\n"] +[255.215382, "o", "00:0000:0000,0x40,0000 \\r\\n\r\n"] +[255.215767, "o", ":0000:0000:0000:0000:0 \\r\\n\r\n"] +[255.216088, "o", "000:0000:0000) \\r\\n\r\n"] +[255.21627, "o", " \\r\\n\r\n"] +[255.216505, "o", " \\r\\n\r\n"] +[255.216735, "o", " \\r\\n\r\n"] +[255.217267, "o", " \\r\\n\r\n"] +[255.217519, "o", " \\r\\n\r\n"] +[255.223617, "o", " UEFI PXEv6 (MAC:0017A0000000) Esc=Exit ^v=Move Highlight =Select Entry UEFI HTTPv4 (MAC:0017A0000000) Device Path : \\r\\n\r\n"] +[255.224059, "o", "PciRoot(0x0)/Pci(0x19, \\r\\n\r\n"] +[255.224443, "o", "0x0)/MAC(0017A0000000, \\r\\n\r\n"] +[255.224835, "o", "0x0)/IPv4(0.0.0.0,0x0, \\r\\n\r\n"] +[255.225177, "o", "DHCP,0.0.0.0,0.0.0.0,0 \\r\\n\r\n"] +[255.225488, "o", ".0.0.0)/Uri() \\r\\n\r\n"] +[255.225647, "o", " \\r\\n\r\n"] +[255.225871, "o", " \\r\\n\r\n"] +[255.22608, "o", " \\r\\n\r\n"] +[255.226294, "o", " \\r\\n\r\n"] +[255.226569, "o", " \\r\\n\r\n"] +[255.22684, "o", " \\r\\n\r\n"] +[255.227237, "o", " \\r\\n\r\n"] +[255.227459, "o", " \\r\\n\r\n"] +[255.227678, "o", " \\r\\n\r\n"] +[255.239834, "o", " UEFI HTTPv4 (MAC:0017A0000000) Esc=Exit ^v=Move Highlight =Select Entry UEFI HTTPv6 (MAC:0017A0000000) Device Path : \\r\\n\r\n"] +[255.240645, "o", "PciRoot(0x0)/Pci(0x19, \\r\\n\r\n"] +[255.241225, "o", "0x0)/MAC(0017A0000000, \\r\\n\r\n"] +[255.241849, "o", "0x0)/IPv6(0000:0000:00 \\r\\n\r\n"] +[255.242552, "o", "00:0000:0000:0000:0000 \\r\\n\r\n"] +[255.24325, "o", ":0000,0x0,Static,0000: \\r\\n\r\n"] +[255.243873, "o", "0000:0000:0000:0000:00 \\r\\n\r\n"] +[255.244486, "o", "00:0000:0000,0x40,0000 \\r\\n\r\n"] +[255.245083, "o", ":0000:0000:0000:0000:0 \\r\\n\r\n"] +[255.245706, "o", "000:0000:0000)/Uri() \\r\\n\r\n"] +[255.245982, "o", " \\r\\n\r\n"] +[255.246637, "o", " \\r\\n\r\n"] +[255.247141, "o", " \\r\\n\r\n"] +[255.24757, "o", " \\r\\n\r\n"] +[255.247992, "o", " \\r\\n\r\n"] +[255.257645, "o", " UEFI HTTPv6 (MAC:0017A0000000) Esc=Exit ^v=Move Highlight =Select Entry EFI Internal Shell Device Path : \\r\\n\r\n"] +[255.258404, "o", "Fv(EACAB9EA-C3C6-4438- \\r\\n\r\n"] +[255.25904, "o", "8FD7-2270826DC0BB)/FvF \\r\\n\r\n"] +[255.259664, "o", "ile(7C04A583-9E3E-4F1C \\r\\n\r\n"] +[255.260258, "o", "-AD65-E05268D0B4D1) \\r\\n\r\n"] +[255.260558, "o", " \\r\\n\r\n"] +[255.260968, "o", " \\r\\n\r\n"] +[255.261399, "o", " \\r\\n\r\n"] +[255.261831, "o", " \\r\\n\r\n"] +[255.262347, "o", " \\r\\n\r\n"] +[255.262981, "o", " \\r\\n\r\n"] +[255.263477, "o", " \\r\\n\r\n"] +[255.263899, "o", " \\r\\n\r\n"] +[255.26432, "o", " \\r\\n\r\n"] +[255.264748, "o", " \\r\\n\r\n"] +[255.378153, "o", "\\033[=3hUEFI Interactive Shell v2.2\\r\\n\r\n"] +[255.37893, "o", "EDK II\\r\\n\r\n"] +[255.379586, "o", "UEFI v2.70 (EDK II, 0x00010000)\\r\\n\r\n"] +[255.381318, "o", "Mapping table\\r\\n\r\n"] +[255.384038, "o", " FS0: Alias(s):F0a65535a:;BLK0:\\r\\n\r\n PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0)\\r\\n\r\n"] +[255.387015, "o", " BLK2: Alias(s):\\r\\n\r\n PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x2,0xFFFF,0x0)\\r\\n\r\n"] +[255.389613, "o", " BLK1: Alias(s):\\r\\n\r\n PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0xFFFF,0x0)\\r\\n\r\n"] +[255.658868, "o", "Press ESC in 5 seconds to skip startup.nsh or any other key to continue.Press ESC in 4 seconds to skip startup.nsh or any other key to continue.Press ESC in 3 seconds to skip startup.nsh or any other key to continue.Press ESC in 2 seconds to skip startup.nsh or any other key to continue.Press ESC in 1 seconds to skip startup.nsh or any other key to continue.\\r\\n\r\n"] +[255.670148, "o", "Shell> FS0:\\r\\n\r\n"] +[255.70965, "o", "FS0:\\\\> SimicsAgent.efi --download /workspace/projects/example/test.efi\\r\\n\r\n"] +[255.716875, "o", "UEFI, v1.5, Nov 4 2022 14:28:00\\r\\n\r\n"] +[255.717878, "o", "[tsffs info] on_magic_instruction(12)\r\n"] +[255.731632, "o", "UEFI connected (1B90F02E10D5A84C)\\r\\n\r\n"] +[255.732312, "o", "[tsffs info] on_magic_instruction(12)\r\n"] +[255.735575, "o", "[tsffs info] on_magic_instruction(12)\r\n"] +[255.735857, "o", "[tsffs info] on_magic_instruction(12)\r\n[tsffs info] on_magic_instruction(12)\r\n"] +[255.737162, "o", "[tsffs info] on_magic_instruction(12)\r\n"] +[256.035403, "o", "[tsffs info] on_magic_instruction(12)\r\n"] +[256.035451, "o", "[tsffs info] on_magic_instruction(12)\r\n[matic0 info] The Simics agent has terminated.\r\n"] +[256.03567, "o", "[matic0 info] disconnected from UEFI0 (0x1b90f02e10d5a84c)\r\n"] +[256.036412, "o", "FS0:\\\\SimicsAgent.efi: No Error Detected (0)\\r\\n\r\n"] +[256.047706, "o", "FS0:\\\\> test.efi\\r\\n\r\n"] +[256.04993, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Starting fuzzer thread\r\n"] +[256.059278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.078726, "o", "0029705666ff3a8b\\r\\n\r\n"] +[256.079178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[256.079309, "o", "[Stats #0] run time: 0h-0m-0s, clients: 1, corpus: 0, objectives: 0, executions: 0, exec/sec: 0.000\r\n"] +[256.079657, "o", "[Testcase #0] run time: 0h-0m-0s, clients: 1, corpus: 1, objectives: 0, executions: 1, exec/sec: 0.000\r\n"] +[256.083073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.083206, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.091501, "o", "d80b40a5e9\\r\\n\r\n"] +[256.091956, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.09213, "o", "[Stats #0] run time: 0h-0m-0s, clients: 1, corpus: 1, objectives: 0, executions: 1, exec/sec: 0.000\r\n"] +[256.092413, "o", "[Testcase #0] run time: 0h-0m-0s, clients: 1, corpus: 2, objectives: 0, executions: 2, exec/sec: 0.000\r\n"] +[256.094302, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.106965, "o", "7a80190cb9b49aa2\\r\\n\r\n"] +[256.107129, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931765 (current time 26.798967657)\r\n"] +[256.109802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.12227, "o", "f2046ce7501417f3\\r\\n\r\n"] +[256.122595, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495441 (current time 26.7989653925)\r\n"] +[256.125602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.13798, "o", "6e401629b16b466c\\r\\n\r\n"] +[256.138206, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953945 (current time 26.798965439)\r\n"] +[256.141135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.141231, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.153718, "o", "b9da3952277542c4\\r\\n\r\n"] +[256.154032, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495229 (current time 26.7989656045)\r\n"] +[256.157053, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.15711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.169698, "o", "da5e8b9877d1f0db\\r\\n\r\n"] +[256.169933, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905465 (current time 26.798970287)\r\n"] +[256.173007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.18526, "o", "bcfe0872b817098b\\r\\n\r\n"] +[256.185594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929255 (current time 26.798967908)\r\n"] +[256.188769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.196893, "o", "d80b40a5e9\\r\\n\r\n"] +[256.197183, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.199365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.207617, "o", "d80b40a5e9\\r\\n\r\n"] +[256.207916, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.210247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.218492, "o", "d80b40a5e9\\r\\n\r\n"] +[256.218745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.221989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.230165, "o", "d80b40a5e9\\r\\n\r\n"] +[256.230422, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.232752, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.241002, "o", "d80b40a5e9\\r\\n\r\n"] +[256.241389, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.243857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.24425, "o", "\\r\\n\r\n"] +[256.24469, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.246273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.246647, "o", "\\r\\n\r\n"] +[256.247091, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.248548, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.248867, "o", "\\r\\n\r\n"] +[256.24934, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.251411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.251755, "o", "\\r\\n\r\n"] +[256.252213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.254649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.261339, "o", "0b40a5e9\\r\\n\r\n"] +[256.261682, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997241445 (current time 26.798736689)\r\n"] +[256.263781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.269166, "o", "40a5e9\\r\\n\r\n"] +[256.269444, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782015 (current time 26.7986788185)\r\n"] +[256.272179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.276163, "o", "a5e9\\r\\n\r\n"] +[256.276517, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998387815 (current time 26.798622052)\r\n"] +[256.278535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.281026, "o", "e9\\r\\n\r\n"] +[256.281408, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998967595 (current time 26.798564074)\r\n"] +[256.283221, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.283568, "o", "\\r\\n\r\n"] +[256.283981, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.286413, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.286844, "o", "\\r\\n\r\n"] +[256.287244, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.28922, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.289572, "o", "\\r\\n\r\n"] +[256.290049, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.291874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.292204, "o", "\\r\\n\r\n"] +[256.292669, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.294211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.294544, "o", "\\r\\n\r\n"] +[256.295013, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.296443, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.29678, "o", "\\r\\n\r\n"] +[256.297224, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.298611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.298911, "o", "\\r\\n\r\n"] +[256.299362, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.301627, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.30168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.302052, "o", "\\r\\n\r\n"] +[256.302479, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.302522, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[256.304891, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.332855, "o", "d80b40a5e9\\r\\n\r\n"] +[256.334028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[256.338106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.338214, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.346387, "o", "d81340a5e9\\r\\n\r\n"] +[256.346739, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671275 (current time 26.798793706)\r\n"] +[256.348909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.349054, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.360876, "o", "6e67973031323334\\r\\n\r\n"] +[256.361282, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498784 (current time 26.7989620495)\r\n"] +[256.363572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.363779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.376089, "o", "01803032a3fdfdfd\\r\\n\r\n"] +[256.37647, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.376664, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922225 (current time 26.798968611)\r\n"] +[256.378994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.379185, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.391698, "o", "303114fe0cdbfafb\\r\\n\r\n"] +[256.392158, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489996 (current time 26.7989708375)\r\n"] +[256.394611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.394808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.407028, "o", "0b41a5a5a5d80bd8\\r\\n\r\n"] +[256.407347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922345 (current time 26.798968599)\r\n"] +[256.409896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.410122, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.422152, "o", "0029705666ff3a8b\\r\\n\r\n"] +[256.42262, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[256.425416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.425639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.437531, "o", "c930303132333435\\r\\n\r\n"] +[256.437814, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991935 (current time 26.79896164)\r\n"] +[256.440532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.440718, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.452312, "o", "4141324550505050\\r\\n\r\n"] +[256.452585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004645 (current time 26.798960369)\r\n"] +[256.455586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.455809, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.468172, "o", "f2f2f2f2f23334ca\\r\\n\r\n"] +[256.468557, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[256.468702, "o", "[tsffs info] Cancelling event with next time 2.9994920375 (current time 26.798968796)\r\n"] +[256.471772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.471916, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.48428, "o", "55555555c20cc255\\r\\n\r\n"] +[256.484652, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965185 (current time 26.798964315)\r\n"] +[256.487881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.487998, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.493132, "o", "015151\\r\\n\r\n"] +[256.493539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[256.493812, "o", "[Stats #0] run time: 0h-0m-0s, clients: 1, corpus: 2, objectives: 0, executions: 2, exec/sec: 0.000\r\n"] +[256.493924, "o", "[Testcase #0] run time: 0h-0m-0s, clients: 1, corpus: 3, objectives: 0, executions: 63, exec/sec: 0.000\r\n"] +[256.495788, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.49589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.507496, "o", "4141414141414130\\r\\n\r\n"] +[256.507842, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005875 (current time 26.798960246)\r\n"] +[256.510167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.510256, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.521421, "o", "d80bd80bbfa5e9\\r\\n\r\n"] +[256.521774, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[256.521885, "o", "[tsffs info] Cancelling event with next time 2.999547648 (current time 26.7989131855)\r\n[Stats #0] run time: 0h-0m-0s, clients: 1, corpus: 3, objectives: 0, executions: 63, exec/sec: 0.000\r\n"] +[256.522196, "o", "[Testcase #0] run time: 0h-0m-0s, clients: 1, corpus: 4, objectives: 0, executions: 65, exec/sec: 0.000\r\n"] +[256.524669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.530001, "o", "d80b40\\r\\n\r\n"] +[256.530315, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821805 (current time 26.798678653)\r\n"] +[256.532116, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.53226, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.544528, "o", "4f4f000000ffadad\\r\\n\r\n"] +[256.544936, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.544984, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912985 (current time 26.798969535)\r\n"] +[256.5474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.55142, "o", "5151\\r\\n\r\n"] +[256.551707, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.551812, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[256.554777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.55487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.56669, "o", "80800000cc585858\\r\\n\r\n"] +[256.567115, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497785 (current time 26.7989630485)\r\n"] +[256.570145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.57036, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.583215, "o", "0b7fffb3b3b3b3b3\\r\\n\r\n"] +[256.58362, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[256.58381, "o", "[tsffs info] Cancelling event with next time 2.999489889 (current time 26.7989709445)\r\n"] +[256.586951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.587058, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.598802, "o", "6240404063646566\\r\\n\r\n"] +[256.599092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.599242, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500052 (current time 26.7989607815)\r\n"] +[256.60251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.602587, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[256.60273, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.60688, "o", "a5e9\\r\\n\r\n"] +[256.60724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998387815 (current time 26.798622052)\r\n"] +[256.609649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.621872, "o", "781b03d2f3a880f1\\r\\n\r\n"] +[256.622091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.62222, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494313 (current time 26.7989665205)\r\n"] +[256.625019, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.625071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.636916, "o", "d83031323334357a\\r\\n\r\n"] +[256.63723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[256.637351, "o", "[tsffs info] Cancelling event with next time 2.9994979235 (current time 26.79896291)\r\n"] +[256.640129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.640231, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.65244, "o", "0416001d0416001d\\r\\n\r\n"] +[256.652725, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.652811, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984615 (current time 26.798962372)\r\n"] +[256.655747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.655853, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.659933, "o", "7bde\\r\\n\r\n"] +[256.660298, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998376815 (current time 26.798623152)\r\n"] +[256.662329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.667449, "o", "010000\\r\\n\r\n"] +[256.667768, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.667916, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978489 (current time 26.7986759435)\r\n"] +[256.670812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.670968, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.682761, "o", "610b40a530313233\\r\\n\r\n"] +[256.68313, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983155 (current time 26.798962518)\r\n"] +[256.686308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.69796, "o", "6780671010633031\\r\\n\r\n"] +[256.69826, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500268 (current time 26.7989605655)\r\n"] +[256.701196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.706766, "o", "a5e9e9\\r\\n\r\n"] +[256.707114, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997806145 (current time 26.798680219)\r\n"] +[256.709459, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.721883, "o", "1ef32e2e2e2e2e2e\\r\\n\r\n"] +[256.722181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908845 (current time 26.798969949)\r\n"] +[256.724947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.737365, "o", "d90000ffff3d3d30\\r\\n\r\n"] +[256.737734, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921615 (current time 26.798968672)\r\n"] +[256.740647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.752631, "o", "d80b40a530313233\\r\\n\r\n"] +[256.75297, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970535 (current time 26.79896378)\r\n"] +[256.755903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.768928, "o", "0e0e0e0e0e0e0ead\\r\\n\r\n"] +[256.769241, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.769412, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901905 (current time 26.798970643)\r\n"] +[256.772478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[256.772637, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.785203, "o", "3333fa0131146f3a\\r\\n\r\n"] +[256.785558, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495794 (current time 26.7989650395)\r\n"] +[256.788675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.800991, "o", "4b4b4b4b7f001080\\r\\n\r\n"] +[256.80135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494675 (current time 26.7989661585)\r\n"] +[256.804612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.804719, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.811606, "o", "c0ebeb20\\r\\n\r\n"] +[256.81191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722001 (current time 26.7987388325)\r\n"] +[256.814151, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.826037, "o", "d80000ff89898989\\r\\n\r\n"] +[256.826287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958935 (current time 26.79896494)\r\n"] +[256.828771, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.841242, "o", "fafefe4b4b404b14\\r\\n\r\n"] +[256.841592, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489794 (current time 26.7989710395)\r\n"] +[256.84411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.855877, "o", "3041414141416675\\r\\n\r\n"] +[256.856176, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500255 (current time 26.7989605785)\r\n"] +[256.859123, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.870788, "o", "6675333333333321\\r\\n\r\n"] +[256.871166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n[Stats #0] run time: 0h-0m-0s, clients: 1, corpus: 4, objectives: 0, executions: 65, exec/sec: 0.000\r\n"] +[256.871563, "o", "[Testcase #0] run time: 0h-0m-0s, clients: 1, corpus: 5, objectives: 0, executions: 91, exec/sec: 0.000\r\n"] +[256.873831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.873985, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.881829, "o", "640b40a5e9\\r\\n\r\n"] +[256.882198, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996672315 (current time 26.798793602)\r\n"] +[256.885109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.885254, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.897055, "o", "4f333333337a696e\\r\\n\r\n"] +[256.897415, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964025 (current time 26.798964431)\r\n"] +[256.899849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.900067, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.911647, "o", "3031323334333031\\r\\n\r\n"] +[256.911953, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.912075, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005845 (current time 26.798960249)\r\n"] +[256.91452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.914709, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.926782, "o", "6e7b414166757a7a\\r\\n\r\n"] +[256.927103, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495198 (current time 26.7989656355)\r\n"] +[256.929791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.929894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.942021, "o", "3333ffff30311133\\r\\n\r\n"] +[256.942549, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495645 (current time 26.7989651885)\r\n"] +[256.945041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.957626, "o", "6b6b6b6b6b6b6b6b\\r\\n\r\n"] +[256.957703, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[256.957919, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907905 (current time 26.798970043)\r\n"] +[256.960491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.968885, "o", "d80b7fff80\\r\\n\r\n"] +[256.969187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664664 (current time 26.7987961695)\r\n"] +[256.972256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.984154, "o", "d80b303132333435\\r\\n\r\n"] +[256.98439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980825 (current time 26.798962751)\r\n"] +[256.987971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[256.988086, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[256.999691, "o", "6465663538303132\\r\\n\r\n"] +[256.999908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999805 (current time 26.798960853)\r\n"] +[257.003446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.016024, "o", "000000ffff3031cd\\r\\n\r\n"] +[257.016322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936925 (current time 26.798967141)\r\n"] +[257.019847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.019993, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.032439, "o", "1bd01bd0d0d0d01c\\r\\n\r\n"] +[257.032685, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915925 (current time 26.798969241)\r\n"] +[257.036262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.036302, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.041958, "o", "d8b4e9\\r\\n\r\n"] +[257.042334, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997806815 (current time 26.798680152)\r\n"] +[257.044844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.056433, "o", "0151513233343536\\r\\n\r\n"] +[257.05675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003425 (current time 26.798960491)\r\n"] +[257.059565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.071575, "o", "28ff7f2828282828\\r\\n\r\n"] +[257.071852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496024 (current time 26.7989648095)\r\n"] +[257.074798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.074932, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.086845, "o", "64649c646464647f\\r\\n\r\n"] +[257.087161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.087317, "o", "[tsffs info] Cancelling event with next time 2.9994971775 (current time 26.798963656)\r\n"] +[257.090256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.090388, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.095795, "o", "6d6dc1\\r\\n\r\n"] +[257.096111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780861 (current time 26.7986799725)\r\n"] +[257.098168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.098311, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.103297, "o", "020025\\r\\n\r\n"] +[257.103695, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.103907, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846885 (current time 26.798676145)\r\n"] +[257.106439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.106655, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.118178, "o", "6364656642414141\\r\\n\r\n"] +[257.118618, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.118773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000025 (current time 26.798960831)\r\n"] +[257.121884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.12201, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.13401, "o", "3521723b36cc3464\\r\\n\r\n"] +[257.134482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.13467, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496665 (current time 26.7989641685)\r\n"] +[257.137809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.137907, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[257.138045, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.149661, "o", "0630313236373839\\r\\n\r\n"] +[257.150091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.15027, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950007 (current time 26.7989607635)\r\n"] +[257.153544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.161681, "o", "d8405a4031\\r\\n\r\n"] +[257.161982, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.1621, "o", "[tsffs info] Cancelling event with next time 2.999668528 (current time 26.7987923055)\r\n"] +[257.164192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.176791, "o", "00007fd5d5d5d5d5\\r\\n\r\n"] +[257.177029, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932245 (current time 26.798967609)\r\n"] +[257.179614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.179734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.191627, "o", "595959595959d855\\r\\n\r\n"] +[257.191868, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978245 (current time 26.798963009)\r\n"] +[257.194533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.202536, "o", "160b405b0b\\r\\n\r\n"] +[257.202852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.203093, "o", "[tsffs info] Cancelling event with next time 2.9996675765 (current time 26.798793257)\r\n"] +[257.207036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.207178, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.220489, "o", "d8c962c214fe0cdb\\r\\n\r\n"] +[257.220886, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490794 (current time 26.7989700395)\r\n"] +[257.223823, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.236396, "o", "ffffff800146ff18\\r\\n\r\n"] +[257.236781, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904595 (current time 26.798970374)\r\n"] +[257.239671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.24643, "o", "21ff7f01\\r\\n\r\n"] +[257.246797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997240465 (current time 26.798736787)\r\n"] +[257.248782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.260687, "o", "356e6e0037386333\\r\\n\r\n"] +[257.260946, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497624 (current time 26.7989632095)\r\n"] +[257.263347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.275983, "o", "95ff7675f2f2f2f2\\r\\n\r\n"] +[257.276358, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925715 (current time 26.798968262)\r\n"] +[257.278976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.279092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.29134, "o", "37a9a9a9a9a96465\\r\\n\r\n"] +[257.29159, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493789 (current time 26.7989670445)\r\n"] +[257.294084, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.306061, "o", "29818000d8408c40\\r\\n\r\n"] +[257.306324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978315 (current time 26.798963002)\r\n"] +[257.309049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.317173, "o", "a5e9a51620\\r\\n\r\n"] +[257.317564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667234 (current time 26.7987935995)\r\n"] +[257.320823, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.324893, "o", "d80b\\r\\n\r\n"] +[257.32524, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838947 (current time 26.7986218865)\r\n"] +[257.327365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.33541, "o", "80f63ea580\\r\\n\r\n"] +[257.335746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996670875 (current time 26.798793746)\r\n"] +[257.338812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.350655, "o", "36373839619e6364\\r\\n\r\n"] +[257.350933, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949839 (current time 26.7989624435)\r\n"] +[257.354099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.365817, "o", "4100806161616128\\r\\n\r\n"] +[257.366107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003 (current time 26.7989605335)\r\n"] +[257.369279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.381232, "o", "7107f3f330313233\\r\\n\r\n"] +[257.381484, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497956 (current time 26.7989628775)\r\n"] +[257.384599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.388686, "o", "d90b\\r\\n\r\n"] +[257.388964, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838918 (current time 26.7986219155)\r\n"] +[257.391539, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.399303, "o", "7f00000000\\r\\n\r\n"] +[257.399689, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670106 (current time 26.7987907275)\r\n"] +[257.40276, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.414761, "o", "396167217a698b67\\r\\n\r\n"] +[257.414957, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972525 (current time 26.798963581)\r\n"] +[257.418123, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.429169, "o", "f1f1f10b40a5e9\\r\\n\r\n"] +[257.429472, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999550131 (current time 26.7989107025)\r\n"] +[257.431679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.440095, "o", "7f0b40a5bf\\r\\n\r\n"] +[257.440451, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996649885 (current time 26.798795845)\r\n"] +[257.443094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.452455, "o", "4d05ff000000\\r\\n\r\n"] +[257.452909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996108365 (current time 26.798849997)\r\n"] +[257.45583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.459921, "o", "2f73\\r\\n\r\n"] +[257.460187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998399775 (current time 26.798620856)\r\n"] +[257.462207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.462362, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.470339, "o", "0010d8a5e9\\r\\n\r\n"] +[257.470759, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667304 (current time 26.7987935295)\r\n"] +[257.473549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.482714, "o", "d83031313233\\r\\n\r\n"] +[257.483034, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99961289 (current time 26.7988479435)\r\n"] +[257.486211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.497846, "o", "6565305232333437\\r\\n\r\n"] +[257.498203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000625 (current time 26.798960771)\r\n"] +[257.501081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.501183, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.51347, "o", "ffff7fff34353637\\r\\n\r\n"] +[257.513887, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914195 (current time 26.798969414)\r\n"] +[257.516311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.528951, "o", "e04014fe0c6f3a17\\r\\n\r\n"] +[257.529187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933325 (current time 26.798967501)\r\n"] +[257.531569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.543506, "o", "418630312286301e\\r\\n\r\n"] +[257.543719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949909 (current time 26.7989617435)\r\n"] +[257.546196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.558454, "o", "7f0000e50000ff00\\r\\n\r\n"] +[257.558576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.558754, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960895 (current time 26.798964744)\r\n"] +[257.56117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.573574, "o", "0bb5d5304040b5bf\\r\\n\r\n"] +[257.573831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493568 (current time 26.7989672655)\r\n"] +[257.576595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.585034, "o", "d8d3d8abd8\\r\\n\r\n"] +[257.585459, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996635475 (current time 26.798797286)\r\n"] +[257.588549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.600281, "o", "3031323334353637\\r\\n\r\n"] +[257.600584, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[257.603817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.615533, "o", "3432323230313233\\r\\n\r\n"] +[257.615954, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005315 (current time 26.798960302)\r\n"] +[257.619219, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.619303, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.631525, "o", "404040404042bf00\\r\\n\r\n"] +[257.631909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984305 (current time 26.798962403)\r\n"] +[257.635226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.647729, "o", "30ffff7fff353637\\r\\n\r\n"] +[257.648115, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491518 (current time 26.7989693155)\r\n"] +[257.651157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.651205, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.65824, "o", "e9e9e9e9\\r\\n\r\n"] +[257.658566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997222585 (current time 26.798738575)\r\n"] +[257.661033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.674107, "o", "ffffffffffffffff\\r\\n\r\n"] +[257.674431, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.674711, "o", "[tsffs info] Cancelling event with next time 2.9994807185 (current time 26.798980115)\r\n"] +[257.67707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.677304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.690163, "o", "9a9affefffff9f9f\\r\\n\r\n"] +[257.690507, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.690665, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485319 (current time 26.7989755145)\r\n"] +[257.693406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.693502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.705226, "o", "3031323334353637\\r\\n\r\n"] +[257.70567, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[257.708551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.708647, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.712526, "o", "d830\\r\\n\r\n"] +[257.712899, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400715 (current time 26.798620762)\r\n"] +[257.71476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.714781, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.723114, "o", "a5e1d80b40\\r\\n\r\n"] +[257.723535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996662225 (current time 26.798794611)\r\n"] +[257.726231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.738175, "o", "9d9d9d0010353636\\r\\n\r\n"] +[257.738491, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496488 (current time 26.7989643455)\r\n"] +[257.741324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.753125, "o", "6566411616161616\\r\\n\r\n"] +[257.753347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499992 (current time 26.7989608415)\r\n"] +[257.756224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.76804, "o", "7777777777777777\\r\\n\r\n"] +[257.768384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987585 (current time 26.798962075)\r\n"] +[257.771697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.771807, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.780122, "o", "f23fd8a5e9\\r\\n\r\n"] +[257.780511, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664596 (current time 26.7987962375)\r\n"] +[257.783042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.795461, "o", "e9ea0bea30313233\\r\\n\r\n"] +[257.795661, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493475 (current time 26.7989673585)\r\n"] +[257.798181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.810418, "o", "61f7ff6f70707070\\r\\n\r\n"] +[257.81073, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951585 (current time 26.798965675)\r\n"] +[257.813334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.825246, "o", "ff0d010000000000\\r\\n\r\n"] +[257.825504, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.825595, "o", "[tsffs info] Cancelling event with next time 2.9994976915 (current time 26.798963142)\r\n"] +[257.828214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.828348, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.833919, "o", "9b81ff\\r\\n\r\n"] +[257.834025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.834232, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997806695 (current time 26.798680164)\r\n"] +[257.837428, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.837665, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.84931, "o", "6666666666666666\\r\\n\r\n"] +[257.849638, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.849717, "o", "[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[257.850011, "o", "[Stats #0] run time: 0h-0m-1s, clients: 1, corpus: 5, objectives: 0, executions: 91, exec/sec: 51.39\r\n"] +[257.850412, "o", "[Testcase #0] run time: 0h-0m-1s, clients: 1, corpus: 6, objectives: 0, executions: 163, exec/sec: 92.04\r\n"] +[257.853232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.853282, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.865373, "o", "0f0f0503666a6a01\\r\\n\r\n"] +[257.865614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.865855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495783 (current time 26.7989650505)\r\n"] +[257.869128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[257.869259, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.878848, "o", "f907ff353637\\r\\n\r\n"] +[257.879164, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.879536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996099285 (current time 26.798850905)\r\n"] +[257.881662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.881842, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.893783, "o", "3031323334353637\\r\\n\r\n"] +[257.894175, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[257.89677, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.896808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.908573, "o", "3839723341616263\\r\\n\r\n"] +[257.908922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499894 (current time 26.7989609395)\r\n"] +[257.911488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.923218, "o", "6465664141414151\\r\\n\r\n"] +[257.923563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000915 (current time 26.798960742)\r\n"] +[257.926277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.926379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.930065, "o", "0080\\r\\n\r\n"] +[257.930424, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414 (current time 26.7986194335)\r\n"] +[257.932084, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.943893, "o", "bb40008040000000\\r\\n\r\n"] +[257.944411, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949879 (current time 26.7989620435)\r\n"] +[257.946979, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[257.947073, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.954797, "o", "8000000064\\r\\n\r\n"] +[257.955205, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[257.955378, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671151 (current time 26.7987896825)\r\n"] +[257.958433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.970177, "o", "3961626364656641\\r\\n\r\n"] +[257.970434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[257.970536, "o", "[tsffs info] Cancelling event with next time 2.99949974 (current time 26.7989610935)\r\n"] +[257.973614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.986126, "o", "d80b40a5e951a5e9\\r\\n\r\n"] +[257.986425, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493065 (current time 26.7989677685)\r\n"] +[257.989576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[257.997349, "o", "00000400e9\\r\\n\r\n"] +[257.997653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999669989 (current time 26.7987908445)\r\n"] +[258.000238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.0004, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.007402, "o", "d80ba5f9\\r\\n\r\n"] +[258.007668, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997227775 (current time 26.798738056)\r\n"] +[258.010182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.010312, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.02179, "o", "0bffff7fff0bd7\\r\\n\r\n"] +[258.022071, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.022181, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999545114 (current time 26.7989157195)\r\n"] +[258.025118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.025262, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.037368, "o", "f280c6313131c6c6\\r\\n\r\n"] +[258.037692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955575 (current time 26.798965276)\r\n"] +[258.040819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.047622, "o", "d80ba5a5\\r\\n\r\n"] +[258.047903, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722991 (current time 26.7987378425)\r\n"] +[258.05046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.05051, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.06222, "o", "7200000030313233\\r\\n\r\n"] +[258.062473, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008745 (current time 26.798959959)\r\n"] +[258.065024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.065138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.07503, "o", "0000ffffe9e9\\r\\n\r\n"] +[258.075412, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996067045 (current time 26.798854129)\r\n"] +[258.078048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.089702, "o", "3031321000000037\\r\\n\r\n"] +[258.090024, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009745 (current time 26.798959859)\r\n"] +[258.092654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.092776, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.104768, "o", "fa333d3132333435\\r\\n\r\n"] +[258.105077, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.105137, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968305 (current time 26.798964003)\r\n"] +[258.108159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.108222, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.116512, "o", "d80fd8cdd8\\r\\n\r\n"] +[258.116877, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663474 (current time 26.7987973595)\r\n"] +[258.120475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.120594, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.128612, "o", "d80c40a516\\r\\n\r\n"] +[258.129004, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.129123, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667323 (current time 26.7987935105)\r\n"] +[258.131416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.1316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.143194, "o", "3031323334343031\\r\\n\r\n"] +[258.143497, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.1437, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500564 (current time 26.7989602695)\r\n"] +[258.146086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.146203, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.158607, "o", "5a03d2f3a8cbf107\\r\\n\r\n"] +[258.158939, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921815 (current time 26.798968652)\r\n"] +[258.161486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.161621, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.173983, "o", "ecffff10000003e8\\r\\n\r\n"] +[258.17436, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922715 (current time 26.798968562)\r\n"] +[258.176787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.17694, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.189162, "o", "0001d866b701e9b7\\r\\n\r\n"] +[258.189452, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.189639, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955265 (current time 26.798965307)\r\n"] +[258.192191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.192331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.204027, "o", "3233343536373960\\r\\n\r\n"] +[258.204375, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999915 (current time 26.798960842)\r\n"] +[258.207376, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.21441, "o", "28ececec\\r\\n\r\n"] +[258.214758, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999720466 (current time 26.7987403675)\r\n"] +[258.217267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.217452, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.220083, "o", "28\\r\\n\r\n"] +[258.220403, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.220511, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980135 (current time 26.79856282)\r\n"] +[258.223259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.223382, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.23333, "o", "1abd9eadadad\\r\\n\r\n"] +[258.233729, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.23389, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996024425 (current time 26.798858391)\r\n"] +[258.237249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.237423, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.249827, "o", "25e9db93d9d9d9d9\\r\\n\r\n"] +[258.250335, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912735 (current time 26.79896956)\r\n"] +[258.253953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.254043, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.266378, "o", "9f9f6198205d5151\\r\\n\r\n"] +[258.266756, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962015 (current time 26.798964632)\r\n"] +[258.270303, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.270409, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.282206, "o", "6364656641414141\\r\\n\r\n"] +[258.282643, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.282722, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[258.286351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.286436, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.2982, "o", "3333333321723334\\r\\n\r\n"] +[258.298584, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500308 (current time 26.7989605255)\r\n"] +[258.302055, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.302251, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.308073, "o", "f90bbf\\r\\n\r\n"] +[258.308432, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99977969 (current time 26.7986811435)\r\n"] +[258.310779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.310913, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.322493, "o", "4152414141414141\\r\\n\r\n"] +[258.322973, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500486 (current time 26.7989603475)\r\n"] +[258.325983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.331183, "o", "0080e9\\r\\n\r\n"] +[258.331532, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783233 (current time 26.7986776005)\r\n"] +[258.334006, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.334106, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.345719, "o", "8041475941753334\\r\\n\r\n"] +[258.34602, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.346069, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998765 (current time 26.798960957)\r\n"] +[258.348231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.348431, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.355274, "o", "f440a5e9\\r\\n\r\n"] +[258.355544, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.355775, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997239445 (current time 26.798736889)\r\n"] +[258.35846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.358643, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.37187, "o", "1ce3e3e3e3e3e3e3\\r\\n\r\n"] +[258.372172, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.372472, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908125 (current time 26.798970021)\r\n"] +[258.375334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.375368, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.388052, "o", "ea0b7f00000057ff\\r\\n\r\n"] +[258.388381, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935255 (current time 26.798967308)\r\n"] +[258.391644, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.400109, "o", "d8f440d8e9\\r\\n\r\n"] +[258.400516, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996657045 (current time 26.798795129)\r\n"] +[258.404119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.404236, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.409859, "o", "ea16ea\\r\\n\r\n"] +[258.410159, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997798145 (current time 26.798681019)\r\n"] +[258.412433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.419791, "o", "efffe4ff\\r\\n\r\n"] +[258.420091, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999719077 (current time 26.7987417565)\r\n"] +[258.423126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.435591, "o", "d80b40a5e93e3e1f\\r\\n\r\n"] +[258.435778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.436042, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949198 (current time 26.7989688535)\r\n"] +[258.43925, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.439371, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.451435, "o", "216600ff64644141\\r\\n\r\n"] +[258.451707, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.451829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978425 (current time 26.798962991)\r\n"] +[258.455008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.455079, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.467134, "o", "30313233da303132\\r\\n\r\n"] +[258.467349, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498349 (current time 26.7989624845)\r\n"] +[258.471041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.482731, "o", "0080303132333435\\r\\n\r\n"] +[258.483084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[258.483323, "o", "[tsffs info] Cancelling event with next time 2.9995005355 (current time 26.798960298)\r\n"] +[258.486902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.487092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.498885, "o", "9936373839616263\\r\\n\r\n"] +[258.499171, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.499318, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499494 (current time 26.7989613395)\r\n"] +[258.502864, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.50304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.515272, "o", "eb3816e438c7220a\\r\\n\r\n"] +[258.515561, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.515805, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494301 (current time 26.7989665325)\r\n"] +[258.51929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.519478, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.531763, "o", "f8a5a53a1760a5a5\\r\\n\r\n"] +[258.532073, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932295 (current time 26.798967604)\r\n"] +[258.53565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.535818, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.544311, "o", "d80b60a5e9\\r\\n\r\n"] +[258.544508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659875 (current time 26.798794846)\r\n"] +[258.547075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.559406, "o", "9ee7dede40757575\\r\\n\r\n"] +[258.55985, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925645 (current time 26.798968269)\r\n"] +[258.562338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.574759, "o", "4f4f4f4e4f504f4f\\r\\n\r\n"] +[258.575036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916645 (current time 26.798969169)\r\n"] +[258.577556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.577623, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[258.577742, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.58964, "o", "4141be4142414141\\r\\n\r\n"] +[258.590142, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.590184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981615 (current time 26.798962672)\r\n"] +[258.592774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.592875, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.599819, "o", "00ffc000\\r\\n\r\n"] +[258.600048, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.600101, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997244115 (current time 26.798736422)\r\n"] +[258.603601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.603691, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[258.603842, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.615579, "o", "3364336464040080\\r\\n\r\n"] +[258.615886, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.616076, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002465 (current time 26.798960587)\r\n"] +[258.619456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.61963, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.63167, "o", "341b366e672160b1\\r\\n\r\n"] +[258.63196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496729 (current time 26.7989641045)\r\n"] +[258.635344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.635428, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.64261, "o", "d8f4a5e9\\r\\n\r\n"] +[258.642881, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722602 (current time 26.7987382315)\r\n"] +[258.645099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.645189, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.656963, "o", "6969696969696969\\r\\n\r\n"] +[258.657201, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.657405, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986545 (current time 26.798962179)\r\n"] +[258.659704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n"] +[258.659822, "o", "[tsffs info] Resuming simulation\r\n"] +[258.659889, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.671649, "o", "3677383961626364\\r\\n\r\n"] +[258.672023, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995895 (current time 26.798961244)\r\n"] +[258.674709, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.67477, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.68641, "o", "3031323334353633\\r\\n\r\n"] +[258.686692, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.686809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003455 (current time 26.798960488)\r\n"] +[258.689832, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.699706, "o", "dddddddd52e9\\r\\n\r\n"] +[258.700046, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.700076, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999603236 (current time 26.7988575975)\r\n"] +[258.703547, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.703602, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.711979, "o", "d80b408f37\\r\\n\r\n"] +[258.712219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996670955 (current time 26.798793738)\r\n"] +[258.714603, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.724249, "o", "303522373839\\r\\n\r\n"] +[258.724674, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999613708 (current time 26.7988471255)\r\n"] +[258.727211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[258.727425, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.737546, "o", "d80b0ba50be9\\r\\n\r\n"] +[258.737764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999607061 (current time 26.7988537725)\r\n"] +[258.741165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.752996, "o", "00009eb031323324\\r\\n\r\n"] +[258.75323, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.753389, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498329 (current time 26.7989625045)\r\n"] +[258.756333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.765685, "o", "d80b40a53031\\r\\n\r\n"] +[258.765903, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[258.766025, "o", "[tsffs info] Cancelling event with next time 2.999610678 (current time 26.7988501555)\r\n"] +[258.76932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.769467, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.77915, "o", "bd1444d814e9\\r\\n\r\n"] +[258.779497, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996090665 (current time 26.798851767)\r\n"] +[258.781699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.785649, "o", "0002\\r\\n\r\n"] +[258.785964, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841536 (current time 26.7986192975)\r\n"] +[258.788826, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.800709, "o", "41416566417e0041\\r\\n\r\n"] +[258.800955, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499038 (current time 26.7989617955)\r\n"] +[258.804372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.804466, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.812698, "o", "d80b40a5e9\\r\\n\r\n"] +[258.81311, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[258.815305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.825099, "o", "d8ec0b40a5e9\\r\\n\r\n"] +[258.825442, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606853 (current time 26.7988539805)\r\n"] +[258.827978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.839873, "o", "4141000141323031\\r\\n\r\n"] +[258.840212, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500836 (current time 26.7989599975)\r\n"] +[258.842905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.855496, "o", "6666666666666666\\r\\n\r\n"] +[258.85578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[258.859192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.859333, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.871518, "o", "0000663500006635\\r\\n\r\n"] +[258.871829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005905 (current time 26.798960243)\r\n"] +[258.875664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.875767, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.882727, "o", "d8d80b40\\r\\n\r\n"] +[258.883116, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997240715 (current time 26.798736762)\r\n"] +[258.885816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.897749, "o", "1041d80b00a59a66\\r\\n\r\n"] +[258.898262, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495768 (current time 26.7989650655)\r\n"] +[258.901468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.901798, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.914005, "o", "d80b0b40a540a5e9\\r\\n\r\n"] +[258.914349, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934205 (current time 26.798967413)\r\n"] +[258.917775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.917921, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.929877, "o", "d90b403031323334\\r\\n\r\n"] +[258.930057, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.930214, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498158 (current time 26.7989626755)\r\n"] +[258.932445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.94455, "o", "5474339688888878\\r\\n\r\n"] +[258.94479, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499052 (current time 26.7989617815)\r\n"] +[258.947407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.95957, "o", "d830311e66757a01\\r\\n\r\n"] +[258.959871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966525 (current time 26.798964181)\r\n"] +[258.962438, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.971347, "o", "ff00ffffe9\\r\\n\r\n"] +[258.971682, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[258.971998, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996622635 (current time 26.79879857)\r\n"] +[258.974332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.982229, "o", "d70b4085e9\\r\\n\r\n"] +[258.982743, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667044 (current time 26.7987937895)\r\n"] +[258.986604, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[258.986742, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[258.994147, "o", "cffffffd\\r\\n\r\n"] +[258.994429, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999717945 (current time 26.7987428885)\r\n"] +[258.996551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.004572, "o", "014040a5e9\\r\\n\r\n"] +[259.004891, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.005114, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668548 (current time 26.7987922855)\r\n"] +[259.007326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.019144, "o", "6566414141414141\\r\\n\r\n"] +[259.019411, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.019654, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500232 (current time 26.7989606015)\r\n"] +[259.022502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.034776, "o", "ffb2ff3031323334\\r\\n\r\n"] +[259.035078, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.035161, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494456 (current time 26.7989663775)\r\n"] +[259.038564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.038679, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.046746, "o", "0000ffff17\\r\\n\r\n"] +[259.04713, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996661615 (current time 26.798794672)\r\n"] +[259.04918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.061189, "o", "36353821723334bf\\r\\n\r\n"] +[259.061462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977295 (current time 26.798963104)\r\n"] +[259.063852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.075763, "o", "7b226d6574616461\\r\\n\r\n"] +[259.076026, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[259.078576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.091914, "o", "0029705666ff3a8b\\r\\n\r\n"] +[259.092416, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[259.094887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.106848, "o", "7b226d6574616461\\r\\n\r\n"] +[259.106967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[259.109429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.10949, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.117813, "o", "d80b40a5e9\\r\\n\r\n"] +[259.118026, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.118152, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[259.122011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.122128, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.134484, "o", "7b226d6574616461\\r\\n\r\n"] +[259.134814, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.135, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[259.138604, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.138859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.143931, "o", "015151\\r\\n\r\n"] +[259.144252, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.144382, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.14633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.146461, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.158553, "o", "7b226d6574616461\\r\\n\r\n"] +[259.158807, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.159178, "o", "[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[259.161818, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.173155, "o", "d80bd80bbfa5e9\\r\\n\r\n"] +[259.173356, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.173556, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547648 (current time 26.7989131855)\r\n"] +[259.176366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.176691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.188674, "o", "7b226d6574616461\\r\\n\r\n"] +[259.188933, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.188955, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[259.191951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.192059, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.203611, "o", "6675333333333321\\r\\n\r\n"] +[259.203959, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.20431, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[259.207597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.207858, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.219871, "o", "7b226d6574616461\\r\\n\r\n"] +[259.220053, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.220182, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[259.223675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.223745, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.223891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.235868, "o", "6666666666666666\\r\\n\r\n"] +[259.236076, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.2363, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[259.24017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.240362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.252653, "o", "0029705666ff3a8b\\r\\n\r\n"] +[259.252874, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.253229, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[259.256897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.257073, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.265249, "o", "d80b40a5e9\\r\\n\r\n"] +[259.265721, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[259.269986, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.270188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.275589, "o", "015151\\r\\n\r\n"] +[259.275849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.278231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.278299, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.289539, "o", "d80bd80bbfa5e9\\r\\n\r\n"] +[259.289867, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547648 (current time 26.7989131855)\r\n"] +[259.292669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.292858, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.304678, "o", "6675333333333321\\r\\n\r\n"] +[259.304802, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.305088, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[259.307957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.308138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.319892, "o", "6666666666666666\\r\\n\r\n"] +[259.320047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.32008, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[259.323405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.328458, "o", "015151\\r\\n\r\n"] +[259.328751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.328827, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.330564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.330764, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.336107, "o", "015151\\r\\n\r\n"] +[259.336355, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.336601, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.339418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.339472, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.344606, "o", "015151\\r\\n\r\n"] +[259.345035, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.346926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.347133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.35277, "o", "015151\\r\\n\r\n"] +[259.353, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.356176, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.356308, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.361612, "o", "015151\\r\\n\r\n"] +[259.36191, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.362002, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.363767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.363971, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.364273, "o", "\\r\\n\r\n"] +[259.364614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.364652, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.366775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.367144, "o", "\\r\\n\r\n"] +[259.367532, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.367577, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.37065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.370972, "o", "\\r\\n\r\n"] +[259.371541, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.373653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.374001, "o", "\\r\\n\r\n"] +[259.374486, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.376075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.380098, "o", "5151\\r\\n\r\n"] +[259.38043, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[259.382034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.384658, "o", "51\\r\\n\r\n"] +[259.385029, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[259.388082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.388518, "o", "\\r\\n\r\n"] +[259.389027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.390936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.391198, "o", "\\r\\n\r\n"] +[259.391716, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.393291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.393611, "o", "\\r\\n\r\n"] +[259.394068, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.395471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.3955, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.39586, "o", "\\r\\n\r\n"] +[259.396289, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.397727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.398046, "o", "\\r\\n\r\n"] +[259.398553, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.400814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.401144, "o", "\\r\\n\r\n"] +[259.401634, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.404576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.40494, "o", "\\r\\n\r\n"] +[259.405467, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.4055, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.407494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.407535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.407836, "o", "\\r\\n\r\n"] +[259.408316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.408349, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[259.409962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.409989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.4276, "o", "015151\\r\\n\r\n"] +[259.428646, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.428773, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.431517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.431655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.437354, "o", "015151\\r\\n\r\n"] +[259.437648, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.437915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.440715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.446411, "o", "085151\\r\\n\r\n"] +[259.446733, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[259.448491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.454506, "o", "015151\\r\\n\r\n"] +[259.454723, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.454851, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.454923, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[259.457844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.457868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.473898, "o", "acacacacacacacac\\r\\n\r\n"] +[259.474381, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994822225 (current time 26.798978611)\r\n"] +[259.476825, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.477035, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.489789, "o", "a886617963000000\\r\\n\r\n"] +[259.490168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990705 (current time 26.798961763)\r\n"] +[259.49281, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.492874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.505186, "o", "6363636363556363\\r\\n\r\n"] +[259.505487, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499761 (current time 26.7989610725)\r\n"] +[259.508569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.521302, "o", "51357fff800034ff\\r\\n\r\n"] +[259.52152, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.521744, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941585 (current time 26.798966675)\r\n"] +[259.525069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.536807, "o", "3031323334353637\\r\\n\r\n"] +[259.53704, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[259.540382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.540534, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.554709, "o", "327a7b7b7b7b7b7b\\r\\n\r\n"] +[259.554953, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.555095, "o", "[tsffs info] Cancelling event with next time 2.9994918145 (current time 26.798969019)\r\n"] +[259.558018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.558138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.56334, "o", "47b051\\r\\n\r\n"] +[259.563656, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.56379, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832875 (current time 26.798677546)\r\n"] +[259.565546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.565657, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.577961, "o", "c3c3383838383838\\r\\n\r\n"] +[259.578414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973455 (current time 26.798963488)\r\n"] +[259.580649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.580854, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.592904, "o", "3030323333343536\\r\\n\r\n"] +[259.593141, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.593332, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500378 (current time 26.7989604555)\r\n"] +[259.595682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.595724, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.595797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.605642, "o", "1b1b1b1bd2a5\\r\\n\r\n"] +[259.606108, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996073635 (current time 26.79885347)\r\n"] +[259.608725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.608858, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.609147, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.612732, "o", "4230\\r\\n\r\n"] +[259.613044, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.613102, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413595 (current time 26.798619474)\r\n"] +[259.614912, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.615081, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.627539, "o", "e0383031696e20ff\\r\\n\r\n"] +[259.628086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953915 (current time 26.798965442)\r\n"] +[259.630331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.630431, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.630548, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.642307, "o", "5151513031323334\\r\\n\r\n"] +[259.642571, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.642954, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004565 (current time 26.798960377)\r\n"] +[259.645372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.657666, "o", "b7ff00517a1e1fb7\\r\\n\r\n"] +[259.657959, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492049 (current time 26.7989687845)\r\n"] +[259.660643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.660873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.672452, "o", "3031303132333435\\r\\n\r\n"] +[259.672665, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.672873, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005375 (current time 26.798960296)\r\n"] +[259.675193, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.675422, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.687212, "o", "3839616263646566\\r\\n\r\n"] +[259.687462, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.687562, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996025 (current time 26.798961231)\r\n"] +[259.690645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.690799, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.696014, "o", "2451ae\\r\\n\r\n"] +[259.696349, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.696478, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821475 (current time 26.798678686)\r\n"] +[259.698087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.698113, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.698332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.70996, "o", "0151010101010101\\r\\n\r\n"] +[259.710286, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.710519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995011975 (current time 26.798959636)\r\n"] +[259.712726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.712907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.724586, "o", "303132333435362b\\r\\n\r\n"] +[259.724946, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992445 (current time 26.798961589)\r\n"] +[259.727371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.727625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.732639, "o", "000051\\r\\n\r\n"] +[259.733015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.733304, "o", "[tsffs info] Cancelling event with next time 2.999784765 (current time 26.7986760685)\r\n"] +[259.736575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.736738, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.736941, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.748836, "o", "3535352f352f3535\\r\\n\r\n"] +[259.749038, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.749275, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976475 (current time 26.798963186)\r\n"] +[259.752963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.753116, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.753311, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.765437, "o", "340100b0b0b0b0b0\\r\\n\r\n"] +[259.765677, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495361 (current time 26.7989654725)\r\n"] +[259.769621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.769698, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.769938, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.781736, "o", "50515d3321723334\\r\\n\r\n"] +[259.782105, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499118 (current time 26.7989617155)\r\n"] +[259.785634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.785793, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.785907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.797697, "o", "2b30313233343536\\r\\n\r\n"] +[259.79802, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992445 (current time 26.798961589)\r\n"] +[259.801216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.801285, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.801479, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.808019, "o", "01515201\\r\\n\r\n"] +[259.808454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997278525 (current time 26.798732981)\r\n"] +[259.810698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.810821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.82186, "o", "ab71af5151af01\\r\\n\r\n"] +[259.822195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.822351, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995503285 (current time 26.798910505)\r\n"] +[259.824832, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.825085, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.836639, "o", "0151510151515151\\r\\n\r\n"] +[259.836895, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.837252, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005725 (current time 26.798960261)\r\n"] +[259.839971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.840035, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.851688, "o", "4141737373737373\\r\\n\r\n"] +[259.851935, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.85224, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997935 (current time 26.79896104)\r\n"] +[259.855268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.855367, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.855675, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.868287, "o", "d6d6d6d6d6d6d6d6\\r\\n\r\n"] +[259.868519, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904065 (current time 26.798970427)\r\n"] +[259.872024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.872144, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.884074, "o", "0101010101010101\\r\\n\r\n"] +[259.88426, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.88466, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[259.88813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.888336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.900317, "o", "64010000007432e1\\r\\n\r\n"] +[259.900725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995855 (current time 26.798961248)\r\n"] +[259.904691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.904903, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.916518, "o", "3031323334353637\\r\\n\r\n"] +[259.916942, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[259.917096, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[259.920558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.920839, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.932685, "o", "3031323334353637\\r\\n\r\n"] +[259.932936, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.933345, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[259.937161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.937342, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.950271, "o", "0d230cee0d230cf0\\r\\n\r\n"] +[259.950797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994924835 (current time 26.79896835)\r\n"] +[259.954518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.954599, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.95469, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.967186, "o", "ff667567ff667567\\r\\n\r\n"] +[259.967441, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.967765, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945315 (current time 26.798966302)\r\n"] +[259.970664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.970786, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.982771, "o", "000041414141be41\\r\\n\r\n"] +[259.983044, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.983254, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984455 (current time 26.798962388)\r\n"] +[259.98699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[259.98718, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[259.98741, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.991348, "o", "5163\\r\\n\r\n"] +[259.991618, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.991816, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412085 (current time 26.798619625)\r\n"] +[259.99385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[259.993956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[259.999076, "o", "d80130\\r\\n\r\n"] +[259.999443, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[259.999632, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783371 (current time 26.7986774625)\r\n"] +[260.003136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.003307, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.003582, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.015168, "o", "8787878787878787\\r\\n\r\n"] +[260.015566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986465 (current time 26.798962187)\r\n"] +[260.019349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.019594, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.032073, "o", "30e6ca591a303232\\r\\n\r\n"] +[260.032482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957535 (current time 26.79896508)\r\n"] +[260.036461, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.036613, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.036818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.047348, "o", "566632333c3536\\r\\n\r\n"] +[260.047568, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.047733, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555657 (current time 26.7989051765)\r\n"] +[260.05072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.050873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.060119, "o", "1222222222d8\\r\\n\r\n"] +[260.060448, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.060663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996129545 (current time 26.798847879)\r\n"] +[260.062868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.063088, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.075386, "o", "781878007f363134\\r\\n\r\n"] +[260.075818, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986335 (current time 26.7989622)\r\n"] +[260.078167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.078275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.090383, "o", "0151303132333435\\r\\n\r\n"] +[260.090806, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[260.09511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.095186, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.10057, "o", "010151\\r\\n\r\n"] +[260.101035, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[260.101221, "o", "[tsffs info] Cancelling event with next time 2.9997847 (current time 26.7986761335)\r\n"] +[260.104928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.105139, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.105322, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.109165, "o", "5251\\r\\n\r\n"] +[260.10955, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.109752, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412535 (current time 26.79861958)\r\n"] +[260.11187, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.111881, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.11234, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.124202, "o", "8484848484848484\\r\\n\r\n"] +[260.124531, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.124861, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992705 (current time 26.798961563)\r\n"] +[260.12725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.127422, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.139885, "o", "ff0027c1c1646630\\r\\n\r\n"] +[260.140039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955925 (current time 26.798965241)\r\n"] +[260.142862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.143215, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.155206, "o", "5145515151515151\\r\\n\r\n"] +[260.155578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[260.158839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.158922, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.1591, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.161655, "o", "00\\r\\n\r\n"] +[260.162041, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998982585 (current time 26.798562575)\r\n"] +[260.163983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.164214, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.175917, "o", "0101023031323334\\r\\n\r\n"] +[260.176238, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.176446, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008095 (current time 26.798960024)\r\n"] +[260.179353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.179662, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.191836, "o", "8181ff6635660000\\r\\n\r\n"] +[260.192214, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.192449, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977395 (current time 26.798963094)\r\n"] +[260.196003, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.196399, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.202212, "o", "a6a6a6\\r\\n\r\n"] +[260.202485, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.202673, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780928 (current time 26.7986799055)\r\n"] +[260.206471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.206655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.21064, "o", "5151\\r\\n\r\n"] +[260.211027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[260.213466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.22549, "o", "5952325252525252\\r\\n\r\n"] +[260.225758, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[260.225955, "o", "[tsffs info] Cancelling event with next time 2.9995000285 (current time 26.798960805)\r\n"] +[260.228749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.241014, "o", "0005ffff05515130\\r\\n\r\n"] +[260.241466, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957235 (current time 26.79896511)\r\n"] +[260.244659, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.257458, "o", "0000020003ffffaf\\r\\n\r\n"] +[260.257866, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493745 (current time 26.7989670885)\r\n"] +[260.261004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.273526, "o", "6969696938396162\\r\\n\r\n"] +[260.273881, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991725 (current time 26.798961661)\r\n"] +[260.277095, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.282398, "o", "640032\\r\\n\r\n"] +[260.282874, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784545 (current time 26.7986762885)\r\n"] +[260.287901, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.288163, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.301055, "o", "87aa5287aa798787\\r\\n\r\n"] +[260.301348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494799 (current time 26.7989660345)\r\n"] +[260.305069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.305318, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.305507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.317384, "o", "6566313233343536\\r\\n\r\n"] +[260.317686, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.318026, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500015 (current time 26.7989608185)\r\n"] +[260.321586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.321865, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.321878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.333747, "o", "000e9e3000323334\\r\\n\r\n"] +[260.334121, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.33431, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498261 (current time 26.7989625725)\r\n"] +[260.33793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.338126, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.338313, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.340835, "o", "7d\\r\\n\r\n"] +[260.34125, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.341483, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968315 (current time 26.798564002)\r\n"] +[260.343394, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.343745, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.347498, "o", "83af\\r\\n\r\n"] +[260.347802, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.347813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838833 (current time 26.7986220005)\r\n"] +[260.349943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.350023, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.355682, "o", "32335f\\r\\n\r\n"] +[260.355872, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.356112, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783205 (current time 26.7986776285)\r\n"] +[260.358486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.370252, "o", "44307f3132333435\\r\\n\r\n"] +[260.370727, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990485 (current time 26.798961785)\r\n"] +[260.373692, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.37389, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.385454, "o", "0166303132333435\\r\\n\r\n"] +[260.385775, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.385964, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004005 (current time 26.798960433)\r\n"] +[260.38909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.389307, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.401969, "o", "be4141be4141412f\\r\\n\r\n"] +[260.402317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.402525, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494605 (current time 26.7989662285)\r\n"] +[260.405918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.406108, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.418832, "o", "36363665cb62cd34\\r\\n\r\n"] +[260.419022, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.419318, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495337 (current time 26.7989654965)\r\n"] +[260.422844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.423038, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.426967, "o", "4040\\r\\n\r\n"] +[260.42721, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[260.427533, "o", "[tsffs info] Cancelling event with next time 2.9998413935 (current time 26.79861944)\r\n"] +[260.429162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.429538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.441562, "o", "d0d0d0d066660000\\r\\n\r\n"] +[260.441986, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959945 (current time 26.798964839)\r\n"] +[260.444689, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.444827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.453768, "o", "015151014151\\r\\n\r\n"] +[260.454112, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.454322, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99961425 (current time 26.7988465835)\r\n"] +[260.457332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.4575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.463947, "o", "a5e95151\\r\\n\r\n"] +[260.464274, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.464461, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997251305 (current time 26.798735703)\r\n"] +[260.466599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.466725, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.478606, "o", "a2a23031e9323300\\r\\n\r\n"] +[260.478938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.479071, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971275 (current time 26.798963706)\r\n"] +[260.481441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.481548, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.48677, "o", "786465\\r\\n\r\n"] +[260.487047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.487237, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784039 (current time 26.7986767945)\r\n"] +[260.489976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.501736, "o", "3031323334353636\\r\\n\r\n"] +[260.502061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500277 (current time 26.7989605565)\r\n"] +[260.505567, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.505729, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.517557, "o", "140b141414141414\\r\\n\r\n"] +[260.517835, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499463 (current time 26.7989613705)\r\n"] +[260.521899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.522059, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.522216, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.526235, "o", "ff64\\r\\n\r\n"] +[260.526599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998387375 (current time 26.798622096)\r\n"] +[260.528613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.528626, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.541232, "o", "ffffffe2ff000030\\r\\n\r\n"] +[260.541553, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897385 (current time 26.798971095)\r\n"] +[260.544111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.544212, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.556132, "o", "0000303132333031\\r\\n\r\n"] +[260.556506, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500917 (current time 26.7989599165)\r\n"] +[260.559031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.559122, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.571639, "o", "b1b1b1b1b0010100\\r\\n\r\n"] +[260.571971, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.57218, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495375 (current time 26.7989654585)\r\n"] +[260.574926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.575058, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.58687, "o", "3066666600020b35\\r\\n\r\n"] +[260.58742, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.587516, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991655 (current time 26.798961668)\r\n"] +[260.590724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.590903, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.590968, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.603493, "o", "7a62ff01ff284178\\r\\n\r\n"] +[260.603893, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940285 (current time 26.798966805)\r\n"] +[260.607043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.607321, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.6198, "o", "67bf6e662178ef00\\r\\n\r\n"] +[260.620188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939965 (current time 26.798966837)\r\n"] +[260.623939, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.624061, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.635993, "o", "4141413031323334\\r\\n\r\n"] +[260.636285, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.636491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[260.639875, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.640133, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.647806, "o", "0100000134\\r\\n\r\n"] +[260.648279, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[260.648466, "o", "[tsffs info] Cancelling event with next time 2.999671345 (current time 26.7987894885)\r\n"] +[260.651656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.651846, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.664106, "o", "6666666651660100\\r\\n\r\n"] +[260.664339, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499924 (current time 26.7989609095)\r\n"] +[260.668068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.680882, "o", "414b666666667ffc\\r\\n\r\n"] +[260.681199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494959 (current time 26.7989658745)\r\n"] +[260.685138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.685269, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.697263, "o", "0151010101010101\\r\\n\r\n"] +[260.697554, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995011975 (current time 26.798959636)\r\n"] +[260.700931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.701037, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.701098, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.712973, "o", "3031323334353637\\r\\n\r\n"] +[260.713298, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[260.715603, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.715904, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.723812, "o", "0151515130\\r\\n\r\n"] +[260.724393, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996710035 (current time 26.79878983)\r\n"] +[260.726673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.738565, "o", "7a323339e1696969\\r\\n\r\n"] +[260.739, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497225 (current time 26.7989636085)\r\n"] +[260.74296, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.743256, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.74342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.755535, "o", "400000ff9c664160\\r\\n\r\n"] +[260.756012, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496851 (current time 26.7989639825)\r\n"] +[260.759012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.759238, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.771268, "o", "20d0f320314a3132\\r\\n\r\n"] +[260.771509, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[260.771536, "o", "[tsffs info] Cancelling event with next time 2.999497204 (current time 26.7989636295)\r\n"] +[260.774812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.787511, "o", "fed3d3d3d3d3205b\\r\\n\r\n"] +[260.787694, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909745 (current time 26.798969859)\r\n"] +[260.791021, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.791232, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.802528, "o", "ffa5e966666601\\r\\n\r\n"] +[260.80269, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.803024, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551922 (current time 26.7989089115)\r\n"] +[260.806272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.811538, "o", "fe5170\\r\\n\r\n"] +[260.811887, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782005 (current time 26.7986788285)\r\n"] +[260.813698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.813829, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.82418, "o", "6f010160000100\\r\\n\r\n"] +[260.824347, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.824358, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999556556 (current time 26.7989042775)\r\n"] +[260.827086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.832166, "o", "015068\\r\\n\r\n"] +[260.832539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784428 (current time 26.7986764055)\r\n"] +[260.836371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.8365, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.836654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.841806, "o", "303130\\r\\n\r\n"] +[260.842125, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.842138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784656 (current time 26.7986761775)\r\n"] +[260.844403, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.844538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.856496, "o", "b0af454545454545\\r\\n\r\n"] +[260.85686, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.856874, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949655 (current time 26.7989642835)\r\n"] +[260.859509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.859649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.872155, "o", "dafafbf8010c0101\\r\\n\r\n"] +[260.872514, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913245 (current time 26.798969509)\r\n"] +[260.875042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.875261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.887937, "o", "b0d80bd80bbfa5c8\\r\\n\r\n"] +[260.888387, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489851 (current time 26.7989709825)\r\n"] +[260.891192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.891282, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.89806, "o", "af01af81\\r\\n\r\n"] +[260.898373, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723021 (current time 26.7987378125)\r\n"] +[260.901484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[260.901565, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[260.901754, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.913558, "o", "3000013334353637\\r\\n\r\n"] +[260.913836, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004575 (current time 26.798960376)\r\n"] +[260.916601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.916666, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.928468, "o", "4709090966666600\\r\\n\r\n"] +[260.928816, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.928955, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949977 (current time 26.7989610635)\r\n"] +[260.931347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.943153, "o", "3334353536373839\\r\\n\r\n"] +[260.943491, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499799 (current time 26.7989610345)\r\n"] +[260.946108, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.946246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.95839, "o", "bb32629c6465696e\\r\\n\r\n"] +[260.958579, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[260.9588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495081 (current time 26.7989657525)\r\n"] +[260.961341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.961448, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.973065, "o", "0151303132333435\\r\\n\r\n"] +[260.973417, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[260.973535, "o", "[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[260.975985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.976095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.978461, "o", "30\\r\\n\r\n"] +[260.978796, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981805 (current time 26.798562653)\r\n"] +[260.980439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[260.992958, "o", "d6d6d6d5d6d6d6d6\\r\\n\r\n"] +[260.993303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490428 (current time 26.7989704055)\r\n"] +[260.99561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[260.995753, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.003468, "o", "0066669902\\r\\n\r\n"] +[261.003808, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670507 (current time 26.7987903265)\r\n"] +[261.006761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.011864, "o", "546851\\r\\n\r\n"] +[261.01219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842045 (current time 26.798676629)\r\n"] +[261.013955, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.026408, "o", "d5d5d5d5d5d5d5d5\\r\\n\r\n"] +[261.026706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[261.029213, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.040928, "o", "5366663031323341\\r\\n\r\n"] +[261.04134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001855 (current time 26.798960648)\r\n"] +[261.043723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.055346, "o", "1313303132333435\\r\\n\r\n"] +[261.055798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500505 (current time 26.7989603285)\r\n"] +[261.058304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.070162, "o", "3838383838383838\\r\\n\r\n"] +[261.070347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994345 (current time 26.798961399)\r\n"] +[261.073298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.085015, "o", "0000404141414125\\r\\n\r\n"] +[261.085265, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007805 (current time 26.798960053)\r\n"] +[261.088638, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.088794, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.10047, "o", "3030303030303030\\r\\n\r\n"] +[261.100819, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[261.104244, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.104305, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.116112, "o", "4141414166303132\\r\\n\r\n"] +[261.116458, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004445 (current time 26.798960389)\r\n"] +[261.120177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.120394, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.132261, "o", "b8007f0000080808\\r\\n\r\n"] +[261.132683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981375 (current time 26.798962696)\r\n"] +[261.136479, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.136539, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.148289, "o", "3838383838383838\\r\\n\r\n"] +[261.14869, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994345 (current time 26.798961399)\r\n"] +[261.152651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.152775, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.157037, "o", "02ff\\r\\n\r\n"] +[261.157402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838928 (current time 26.7986219055)\r\n"] +[261.159714, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.172039, "o", "080000ffffff0000\\r\\n\r\n"] +[261.172312, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493568 (current time 26.7989672655)\r\n"] +[261.17498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.181323, "o", "01525130\\r\\n\r\n"] +[261.181675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727807 (current time 26.7987330265)\r\n"] +[261.184636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.19626, "o", "3031323334343233\\r\\n\r\n"] +[261.196531, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500464 (current time 26.7989603695)\r\n"] +[261.198954, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.203019, "o", "3030\\r\\n\r\n"] +[261.203381, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414345 (current time 26.798619399)\r\n"] +[261.206056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.218162, "o", "000a09890a0a0a23\\r\\n\r\n"] +[261.218481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960805 (current time 26.798964753)\r\n"] +[261.221867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.222055, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.233972, "o", "3739616263646566\\r\\n\r\n"] +[261.234193, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996165 (current time 26.798961217)\r\n"] +[261.237854, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.238014, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.248603, "o", "01505101506b7f\\r\\n\r\n"] +[261.24908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995549485 (current time 26.798905885)\r\n"] +[261.252707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.252915, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.259805, "o", "c901af52\\r\\n\r\n"] +[261.260085, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724099 (current time 26.7987367345)\r\n"] +[261.262411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.274183, "o", "6630313233343536\\r\\n\r\n"] +[261.274603, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500205 (current time 26.7989606285)\r\n"] +[261.27714, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.288698, "o", "0151510217010101\\r\\n\r\n"] +[261.289038, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500874 (current time 26.7989599595)\r\n"] +[261.291628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.30344, "o", "32331a3536373839\\r\\n\r\n"] +[261.30383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988285 (current time 26.798962005)\r\n"] +[261.306472, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.319352, "o", "7fffff01ffffd0d0\\r\\n\r\n"] +[261.319733, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994871365 (current time 26.798973697)\r\n"] +[261.322687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.33335, "o", "6666b401a51919\\r\\n\r\n"] +[261.33356, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995545135 (current time 26.79890632)\r\n"] +[261.337338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.342813, "o", "9d9d51\\r\\n\r\n"] +[261.343039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781825 (current time 26.7986790085)\r\n"] +[261.345166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.357362, "o", "0d7f0000000d7f0d\\r\\n\r\n"] +[261.357614, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949487 (current time 26.7989659635)\r\n"] +[261.360167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.371976, "o", "0151510151515151\\r\\n\r\n"] +[261.372341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005725 (current time 26.798960261)\r\n"] +[261.374816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.38741, "o", "9e9ea2a2a2a2a2a2\\r\\n\r\n"] +[261.387791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911475 (current time 26.798969686)\r\n"] +[261.390732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.402469, "o", "0000020041303132\\r\\n\r\n"] +[261.402742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501076 (current time 26.7989597575)\r\n"] +[261.406008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.406124, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.406331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.411561, "o", "203031\\r\\n\r\n"] +[261.411857, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846795 (current time 26.798676154)\r\n"] +[261.413931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.414027, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.423519, "o", "013b1f1e1f1e\\r\\n\r\n"] +[261.423838, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996083085 (current time 26.798852525)\r\n"] +[261.426649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.426789, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.434772, "o", "8a64500064\\r\\n\r\n"] +[261.435181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999669596 (current time 26.7987912375)\r\n"] +[261.438772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.438834, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.451344, "o", "b9fbf8a030313233\\r\\n\r\n"] +[261.451484, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.451671, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944975 (current time 26.798966336)\r\n"] +[261.455241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.455513, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.466179, "o", "614b6161303132\\r\\n\r\n"] +[261.466538, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995560915 (current time 26.798904742)\r\n"] +[261.470406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.470693, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.482788, "o", "007f7f30a8323334\\r\\n\r\n"] +[261.483083, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[261.483227, "o", "[tsffs info] Cancelling event with next time 2.999496703 (current time 26.7989641305)\r\n"] +[261.487013, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.487249, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.497643, "o", "41411313131313\\r\\n\r\n"] +[261.497967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999557436 (current time 26.7989033975)\r\n"] +[261.501385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.501499, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.501743, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.514257, "o", "e9278f8f8f8f8f8f\\r\\n\r\n"] +[261.514538, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[261.514635, "o", "[tsffs info] Cancelling event with next time 2.9994908855 (current time 26.798969948)\r\n"] +[261.518105, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.518286, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.530729, "o", "b56a4ada30313219\\r\\n\r\n"] +[261.531046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946315 (current time 26.798966202)\r\n"] +[261.534541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.53473, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.534817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.546821, "o", "9e62636465666465\\r\\n\r\n"] +[261.547155, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498332 (current time 26.7989625015)\r\n"] +[261.550357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.550612, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.555938, "o", "050505\\r\\n\r\n"] +[261.556257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845475 (current time 26.798676286)\r\n"] +[261.558798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.558994, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.570824, "o", "4343434440a55151\\r\\n\r\n"] +[261.571041, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.571396, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991325 (current time 26.798961701)\r\n"] +[261.574057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.579218, "o", "012251\\r\\n\r\n"] +[261.579537, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846235 (current time 26.79867621)\r\n"] +[261.581421, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.581628, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.594019, "o", "3a3b3a3a493a3a3a\\r\\n\r\n"] +[261.594238, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492406 (current time 26.7989684275)\r\n"] +[261.596907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.604815, "o", "3137233131\\r\\n\r\n"] +[261.605256, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670868 (current time 26.7987899655)\r\n"] +[261.607722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.620012, "o", "f7f7f79341416675\\r\\n\r\n"] +[261.620237, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495987 (current time 26.7989648465)\r\n"] +[261.623007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.62313, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.636364, "o", "c6c6c6c6c6c6c6c6\\r\\n\r\n"] +[261.63669, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905305 (current time 26.798970303)\r\n"] +[261.639701, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.645241, "o", "fe0b40\\r\\n\r\n"] +[261.645577, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781038 (current time 26.7986797955)\r\n"] +[261.647515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.647706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.660464, "o", "762fc2d80bd86f3a\\r\\n\r\n"] +[261.660749, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918135 (current time 26.79896902)\r\n"] +[261.663497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.675286, "o", "1151513031323435\\r\\n\r\n"] +[261.675676, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500502 (current time 26.7989603315)\r\n"] +[261.678164, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.678474, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.690529, "o", "ffff513031323334\\r\\n\r\n"] +[261.690752, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.690961, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955555 (current time 26.798965278)\r\n"] +[261.693433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.705079, "o", "5101525130313233\\r\\n\r\n"] +[261.70546, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.70565, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005785 (current time 26.798960255)\r\n"] +[261.708106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.708173, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.720924, "o", "8e8e8e8e8e8e8ef1\\r\\n\r\n"] +[261.721167, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.721339, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489956 (current time 26.7989708775)\r\n"] +[261.7243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.724374, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.736651, "o", "f2f2401000f21f10\\r\\n\r\n"] +[261.737034, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.737167, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496007 (current time 26.7989648265)\r\n"] +[261.740028, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.74014, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.740336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.752345, "o", "2cf1303100000000\\r\\n\r\n"] +[261.752649, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.752839, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498768 (current time 26.7989620655)\r\n"] +[261.755914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.756065, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.756267, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.768825, "o", "7a69f7f4f4f000f4\\r\\n\r\n"] +[261.769166, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.769311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492863 (current time 26.7989679705)\r\n"] +[261.772537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.772707, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.772779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.785042, "o", "f3816d5141411f41\\r\\n\r\n"] +[261.785381, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.785546, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966935 (current time 26.79896414)\r\n"] +[261.788874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.788933, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.789085, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.802014, "o", "cbcbd80bd8cbcbcb\\r\\n\r\n"] +[261.802489, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.802582, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994853105 (current time 26.798975523)\r\n"] +[261.805717, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.805814, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.805907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.817765, "o", "3435363738396162\\r\\n\r\n"] +[261.817909, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.81815, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499778 (current time 26.7989610555)\r\n"] +[261.821597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.8219, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.821976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.833622, "o", "6430313233343536\\r\\n\r\n"] +[261.833975, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.834144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[261.837648, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.837778, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.837948, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.841875, "o", "0051\\r\\n\r\n"] +[261.842154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.842262, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841433 (current time 26.7986194005)\r\n"] +[261.844379, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.844543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.851288, "o", "c8d80b51\\r\\n\r\n"] +[261.851587, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.851839, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724028 (current time 26.7987368055)\r\n"] +[261.855024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.855252, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.855568, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.86722, "o", "7151517171717171\\r\\n\r\n"] +[261.867664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.867799, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000135 (current time 26.79896082)\r\n"] +[261.871075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.871224, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.871288, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.876945, "o", "2fcf2b\\r\\n\r\n"] +[261.877297, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.877379, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779768 (current time 26.7986810655)\r\n"] +[261.879477, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.879647, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.889655, "o", "ff7f0200ff7f\\r\\n\r\n"] +[261.890093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606687 (current time 26.7988541465)\r\n"] +[261.892921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.893152, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.896795, "o", "5330\\r\\n\r\n"] +[261.89717, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.897263, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413095 (current time 26.798619524)\r\n"] +[261.899021, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.899252, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.911113, "o", "214730313233341e\\r\\n\r\n"] +[261.911338, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.911451, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499255 (current time 26.7989615785)\r\n"] +[261.913857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.914015, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.926335, "o", "fff9ff1035ff6464\\r\\n\r\n"] +[261.926637, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[261.926879, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[261.927074, "o", "[tsffs info] Cancelling event with next time 2.9994915095 (current time 26.798969324)\r\n"] +[261.929452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.929645, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.932014, "o", "52\\r\\n\r\n"] +[261.932435, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898079 (current time 26.7985627545)\r\n"] +[261.935631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.935731, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.947932, "o", "ff4141fe41406175\\r\\n\r\n"] +[261.948324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495419 (current time 26.7989654145)\r\n"] +[261.952178, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[261.952308, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[261.952605, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.9581, "o", "fe3031\\r\\n\r\n"] +[261.958452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[261.958599, "o", "[tsffs info] Cancelling event with next time 2.9997821505 (current time 26.798678683)\r\n"] +[261.960903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.961048, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.973053, "o", "3434343434d8d8d8\\r\\n\r\n"] +[261.973384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496377 (current time 26.7989644565)\r\n"] +[261.976347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.976512, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[261.98895, "o", "9d9d809d9d9d9d9d\\r\\n\r\n"] +[261.989307, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[261.989429, "o", "[tsffs info] Cancelling event with next time 2.999491102 (current time 26.7989697315)\r\n"] +[261.992124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[261.992284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.004129, "o", "d938303130313233\\r\\n\r\n"] +[262.004415, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.004511, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991785 (current time 26.798961655)\r\n"] +[262.007554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.007615, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.01438, "o", "d861e9ff\\r\\n\r\n"] +[262.014686, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997225275 (current time 26.798738306)\r\n"] +[262.017971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.018103, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.023371, "o", "844551\\r\\n\r\n"] +[262.023694, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.024043, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842525 (current time 26.798676581)\r\n"] +[262.026324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.026414, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.03139, "o", "800074\\r\\n\r\n"] +[262.031865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[262.031937, "o", "[tsffs info] Cancelling event with next time 2.999784457 (current time 26.7986763765)\r\n"] +[262.034814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.034902, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.047466, "o", "7a7a696effffbe9c\\r\\n\r\n"] +[262.047889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.048092, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487915 (current time 26.7989729185)\r\n"] +[262.051329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.051533, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.063874, "o", "800065696d6d4699\\r\\n\r\n"] +[262.064234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.064448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972765 (current time 26.798963557)\r\n"] +[262.067351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.067489, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.067812, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.080359, "o", "a414fe0cdbfafbf8\\r\\n\r\n"] +[262.080659, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.080879, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994874065 (current time 26.798973427)\r\n"] +[262.083776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.083947, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.086589, "o", "70\\r\\n\r\n"] +[262.086977, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[262.087224, "o", "[tsffs info] Cancelling event with next time 2.999898082 (current time 26.7985627515)\r\n"] +[262.089757, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.089967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.101781, "o", "c9c9400066666464\\r\\n\r\n"] +[262.102188, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.102376, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497499 (current time 26.7989633345)\r\n"] +[262.106154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.106328, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.118135, "o", "33e0003830313b34\\r\\n\r\n"] +[262.11851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498233 (current time 26.7989626005)\r\n"] +[262.12217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.122352, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.136358, "o", "e9fe05d2f3a8cbf1\\r\\n\r\n"] +[262.136685, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994895385 (current time 26.798971295)\r\n"] +[262.139726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.13988, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.152222, "o", "cecf323031323334\\r\\n\r\n"] +[262.152566, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.153028, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495743 (current time 26.7989650905)\r\n"] +[262.156114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.156237, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.156286, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.169145, "o", "e8e8e8e8e8eaeaea\\r\\n\r\n"] +[262.169593, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486839 (current time 26.7989739945)\r\n"] +[262.172811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.173002, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.185031, "o", "602a60606c605160\\r\\n\r\n"] +[262.185449, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.185774, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980715 (current time 26.798962762)\r\n"] +[262.188841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.189051, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.198181, "o", "303132331235\\r\\n\r\n"] +[262.198506, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996141515 (current time 26.798846682)\r\n"] +[262.202068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.202253, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.20243, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.209099, "o", "007ff751\\r\\n\r\n"] +[262.209467, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[262.209556, "o", "[tsffs info] Cancelling event with next time 2.999725136 (current time 26.7987356975)\r\n"] +[262.211871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.212074, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.224142, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.224526, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.224829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.227167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.22734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.235511, "o", "d80b40a5e9\\r\\n\r\n"] +[262.235889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.236154, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[262.239453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.239595, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.244716, "o", "015151\\r\\n\r\n"] +[262.245097, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.245211, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[262.247059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.247184, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.258315, "o", "d80bd80bbfa5e9\\r\\n\r\n"] +[262.258662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547648 (current time 26.7989131855)\r\n"] +[262.261243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.261443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.273069, "o", "6675333333333321\\r\\n\r\n"] +[262.273415, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[262.276017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.276168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.287971, "o", "6666666666666666\\r\\n\r\n"] +[262.288258, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.28853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[262.291674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.29203, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.304622, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.30512, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.305262, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.308834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.309087, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.321707, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.322092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.322264, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.325418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.338161, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.338461, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.341579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.354252, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.354383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[262.35475, "o", "[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.357895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.358229, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.370354, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.37088, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.373955, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.374092, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.416253, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.417263, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.420304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.432282, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.432489, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.43622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.448434, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.448755, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.452594, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.464898, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.465171, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.469082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.469178, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.481461, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.481735, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.48577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.485933, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.498711, "o", "0029e7cd727bdeaf\\r\\n\r\n"] +[262.498996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.499362, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490738 (current time 26.7989700955)\r\n"] +[262.503257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.503446, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.515687, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.516128, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.520552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.520686, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.532563, "o", "6666666666666637\\r\\n\r\n"] +[262.532937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992735 (current time 26.79896156)\r\n"] +[262.537058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.537189, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.54902, "o", "111132b73211c830\\r\\n\r\n"] +[262.549456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949824 (current time 26.7989625935)\r\n"] +[262.553509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.553676, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.565541, "o", "323334353e313031\\r\\n\r\n"] +[262.56598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499258 (current time 26.7989615755)\r\n"] +[262.569762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.569848, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.582199, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.582678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.586992, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.587181, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.599108, "o", "0029715666ff0029\\r\\n\r\n"] +[262.599456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497653 (current time 26.7989631805)\r\n"] +[262.603664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.60388, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.615482, "o", "0029603030303030\\r\\n\r\n"] +[262.615785, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500772 (current time 26.7989600615)\r\n"] +[262.61999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.620043, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.632254, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.632677, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.637034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.637121, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.64957, "o", "00ff29706c66ff3a\\r\\n\r\n"] +[262.649966, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929785 (current time 26.798967855)\r\n"] +[262.654064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.654131, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.666423, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.666731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.670954, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.671032, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.683815, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.684191, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.684356, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.688192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.688344, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.700677, "o", "f237000261f2f230\\r\\n\r\n"] +[262.701006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.701161, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496941 (current time 26.7989638925)\r\n"] +[262.704685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.704859, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.717361, "o", "07c962c202000cdb\\r\\n\r\n"] +[262.717915, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994947185 (current time 26.798966115)\r\n"] +[262.721675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.721801, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.734772, "o", "7a7adecdcece3031\\r\\n\r\n"] +[262.735023, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.735213, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994886265 (current time 26.798972207)\r\n"] +[262.738888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.739006, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.751013, "o", "be30313250343536\\r\\n\r\n"] +[262.751353, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.751657, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980505 (current time 26.798962783)\r\n"] +[262.755214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.755338, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.767398, "o", "f866001014913a17\\r\\n\r\n"] +[262.767716, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.767914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979075 (current time 26.798962926)\r\n"] +[262.771543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.771694, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.771867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.784423, "o", "14fe0cdbfae6f822\\r\\n\r\n"] +[262.784797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896615 (current time 26.798971172)\r\n"] +[262.788606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.78888, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.800665, "o", "fd02323334350253\\r\\n\r\n"] +[262.801006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.801258, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498048 (current time 26.7989627855)\r\n"] +[262.804858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.804998, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.817291, "o", "0029705766ff3a8b\\r\\n\r\n"] +[262.817833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.817877, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952735 (current time 26.79896556)\r\n"] +[262.821839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[262.821879, "o", "[tsffs info] Resuming simulation\r\n"] +[262.833696, "o", "3031323334353031\\r\\n\r\n"] +[262.8341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005375 (current time 26.798960296)\r\n"] +[262.837822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.837926, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.850388, "o", "9292b4b4c5b4b4b4\\r\\n\r\n"] +[262.8508, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.850891, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931695 (current time 26.798967664)\r\n"] +[262.854483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.854592, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.854662, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.866771, "o", "002970566610008b\\r\\n\r\n"] +[262.867017, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.867374, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499142 (current time 26.7989616915)\r\n"] +[262.870996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.871288, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.871347, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.883766, "o", "0029705666ff3a8b\\r\\n\r\n"] +[262.883896, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.88444, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[262.888017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.888169, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.888373, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.899776, "o", "a5fffff4ff4dc6\\r\\n\r\n"] +[262.900325, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.900492, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995449835 (current time 26.79891585)\r\n"] +[262.904328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.90444, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.916491, "o", "3438390d62343438\\r\\n\r\n"] +[262.91661, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.916893, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498767 (current time 26.7989620665)\r\n"] +[262.920836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[262.920976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.933807, "o", "c7c7c7d8eeee3939\\r\\n\r\n"] +[262.933982, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.934344, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490194 (current time 26.7989706395)\r\n"] +[262.938356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.938427, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.951148, "o", "66ff3a8b9ec39ee7\\r\\n\r\n"] +[262.95148, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.951743, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490255 (current time 26.7989705785)\r\n"] +[262.955163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.955367, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.967419, "o", "7a0000010021c4c4\\r\\n\r\n"] +[262.967732, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[262.968101, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974345 (current time 26.798963399)\r\n"] +[262.97152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.971685, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[262.971863, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[262.983806, "o", "0029705666ff0029\\r\\n\r\n"] +[262.984135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976855 (current time 26.798963148)\r\n"] +[262.987887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[262.987917, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.000505, "o", "b86d6d6d6dd33031\\r\\n\r\n"] +[263.000924, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930845 (current time 26.798967749)\r\n"] +[263.004649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.004765, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.016786, "o", "4141414166757a66\\r\\n\r\n"] +[263.017123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988095 (current time 26.798962024)\r\n"] +[263.020849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.032853, "o", "2423242424232424\\r\\n\r\n"] +[263.033084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003995 (current time 26.798960434)\r\n"] +[263.037217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.049152, "o", "0202020202414141\\r\\n\r\n"] +[263.049405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500917 (current time 26.7989599165)\r\n"] +[263.053529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.065411, "o", "3031323334353637\\r\\n\r\n"] +[263.065796, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[263.06932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.069372, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.081278, "o", "571d303141414132\\r\\n\r\n"] +[263.081654, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499284 (current time 26.7989615495)\r\n"] +[263.085266, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.097597, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.097968, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.101155, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.113333, "o", "007f000000ff3a8b\\r\\n\r\n"] +[263.113582, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494838 (current time 26.7989659955)\r\n"] +[263.116018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.116138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.128394, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.128751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.131066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.143533, "o", "00297056fe0cdbfa\\r\\n\r\n"] +[263.143862, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921 (current time 26.7989687335)\r\n"] +[263.146415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.158184, "o", "0038303132333435\\r\\n\r\n"] +[263.158465, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004575 (current time 26.798960376)\r\n"] +[263.160988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.172796, "o", "66336641414141c8\\r\\n\r\n"] +[263.173163, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988875 (current time 26.798961946)\r\n"] +[263.175765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.18778, "o", "0029705666383a8b\\r\\n\r\n"] +[263.188161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497643 (current time 26.7989631905)\r\n"] +[263.19096, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.203339, "o", "66757a7a696e6c17\\r\\n\r\n"] +[263.203703, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[263.204204, "o", "[Stats #0] run time: 0h-0m-7s, clients: 1, corpus: 6, objectives: 0, executions: 163, exec/sec: 22.88\r\n"] +[263.204538, "o", "[Testcase #0] run time: 0h-0m-7s, clients: 1, corpus: 7, objectives: 0, executions: 579, exec/sec: 81.26\r\n"] +[263.206792, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.206943, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.21952, "o", "29a8cbf13a8b9ee5\\r\\n\r\n"] +[263.219801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905995 (current time 26.798970234)\r\n"] +[263.22289, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.223012, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.235841, "o", "ae727bdeaeaeaeae\\r\\n\r\n"] +[263.236132, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.236361, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948512 (current time 26.7989757135)\r\n"] +[263.239304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.239424, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.252159, "o", "ae727bdeaffe781b\\r\\n\r\n"] +[263.25234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.252715, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883035 (current time 26.79897253)\r\n"] +[263.255942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.256146, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.269117, "o", "f3a8cbf107c962c2\\r\\n\r\n"] +[263.269421, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.269771, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919295 (current time 26.798968904)\r\n"] +[263.272917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.273141, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.285009, "o", "66666666e5303132\\r\\n\r\n"] +[263.285288, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.285577, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986815 (current time 26.798962152)\r\n"] +[263.289025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.289188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.30143, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.30181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.302057, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.305686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.305741, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.317785, "o", "72d80b40a5414141\\r\\n\r\n"] +[263.318059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.318299, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969065 (current time 26.798963927)\r\n"] +[263.321791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.322017, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.331681, "o", "39f53cada47c\\r\\n\r\n"] +[263.331996, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996067485 (current time 26.798854085)\r\n"] +[263.335831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.335908, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.336072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.339961, "o", "3636\\r\\n\r\n"] +[263.340402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411415 (current time 26.798619692)\r\n"] +[263.342803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.342943, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.354992, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.355372, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[263.355605, "o", "[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.358147, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.358302, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.371287, "o", "c4c4c4c4c4c4c4c4\\r\\n\r\n"] +[263.371645, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909145 (current time 26.798969919)\r\n"] +[263.374553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.374644, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.387209, "o", "666e7c7c7c7c7c7c\\r\\n\r\n"] +[263.387557, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.38776, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491391 (current time 26.7989694425)\r\n"] +[263.390747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.39095, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.401052, "o", "00287fffffff\\r\\n\r\n"] +[263.401287, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.401627, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999605369 (current time 26.7988554645)\r\n"] +[263.4052, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.405392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.417987, "o", "94bf35d7b7b7b7b7\\r\\n\r\n"] +[263.418234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.418347, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491612 (current time 26.7989692215)\r\n"] +[263.421951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.422134, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.434776, "o", "7b7ba5e99ee59ee7\\r\\n\r\n"] +[263.435124, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.435305, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490157 (current time 26.7989706765)\r\n"] +[263.438837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.439024, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.452287, "o", "696e67dfdeaf696e\\r\\n\r\n"] +[263.452559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.453003, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490102 (current time 26.7989707315)\r\n"] +[263.456207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.456377, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.468479, "o", "0000000000000000\\r\\n\r\n"] +[263.468762, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.468946, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[263.472602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.472806, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.484813, "o", "0000ff3031323334\\r\\n\r\n"] +[263.485196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498321 (current time 26.7989625125)\r\n"] +[263.488846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.488938, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.501592, "o", "a5a55a5ba5a55ba5\\r\\n\r\n"] +[263.501849, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.502156, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910675 (current time 26.798969766)\r\n"] +[263.505765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.505826, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.518773, "o", "ff00ffae5a607bde\\r\\n\r\n"] +[263.519143, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[263.519338, "o", "[tsffs info] Cancelling event with next time 2.9994885365 (current time 26.798972297)\r\n"] +[263.522807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.522991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.531249, "o", "a5edf4f927\\r\\n\r\n"] +[263.531547, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996645895 (current time 26.798796244)\r\n"] +[263.534658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.547047, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.547364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.549963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.562518, "o", "4b4b4b4b33243536\\r\\n\r\n"] +[263.562738, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495642 (current time 26.7989651915)\r\n"] +[263.565067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.578154, "o", "9ee7ae727bdeaffe\\r\\n\r\n"] +[263.578424, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994869505 (current time 26.798973883)\r\n"] +[263.580872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.592901, "o", "00297031146f3a17\\r\\n\r\n"] +[263.593213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497968 (current time 26.7989628655)\r\n"] +[263.595722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.607678, "o", "002970561b03d230\\r\\n\r\n"] +[263.607971, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981645 (current time 26.798962669)\r\n"] +[263.610579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.622423, "o", "3066669967663031\\r\\n\r\n"] +[263.622654, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.622802, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499675 (current time 26.7989611585)\r\n"] +[263.625575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.625682, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.638268, "o", "f3a8cbf107c962c2\\r\\n\r\n"] +[263.638539, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.63876, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919295 (current time 26.798968904)\r\n"] +[263.64143, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.641574, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.653889, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.654186, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.654354, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.657902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.658115, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.658316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.670461, "o", "0029705666ff7bde\\r\\n\r\n"] +[263.670833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.670962, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940505 (current time 26.798966783)\r\n"] +[263.674088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.674195, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.674362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.686297, "o", "6675666659666566\\r\\n\r\n"] +[263.68659, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.686792, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499193 (current time 26.7989616405)\r\n"] +[263.689749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.689925, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[263.69012, "o", "[tsffs info] Resuming simulation\r\n"] +[263.70295, "o", "781b03d2f3a8cbf1\\r\\n\r\n"] +[263.70339, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[263.703552, "o", "[tsffs info] Cancelling event with next time 2.999492066 (current time 26.7989687675)\r\n"] +[263.706862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.70691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.719114, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.719468, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.719608, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.722816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.72298, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.723147, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.735405, "o", "00297056a566ff3a\\r\\n\r\n"] +[263.735759, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.736001, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953865 (current time 26.798965447)\r\n"] +[263.739279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.739424, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.739514, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.7515, "o", "41414166757a7a66\\r\\n\r\n"] +[263.751723, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.751917, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497579 (current time 26.7989632545)\r\n"] +[263.755251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.755389, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.767691, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.768046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.771828, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.771901, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.771966, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.783883, "o", "0205ff3031323334\\r\\n\r\n"] +[263.784225, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981415 (current time 26.798962692)\r\n"] +[263.787953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.788074, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.800128, "o", "55aa656641414141\\r\\n\r\n"] +[263.80047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.800735, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497874 (current time 26.7989629595)\r\n"] +[263.804526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[263.804648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.816551, "o", "0029705666ff3114\\r\\n\r\n"] +[263.816877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.817079, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497718 (current time 26.7989631155)\r\n"] +[263.820782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.820895, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.821075, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.832721, "o", "4040414141414141\\r\\n\r\n"] +[263.833052, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.833284, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005995 (current time 26.798960234)\r\n"] +[263.837121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.83722, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.837415, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.849685, "o", "fe781b03d2404040\\r\\n\r\n"] +[263.850178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957185 (current time 26.798965115)\r\n"] +[263.854038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.854271, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.854457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.867505, "o", "dddddddddddddddd\\r\\n\r\n"] +[263.867839, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.868, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994815745 (current time 26.798979259)\r\n"] +[263.87171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.871876, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.872086, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.884585, "o", "00ff01b6b6b6b6ac\\r\\n\r\n"] +[263.884951, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491126 (current time 26.7989697075)\r\n"] +[263.888512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.888663, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.901009, "o", "ca2970aa66223a8b\\r\\n\r\n"] +[263.901283, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.901516, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493284 (current time 26.7989675495)\r\n"] +[263.905079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.905245, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.905392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.917798, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.918133, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.918341, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.921813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.922001, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.934377, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.934625, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.93491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.938492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.938591, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.938743, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.951136, "o", "0029895666ff388b\\r\\n\r\n"] +[263.95136, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.95156, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960645 (current time 26.798964769)\r\n"] +[263.95542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.955549, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[263.955722, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.969231, "o", "ffffffffffffffff\\r\\n\r\n"] +[263.969524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.969683, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994807185 (current time 26.798980115)\r\n"] +[263.972829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.972953, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[263.98544, "o", "0029705666ff3a8b\\r\\n\r\n"] +[263.985827, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[263.986077, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[263.989352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[263.989524, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.001838, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.002118, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.002406, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.005993, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.006123, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.006189, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.018663, "o", "0029787878ff3a8b\\r\\n\r\n"] +[264.018859, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.019041, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949435 (current time 26.79896589)\r\n"] +[264.022563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.022731, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.035205, "o", "aa626262c214fe0b\\r\\n\r\n"] +[264.035496, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.035724, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493403 (current time 26.7989674305)\r\n"] +[264.039161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.039375, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.052377, "o", "4b4b4b4b219e05b0\\r\\n\r\n"] +[264.052803, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.053042, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493465 (current time 26.7989673685)\r\n"] +[264.05631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.056437, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.069162, "o", "cb6666660ff9f9fa\\r\\n\r\n"] +[264.069449, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.069678, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491426 (current time 26.7989694075)\r\n"] +[264.072996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.073091, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.07318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.08548, "o", "01c5affe78000003\\r\\n\r\n"] +[264.085733, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.085962, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946725 (current time 26.798966161)\r\n"] +[264.089383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.08954, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.089636, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.102205, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.102474, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.1027, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.106167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.106303, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.118589, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.118922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.122517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.122662, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.127904, "o", "7a0266\\r\\n\r\n"] +[264.128217, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832135 (current time 26.79867762)\r\n"] +[264.130174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.132549, "o", "10\\r\\n\r\n"] +[264.132908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[264.136392, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.136452, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.148177, "o", "1616303131043031\\r\\n\r\n"] +[264.148437, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.148608, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006385 (current time 26.798960195)\r\n"] +[264.152106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.152244, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.15238, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.165226, "o", "dbfafbf8223e2f14\\r\\n\r\n"] +[264.165495, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.165781, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896835 (current time 26.79897115)\r\n"] +[264.17, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.170189, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.170331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.182594, "o", "0029705666ff7a8b\\r\\n\r\n"] +[264.182943, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.183097, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495205 (current time 26.7989656285)\r\n"] +[264.18781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.187879, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.200523, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.200801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.204627, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.204761, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.217011, "o", "0066666666664e4e\\r\\n\r\n"] +[264.217311, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.2175, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973615 (current time 26.798963472)\r\n"] +[264.221199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.22138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.234284, "o", "00f870dbdbdbdbdb\\r\\n\r\n"] +[264.234603, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[264.234932, "o", "[tsffs info] Cancelling event with next time 2.9994876465 (current time 26.798973187)\r\n"] +[264.238582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.238667, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.250949, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.251154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.251415, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.255159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.255327, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.267427, "o", "cb65646462646462\\r\\n\r\n"] +[264.267739, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.267916, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974915 (current time 26.798963342)\r\n"] +[264.271491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.271562, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.271654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.283926, "o", "39616263646c6c6c\\r\\n\r\n"] +[264.284135, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.284343, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496291 (current time 26.7989645425)\r\n"] +[264.287976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.288187, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.301255, "o", "7bdeaffe781b03d2\\r\\n\r\n"] +[264.301719, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.301887, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489616 (current time 26.7989712175)\r\n"] +[264.30538, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.305547, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.31805, "o", "0029705666ff0400\\r\\n\r\n"] +[264.31829, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.318672, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497861 (current time 26.7989629725)\r\n"] +[264.322106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.322229, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.335024, "o", "ff3a8c9ee59ee7ae\\r\\n\r\n"] +[264.335283, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.335487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487963 (current time 26.7989728705)\r\n"] +[264.338973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.339088, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.339168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.351961, "o", "5666e5a8a8a8a8a8\\r\\n\r\n"] +[264.352211, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.352438, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492736 (current time 26.7989680975)\r\n"] +[264.355852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.356004, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.356073, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.367946, "o", "4141414141416621\\r\\n\r\n"] +[264.36821, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.368302, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004165 (current time 26.798960417)\r\n"] +[264.37202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.372161, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.372289, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.384869, "o", "a080ffa4a4a4a4a0\\r\\n\r\n"] +[264.385226, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[264.385316, "o", "[tsffs info] Cancelling event with next time 2.99949128 (current time 26.7989695535)\r\n"] +[264.388984, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.389051, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.389172, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.401645, "o", "0029705666df3a8b\\r\\n\r\n"] +[264.401982, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.402081, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495357 (current time 26.7989654765)\r\n"] +[264.405913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.406003, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.418112, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.418451, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.418779, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.422352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.422405, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.422627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.434899, "o", "00297080ffff3a8b\\r\\n\r\n"] +[264.435267, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930695 (current time 26.798967764)\r\n"] +[264.438988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.439086, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.439312, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.450911, "o", "6263212121212121\\r\\n\r\n"] +[264.451251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.45139, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500635 (current time 26.7989601985)\r\n"] +[264.455172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.455386, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.455467, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.467843, "o", "00f200807f7f7f7f\\r\\n\r\n"] +[264.468088, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.468338, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941115 (current time 26.798966722)\r\n"] +[264.472059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.472211, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.484891, "o", "0029705665ff3a8b\\r\\n\r\n"] +[264.485254, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.485428, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495325 (current time 26.7989655085)\r\n"] +[264.488931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.489039, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.501297, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.501592, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.501777, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.50546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.505563, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.505719, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.518919, "o", "ff3a8b9ee59ee7ae\\r\\n\r\n"] +[264.519152, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.519337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994879955 (current time 26.798972838)\r\n"] +[264.522508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.522756, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.53498, "o", "0029705666ff3a30\\r\\n\r\n"] +[264.535147, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.53548, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966185 (current time 26.798964215)\r\n"] +[264.538787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.539026, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.551826, "o", "eb29705466ff3a8b\\r\\n\r\n"] +[264.552158, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.552626, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928695 (current time 26.798967964)\r\n"] +[264.555581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.555648, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.555862, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.568838, "o", "a8f107c9ffffffff\\r\\n\r\n"] +[264.569206, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.569397, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994868075 (current time 26.798974026)\r\n"] +[264.572663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.572878, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.585609, "o", "e7e7e7e7e7e7e78b\\r\\n\r\n"] +[264.585917, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899975 (current time 26.798970836)\r\n"] +[264.589422, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.589531, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.589623, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.60259, "o", "eded323234323334\\r\\n\r\n"] +[264.602833, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495616 (current time 26.7989652175)\r\n"] +[264.606264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.606403, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.618544, "o", "ff00474747474747\\r\\n\r\n"] +[264.618842, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.619017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973245 (current time 26.798963509)\r\n"] +[264.622414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.622513, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.622715, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.629272, "o", "f203e364\\r\\n\r\n"] +[264.629608, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997252155 (current time 26.798735618)\r\n"] +[264.631789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.631983, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.644605, "o", "01f107c99d3e14fe\\r\\n\r\n"] +[264.644872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930405 (current time 26.798967793)\r\n"] +[264.647247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.647342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.659977, "o", "e8affe781b03d2c9\\r\\n\r\n"] +[264.660356, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906005 (current time 26.798970233)\r\n"] +[264.66301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.675094, "o", "0029705666fe3a30\\r\\n\r\n"] +[264.675495, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496643 (current time 26.7989641905)\r\n"] +[264.67792, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.689903, "o", "000845ba4545f800\\r\\n\r\n"] +[264.690228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968395 (current time 26.798963994)\r\n"] +[264.692883, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.692894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.704723, "o", "0031313131313131\\r\\n\r\n"] +[264.705107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500809 (current time 26.7989600245)\r\n"] +[264.707929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.720658, "o", "1f1f1f800035ffff\\r\\n\r\n"] +[264.72101, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919635 (current time 26.79896887)\r\n"] +[264.724167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.724273, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.736607, "o", "0021705666dc35fb\\r\\n\r\n"] +[264.73682, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.73704, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955595 (current time 26.798965274)\r\n"] +[264.739965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.740154, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.752337, "o", "34cb36370fe50034\\r\\n\r\n"] +[264.752519, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.752923, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956045 (current time 26.798965229)\r\n"] +[264.756129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.756342, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.756427, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.768831, "o", "0b29576d6de80bd8\\r\\n\r\n"] +[264.769235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[264.769474, "o", "[tsffs info] Cancelling event with next time 2.999492897 (current time 26.7989679365)\r\n"] +[264.772856, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.773035, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.785887, "o", "7fffffff35353535\\r\\n\r\n"] +[264.786233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[264.786387, "o", "[tsffs info] Cancelling event with next time 2.999491466 (current time 26.7989693675)\r\n"] +[264.789524, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.789795, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.802251, "o", "0029705699ff398b\\r\\n\r\n"] +[264.802608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.802884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496123 (current time 26.7989647105)\r\n"] +[264.806094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.806263, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.819337, "o", "ffffffffff6d6d6d\\r\\n\r\n"] +[264.819735, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994843515 (current time 26.798976482)\r\n"] +[264.822887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.834666, "o", "6465664154414141\\r\\n\r\n"] +[264.835084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000255 (current time 26.798960808)\r\n"] +[264.838483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.838695, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.850761, "o", "41414166757a7a69\\r\\n\r\n"] +[264.851152, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497506 (current time 26.7989633275)\r\n"] +[264.854642, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.854737, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.854909, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.866917, "o", "3536373839611a1a\\r\\n\r\n"] +[264.867238, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977205 (current time 26.798963113)\r\n"] +[264.870919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.871074, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.883566, "o", "0029705666ff3a8b\\r\\n\r\n"] +[264.883877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.884246, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[264.887775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.887908, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[264.888089, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.896377, "o", "d80b40a5e9\\r\\n\r\n"] +[264.896746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[264.899505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.899799, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.905289, "o", "015151\\r\\n\r\n"] +[264.905619, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[264.908487, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.908594, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.919871, "o", "d80bd80bbfa5e9\\r\\n\r\n"] +[264.920154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.920466, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547648 (current time 26.7989131855)\r\n"] +[264.923457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.92356, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.93532, "o", "6675333333333321\\r\\n\r\n"] +[264.935595, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.935871, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[264.939283, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.939366, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.951245, "o", "6666666666666666\\r\\n\r\n"] +[264.95155, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[264.955581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.955655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.967928, "o", "7b226d6574616461\\r\\n\r\n"] +[264.96822, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[264.971131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[264.971442, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[264.984165, "o", "66757a7a696e6c17\\r\\n\r\n"] +[264.984541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[264.984673, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[264.988454, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[264.988599, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.000924, "o", "66757a7a696e6c17\\r\\n\r\n"] +[265.001366, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[265.005082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.005181, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.005393, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.010513, "o", "015151\\r\\n\r\n"] +[265.010824, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.01098, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.012943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.013079, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.018246, "o", "005359\\r\\n\r\n"] +[265.018633, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.018932, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784375 (current time 26.7986764585)\r\n"] +[265.02205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.022329, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.027448, "o", "015359\\r\\n\r\n"] +[265.027771, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.028032, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997843425 (current time 26.798676491)\r\n"] +[265.029905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.029939, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.035358, "o", "005151\\r\\n\r\n"] +[265.035816, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[265.039004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.039156, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.039379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.044486, "o", "015351\\r\\n\r\n"] +[265.044776, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845295 (current time 26.798676304)\r\n"] +[265.046667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.046818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.05211, "o", "015159\\r\\n\r\n"] +[265.052447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.052487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[265.052509, "o", "[tsffs info] Cancelling event with next time 2.999784388 (current time 26.7986764455)\r\n"] +[265.056175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.05622, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.056375, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.07303, "o", "015151\\r\\n\r\n"] +[265.07418, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.074347, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.079168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.07928, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.079455, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.096193, "o", "015151\\r\\n\r\n"] +[265.097228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.10106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.10113, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.101499, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.118205, "o", "015151\\r\\n\r\n"] +[265.119214, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.122783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.128285, "o", "085151\\r\\n\r\n"] +[265.128622, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[265.13063, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.13076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.136241, "o", "015151\\r\\n\r\n"] +[265.136581, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.136809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.139736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.139826, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.144915, "o", "015151\\r\\n\r\n"] +[265.145196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.147262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.147444, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.152742, "o", "015151\\r\\n\r\n"] +[265.153167, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.155975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.156175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.161211, "o", "015151\\r\\n\r\n"] +[265.161526, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.163343, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.163487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.168688, "o", "015151\\r\\n\r\n"] +[265.168919, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.169336, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.172325, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.172485, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.177644, "o", "015151\\r\\n\r\n"] +[265.177956, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.179983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.185379, "o", "015151\\r\\n\r\n"] +[265.185683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.189011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.18908, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.19422, "o", "015151\\r\\n\r\n"] +[265.194598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.196589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.201903, "o", "015151\\r\\n\r\n"] +[265.202297, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.205565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.205729, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.210811, "o", "015151\\r\\n\r\n"] +[265.21117, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.213075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.218297, "o", "015151\\r\\n\r\n"] +[265.218681, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[265.218799, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.222115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.222373, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.227539, "o", "055151\\r\\n\r\n"] +[265.227875, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844825 (current time 26.798676351)\r\n"] +[265.229698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.23506, "o", "015151\\r\\n\r\n"] +[265.235433, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.238784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.239024, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.24404, "o", "015151\\r\\n\r\n"] +[265.244321, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[265.246341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.251614, "o", "135151\\r\\n\r\n"] +[265.251974, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784497 (current time 26.7986763365)\r\n"] +[265.255481, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.267605, "o", "f0ff033031323355\\r\\n\r\n"] +[265.2679, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968655 (current time 26.798963968)\r\n"] +[265.27148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.271598, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.276865, "o", "51ae01\\r\\n\r\n"] +[265.277189, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[265.279211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.290944, "o", "66000038c7490075\\r\\n\r\n"] +[265.29127, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989865 (current time 26.798961847)\r\n"] +[265.293745, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.306349, "o", "8e8e8e8e8e8e8e8e\\r\\n\r\n"] +[265.306709, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898225 (current time 26.798971011)\r\n"] +[265.30926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.321905, "o", "ffff0b0b0b0b0b0b\\r\\n\r\n"] +[265.32221, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994891515 (current time 26.798971682)\r\n"] +[265.324929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.337312, "o", "0d65fe3e21ff8001\\r\\n\r\n"] +[265.337695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932015 (current time 26.798967632)\r\n"] +[265.34071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.340798, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.352786, "o", "6630cbf130313233\\r\\n\r\n"] +[265.353166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496957 (current time 26.7989638765)\r\n"] +[265.356167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.368131, "o", "7474747475757575\\r\\n\r\n"] +[265.368385, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.36861, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992765 (current time 26.798961557)\r\n"] +[265.372197, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.372296, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.376598, "o", "ffff\\r\\n\r\n"] +[265.3769, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998363745 (current time 26.798624459)\r\n"] +[265.37894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.391808, "o", "f0f0f0f0f0f0f0f0\\r\\n\r\n"] +[265.392199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[265.394872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.394927, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.407573, "o", "ffff3400de333441\\r\\n\r\n"] +[265.407878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931965 (current time 26.798967637)\r\n"] +[265.410662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.422993, "o", "fb08223e31146f8d\\r\\n\r\n"] +[265.423201, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494286 (current time 26.7989665475)\r\n"] +[265.425963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.438003, "o", "3738396141be2411\\r\\n\r\n"] +[265.438372, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497752 (current time 26.7989630815)\r\n"] +[265.441331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.453737, "o", "9cbcbc36a530313e\\r\\n\r\n"] +[265.454064, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921725 (current time 26.798968661)\r\n"] +[265.457375, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.457495, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.469341, "o", "3031323334353637\\r\\n\r\n"] +[265.469608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.469821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[265.47292, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.473263, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.482237, "o", "e60002303031\\r\\n\r\n"] +[265.482545, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.482658, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996131715 (current time 26.798847662)\r\n"] +[265.486489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.486559, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.486589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.498327, "o", "6675303031324141\\r\\n\r\n"] +[265.498609, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.498643, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950032 (current time 26.7989605135)\r\n"] +[265.502608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.502695, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.514835, "o", "3132333435363738\\r\\n\r\n"] +[265.515114, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.515156, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[265.518864, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.519044, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.528426, "o", "52525252a350\\r\\n\r\n"] +[265.5287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996128125 (current time 26.798848021)\r\n"] +[265.530902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.543102, "o", "696ed81f406c9494\\r\\n\r\n"] +[265.543434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494897 (current time 26.7989659365)\r\n"] +[265.546059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.557887, "o", "8080806565656565\\r\\n\r\n"] +[265.558186, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996535 (current time 26.79896118)\r\n"] +[265.56079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.56331, "o", "4b\\r\\n\r\n"] +[265.563662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969575 (current time 26.798563876)\r\n"] +[265.565503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.569745, "o", "fad2\\r\\n\r\n"] +[265.570063, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998377965 (current time 26.798623037)\r\n"] +[265.572978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.578286, "o", "fe5140\\r\\n\r\n"] +[265.578585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782083 (current time 26.7986787505)\r\n"] +[265.580588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.592519, "o", "41414166757a7a69\\r\\n\r\n"] +[265.592738, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497506 (current time 26.7989633275)\r\n"] +[265.595416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.595579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.599287, "o", "3031\\r\\n\r\n"] +[265.599644, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[265.603351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.60745, "o", "af51\\r\\n\r\n"] +[265.607731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838944 (current time 26.7986218895)\r\n"] +[265.609961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.622175, "o", "223e31146f3ad814\\r\\n\r\n"] +[265.622616, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495589 (current time 26.7989652445)\r\n"] +[265.625335, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.628118, "o", "9b\\r\\n\r\n"] +[265.628599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968365 (current time 26.798563997)\r\n"] +[265.630723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.63082, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.642947, "o", "676767676767670b\\r\\n\r\n"] +[265.643439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498119 (current time 26.7989627145)\r\n"] +[265.646118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.653108, "o", "afff4000\\r\\n\r\n"] +[265.653596, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.6538, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723059 (current time 26.7987377745)\r\n"] +[265.65643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.660236, "o", "3031\\r\\n\r\n"] +[265.660813, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[265.662471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.662625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.674755, "o", "e9e99566757a7a34\\r\\n\r\n"] +[265.675148, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494746 (current time 26.7989660875)\r\n"] +[265.677844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.677973, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.690214, "o", "bed031323334cec9\\r\\n\r\n"] +[265.690598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933055 (current time 26.798967528)\r\n"] +[265.69331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.693491, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.699857, "o", "02515151\\r\\n\r\n"] +[265.700224, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.700649, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997277275 (current time 26.798733106)\r\n"] +[265.704133, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.716249, "o", "ff20513031323334\\r\\n\r\n"] +[265.716464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.716857, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498109 (current time 26.7989627245)\r\n"] +[265.720541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.720694, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.726205, "o", "ff1099\\r\\n\r\n"] +[265.726587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781843 (current time 26.7986789905)\r\n"] +[265.728778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.728879, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.741079, "o", "757a7a696e672163\\r\\n\r\n"] +[265.741535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961315 (current time 26.798964702)\r\n"] +[265.744004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.74415, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.756479, "o", "0151e1e1e1e1e1e1\\r\\n\r\n"] +[265.756842, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935205 (current time 26.798967313)\r\n"] +[265.759433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.759579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.763285, "o", "5152\\r\\n\r\n"] +[265.763754, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412535 (current time 26.79861958)\r\n"] +[265.765568, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.777401, "o", "4747533031323334\\r\\n\r\n"] +[265.77773, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500176 (current time 26.7989606575)\r\n"] +[265.780331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.780462, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.786083, "o", "cb3134\\r\\n\r\n"] +[265.786272, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.786553, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782198 (current time 26.7986786355)\r\n"] +[265.789806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.789897, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.802019, "o", "0030313233343536\\r\\n\r\n"] +[265.802376, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.802508, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[265.805976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.806074, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.811262, "o", "015150\\r\\n\r\n"] +[265.811635, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[265.813488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.818985, "o", "c7007f\\r\\n\r\n"] +[265.819257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997820305 (current time 26.798678803)\r\n"] +[265.822373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.834807, "o", "31c0c0c0c0c0c0c0\\r\\n\r\n"] +[265.835139, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492827 (current time 26.7989680065)\r\n"] +[265.838841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.851282, "o", "f36166ab0b0b3839\\r\\n\r\n"] +[265.851614, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949437 (current time 26.7989664635)\r\n"] +[265.855152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.855228, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.867522, "o", "6666666666f11ac9\\r\\n\r\n"] +[265.867885, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961055 (current time 26.798964728)\r\n"] +[265.871654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.871728, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.884298, "o", "ab30313233343536\\r\\n\r\n"] +[265.884778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.884907, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498114 (current time 26.7989627195)\r\n"] +[265.88843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.888639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.901095, "o", "3031323334353637\\r\\n\r\n"] +[265.901434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[265.905264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.905299, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.918312, "o", "9a9a6969699a9a8b\\r\\n\r\n"] +[265.918835, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934735 (current time 26.79896736)\r\n"] +[265.92239, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.922575, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.933122, "o", "00298f56215151\\r\\n\r\n"] +[265.933557, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995558085 (current time 26.798905025)\r\n"] +[265.937411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.937545, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.937735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.950196, "o", "d269696e6721d266\\r\\n\r\n"] +[265.950482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.950633, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961115 (current time 26.798964722)\r\n"] +[265.954377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[265.954451, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[265.954721, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.961106, "o", "00010000\\r\\n\r\n"] +[265.961371, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[265.96145, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999728222 (current time 26.7987326115)\r\n"] +[265.963643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.963778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.975359, "o", "6600000000000000\\r\\n\r\n"] +[265.975729, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501286 (current time 26.7989595475)\r\n"] +[265.978393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.978508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[265.990335, "o", "666600ff64665151\\r\\n\r\n"] +[265.990685, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497532 (current time 26.7989633015)\r\n"] +[265.993162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[265.993306, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.005524, "o", "ff35369a9a313738\\r\\n\r\n"] +[266.005843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951045 (current time 26.798965729)\r\n"] +[266.00855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.02037, "o", "4141414141414141\\r\\n\r\n"] +[266.020666, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[266.02365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.023899, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.037081, "o", "ed8920e000f23a8b\\r\\n\r\n"] +[266.037458, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[266.037551, "o", "[tsffs info] Cancelling event with next time 2.999493294 (current time 26.7989675395)\r\n"] +[266.040583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.044446, "o", "2424\\r\\n\r\n"] +[266.044849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412845 (current time 26.798619549)\r\n"] +[266.04659, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.058667, "o", "1000303132333435\\r\\n\r\n"] +[266.058966, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006935 (current time 26.79896014)\r\n"] +[266.061617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.061813, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.074339, "o", "4b5d4141414d4141\\r\\n\r\n"] +[266.074518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496902 (current time 26.7989639315)\r\n"] +[266.07707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.077193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.08796, "o", "515151659a6565\\r\\n\r\n"] +[266.088312, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.088407, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555559 (current time 26.7989052745)\r\n"] +[266.091208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.091551, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.103645, "o", "63ca36373839617f\\r\\n\r\n"] +[266.103861, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962335 (current time 26.7989646)\r\n"] +[266.107002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.119656, "o", "cececece307f3233\\r\\n\r\n"] +[266.119927, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.120163, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896775 (current time 26.798971156)\r\n"] +[266.123301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.123417, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.136772, "o", "a100007fffa1a1a1\\r\\n\r\n"] +[266.137227, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492624 (current time 26.7989682095)\r\n"] +[266.140281, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.140459, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.145604, "o", "1f5171\\r\\n\r\n"] +[266.145974, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832195 (current time 26.798677614)\r\n"] +[266.147886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.159612, "o", "0151513031323334\\r\\n\r\n"] +[266.159969, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.160082, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[266.162616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.16272, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.175121, "o", "16d86675ecec7a7a\\r\\n\r\n"] +[266.175516, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491616 (current time 26.7989692175)\r\n"] +[266.178082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.178226, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.19019, "o", "6f3a176035363961\\r\\n\r\n"] +[266.190554, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976095 (current time 26.798963224)\r\n"] +[266.193045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.193234, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.204933, "o", "0000000000666600\\r\\n\r\n"] +[266.205249, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[266.2054, "o", "[tsffs info] Cancelling event with next time 2.9995009965 (current time 26.798959837)\r\n"] +[266.208104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.208338, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.220555, "o", "015101a5a5a5a5a5\\r\\n\r\n"] +[266.220905, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[266.220999, "o", "[tsffs info] Cancelling event with next time 2.99949481 (current time 26.7989660235)\r\n"] +[266.224274, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.224305, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.236664, "o", "cbf107c962781b03\\r\\n\r\n"] +[266.237003, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942965 (current time 26.798966537)\r\n"] +[266.239958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.240107, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.245172, "o", "710151\\r\\n\r\n"] +[266.245504, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.245604, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845235 (current time 26.79867631)\r\n"] +[266.247458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.247624, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.250178, "o", "08\\r\\n\r\n"] +[266.250503, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.250686, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898068 (current time 26.7985627655)\r\n"] +[266.254162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.254465, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.258194, "o", "5130\\r\\n\r\n"] +[266.258606, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841355 (current time 26.7986194785)\r\n"] +[266.260819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.261037, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.272897, "o", "346637353430ff80\\r\\n\r\n"] +[266.273257, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.273662, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976025 (current time 26.798963231)\r\n"] +[266.275812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.275995, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.287917, "o", "85858585847b6730\\r\\n\r\n"] +[266.288335, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.288591, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982515 (current time 26.798962582)\r\n"] +[266.291299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.291502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.303108, "o", "0151718282828282\\r\\n\r\n"] +[266.303506, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.303889, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999585 (current time 26.798960875)\r\n"] +[266.306623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.30677, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.309118, "o", "64\\r\\n\r\n"] +[266.309526, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980135 (current time 26.79856282)\r\n"] +[266.311311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.323858, "o", "647f7fff59a7a7ff\\r\\n\r\n"] +[266.324099, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490093 (current time 26.7989707405)\r\n"] +[266.326573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.338315, "o", "3230d93031323334\\r\\n\r\n"] +[266.33864, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.338817, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992485 (current time 26.798961585)\r\n"] +[266.34136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.341507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.353122, "o", "0101010101010101\\r\\n\r\n"] +[266.353416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.353595, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[266.356535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.356617, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.361802, "o", "015101\\r\\n\r\n"] +[266.362091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.362193, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847 (current time 26.7986761335)\r\n"] +[266.363929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.364045, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.376484, "o", "95ff0d2f3d2f391b\\r\\n\r\n"] +[266.376776, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.376915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918015 (current time 26.798969032)\r\n"] +[266.379411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.379616, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.391852, "o", "7a69ff7f21414141\\r\\n\r\n"] +[266.392426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952865 (current time 26.798965547)\r\n"] +[266.394952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.39508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.406966, "o", "807f413f2041417a\\r\\n\r\n"] +[266.40735, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.407463, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967205 (current time 26.798964113)\r\n"] +[266.410137, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.410258, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.421917, "o", "3030313233343536\\r\\n\r\n"] +[266.422337, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[266.424994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.42509, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.437626, "o", "d7516f6e6f6f6f6f\\r\\n\r\n"] +[266.43792, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913195 (current time 26.798969514)\r\n"] +[266.441178, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.44128, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.453486, "o", "6822781b03d2f3a8\\r\\n\r\n"] +[266.453988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495394 (current time 26.7989654395)\r\n"] +[266.457115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.45722, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.470008, "o", "01e7ae727bdeaffe\\r\\n\r\n"] +[266.470364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488417 (current time 26.7989724165)\r\n"] +[266.47365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.473852, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.480339, "o", "016b0173\\r\\n\r\n"] +[266.480687, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.480812, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726586 (current time 26.7987342475)\r\n"] +[266.482907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.483042, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.494868, "o", "30313233cb353637\\r\\n\r\n"] +[266.495282, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497986 (current time 26.7989628475)\r\n"] +[266.497639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.497782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.510989, "o", "cececececececece\\r\\n\r\n"] +[266.511267, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994814665 (current time 26.798979367)\r\n"] +[266.51393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.514051, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.5271, "o", "ffcbdacbcbcbcbcb\\r\\n\r\n"] +[266.527413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999481914 (current time 26.7989789195)\r\n"] +[266.530069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.530183, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.542356, "o", "eb14383961141438\\r\\n\r\n"] +[266.54266, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497694 (current time 26.7989631395)\r\n"] +[266.545326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.545431, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.557922, "o", "7d7d7d7d7d7d7d7d\\r\\n\r\n"] +[266.558257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901665 (current time 26.798970667)\r\n"] +[266.560935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.561039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.57027, "o", "015130ce3233\\r\\n\r\n"] +[266.570626, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.57073, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996118475 (current time 26.798848986)\r\n"] +[266.573646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.573748, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.585652, "o", "2525252525fa2525\\r\\n\r\n"] +[266.586148, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.586167, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497837 (current time 26.7989629965)\r\n"] +[266.58943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.589534, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.594686, "o", "015151\\r\\n\r\n"] +[266.595111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[266.597039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.597148, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.602398, "o", "018e51\\r\\n\r\n"] +[266.602782, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832625 (current time 26.798677571)\r\n"] +[266.606033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.606153, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.60993, "o", "4e50\\r\\n\r\n"] +[266.610284, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.610385, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400875 (current time 26.798620746)\r\n"] +[266.612272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.612469, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.623984, "o", "3031323334353637\\r\\n\r\n"] +[266.624327, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.624503, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[266.627056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.627177, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.627302, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.632883, "o", "ca41bf\\r\\n\r\n"] +[266.633388, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779865 (current time 26.7986809685)\r\n"] +[266.637029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.637096, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.637368, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.649077, "o", "0151303132333435\\r\\n\r\n"] +[266.649431, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[266.65348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.653701, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.653873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.665744, "o", "30ce323334353637\\r\\n\r\n"] +[266.666165, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.666351, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497843 (current time 26.7989629905)\r\n"] +[266.670398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.670602, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.670637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.682902, "o", "61629cffff800050\\r\\n\r\n"] +[266.683516, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942165 (current time 26.798966617)\r\n"] +[266.687337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.687445, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.687618, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.692716, "o", "005101\\r\\n\r\n"] +[266.693106, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.693252, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847325 (current time 26.798676101)\r\n"] +[266.695315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.695485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.707818, "o", "4f4f4f4f62214f4f\\r\\n\r\n"] +[266.708117, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.708314, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928795 (current time 26.798967954)\r\n"] +[266.710718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.710746, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.710859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.722456, "o", "4040404051404001\\r\\n\r\n"] +[266.72273, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.722913, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008015 (current time 26.798960032)\r\n"] +[266.725483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.730747, "o", "2f2f51\\r\\n\r\n"] +[266.731075, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782048 (current time 26.7986787855)\r\n"] +[266.733048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.744867, "o", "b010494949494949\\r\\n\r\n"] +[266.74522, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984395 (current time 26.798962394)\r\n"] +[266.747517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.750204, "o", "9f\\r\\n\r\n"] +[266.750784, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896735 (current time 26.7985640985)\r\n"] +[266.753951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.765521, "o", "0151303132333435\\r\\n\r\n"] +[266.765933, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.766132, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[266.769764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.769916, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.770155, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.781836, "o", "6262623366666666\\r\\n\r\n"] +[266.782259, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.782465, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996515 (current time 26.798961182)\r\n"] +[266.786144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.78632, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.786415, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.799341, "o", "51acacacacacacac\\r\\n\r\n"] +[266.799889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.800151, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484485 (current time 26.7989763485)\r\n"] +[266.803685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.804002, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.816109, "o", "36c936363636a6a6\\r\\n\r\n"] +[266.816629, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963425 (current time 26.798964491)\r\n"] +[266.820554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.820743, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.833492, "o", "f87e3e31146f3a17\\r\\n\r\n"] +[266.833948, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[266.834138, "o", "[tsffs info] Cancelling event with next time 2.9994941105 (current time 26.798966723)\r\n"] +[266.837769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.837857, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.837984, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.849964, "o", "206600ff64645120\\r\\n\r\n"] +[266.85028, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.850527, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497925 (current time 26.7989629085)\r\n"] +[266.854166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.854257, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.866972, "o", "f60bf6f6f6f6f6f6\\r\\n\r\n"] +[266.86722, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902265 (current time 26.798970607)\r\n"] +[266.870862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.870938, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.87507, "o", "41ff\\r\\n\r\n"] +[266.875358, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388515 (current time 26.798621982)\r\n"] +[266.87742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.889093, "o", "0120516301205151\\r\\n\r\n"] +[266.889475, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007115 (current time 26.798960122)\r\n"] +[266.892162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.892312, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.896107, "o", "2b65\\r\\n\r\n"] +[266.89641, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.896581, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840062 (current time 26.7986207715)\r\n"] +[266.898443, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.89857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.91036, "o", "66602602e1404186\\r\\n\r\n"] +[266.910584, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.910732, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990055 (current time 26.798961828)\r\n"] +[266.913238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.919874, "o", "37c03333\\r\\n\r\n"] +[266.920312, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726453 (current time 26.7987343805)\r\n"] +[266.923247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.92336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.935156, "o", "ff00112030202020\\r\\n\r\n"] +[266.935588, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986135 (current time 26.79896222)\r\n"] +[266.938915, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.939149, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.950966, "o", "4141476300297056\\r\\n\r\n"] +[266.951333, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[266.951371, "o", "[tsffs info] Cancelling event with next time 2.999500099 (current time 26.7989607345)\r\n"] +[266.954715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.954881, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.955014, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.967144, "o", "adad323374353031\\r\\n\r\n"] +[266.967571, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.967731, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957565 (current time 26.798965077)\r\n"] +[266.971529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.971746, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.971918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.983764, "o", "32e8030000217436\\r\\n\r\n"] +[266.984015, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.984268, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993155 (current time 26.798961518)\r\n"] +[266.987753, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[266.987978, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[266.988223, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[266.993275, "o", "515159\\r\\n\r\n"] +[266.993647, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[266.993784, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784263 (current time 26.7986765705)\r\n"] +[266.995845, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[266.995994, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.008485, "o", "01aea5e7e7e7e7d3\\r\\n\r\n"] +[267.008754, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.008964, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490623 (current time 26.7989702105)\r\n"] +[267.011496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.01166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.023396, "o", "5151c65173515151\\r\\n\r\n"] +[267.023591, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.023739, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990015 (current time 26.798961832)\r\n"] +[267.026182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.026339, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.038753, "o", "d6d6d64a4a4a4a4a\\r\\n\r\n"] +[267.039198, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490974 (current time 26.7989698595)\r\n"] +[267.041875, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.04205, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.054739, "o", "3716140000feffff\\r\\n\r\n"] +[267.055097, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.055236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932185 (current time 26.798967615)\r\n"] +[267.059232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.059416, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.071872, "o", "007f1af9f906f9e3\\r\\n\r\n"] +[267.072283, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949281 (current time 26.7989680235)\r\n"] +[267.075494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.075687, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.079478, "o", "0150\\r\\n\r\n"] +[267.079847, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841433 (current time 26.7986194005)\r\n"] +[267.081675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.094831, "o", "9f9fbd42bdbdbd00\\r\\n\r\n"] +[267.095093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994885705 (current time 26.798972263)\r\n"] +[267.097521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.097613, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.107138, "o", "4143d02fd0d0\\r\\n\r\n"] +[267.107468, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609501 (current time 26.7988513325)\r\n"] +[267.109963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.110062, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.122696, "o", "e81c0be8120bd80b\\r\\n\r\n"] +[267.122989, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922395 (current time 26.798968594)\r\n"] +[267.125519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.125622, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.137386, "o", "3373727272727230\\r\\n\r\n"] +[267.137699, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.137797, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499939 (current time 26.7989608945)\r\n"] +[267.140736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.153443, "o", "cacaca80d0d0d0d0\\r\\n\r\n"] +[267.153862, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948913 (current time 26.7989717035)\r\n"] +[267.15688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.169573, "o", "0151e8e8e8e8e8e8\\r\\n\r\n"] +[267.170026, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925725 (current time 26.798968261)\r\n"] +[267.173231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.173434, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.186249, "o", "a2777fffffffa1b6\\r\\n\r\n"] +[267.186682, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488119 (current time 26.7989727145)\r\n"] +[267.190009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.202559, "o", "baba4500000400ba\\r\\n\r\n"] +[267.202854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494098 (current time 26.7989667355)\r\n"] +[267.206354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.211898, "o", "7b7b7b\\r\\n\r\n"] +[267.21222, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997807855 (current time 26.798680048)\r\n"] +[267.2141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.214196, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.217963, "o", "5151\\r\\n\r\n"] +[267.218273, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[267.22145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.221527, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.233145, "o", "3031323354353636\\r\\n\r\n"] +[267.233572, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950023 (current time 26.7989606035)\r\n"] +[267.23716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.237324, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.24413, "o", "f4af5151\\r\\n\r\n"] +[267.244482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724048 (current time 26.7987367855)\r\n"] +[267.246618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.258332, "o", "4951515151515151\\r\\n\r\n"] +[267.258853, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500162 (current time 26.7989606715)\r\n"] +[267.261152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.261291, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.272876, "o", "0151303132333435\\r\\n\r\n"] +[267.273258, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[267.275772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.275906, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.288058, "o", "20004e4e4e4e4e4e\\r\\n\r\n"] +[267.288594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949326 (current time 26.7989675735)\r\n"] +[267.29142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.296678, "o", "ff0000\\r\\n\r\n"] +[267.296968, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823145 (current time 26.798678519)\r\n"] +[267.298793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.303074, "o", "bebe\\r\\n\r\n"] +[267.30346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998366265 (current time 26.798624207)\r\n"] +[267.306172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.318079, "o", "9d80303132333435\\r\\n\r\n"] +[267.318326, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990655 (current time 26.798961768)\r\n"] +[267.321587, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.332843, "o", "696debec1aec1a\\r\\n\r\n"] +[267.333192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995465415 (current time 26.798914292)\r\n"] +[267.337114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.337342, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.348944, "o", "3334643635383031\\r\\n\r\n"] +[267.349287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001205 (current time 26.798960713)\r\n"] +[267.352889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.353063, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.358549, "o", "000f27\\r\\n\r\n"] +[267.358884, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833875 (current time 26.798677446)\r\n"] +[267.361054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.364879, "o", "5155\\r\\n\r\n"] +[267.365235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841183 (current time 26.7986196505)\r\n"] +[267.367903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.380194, "o", "92e9f2003092e9f2\\r\\n\r\n"] +[267.380529, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952415 (current time 26.798965592)\r\n"] +[267.382828, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.395592, "o", "01ae727bdeaffe78\\r\\n\r\n"] +[267.395943, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489506 (current time 26.7989713275)\r\n"] +[267.398273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.410786, "o", "cd70757a86696e7a\\r\\n\r\n"] +[267.411048, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493767 (current time 26.7989670665)\r\n"] +[267.413415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.425795, "o", "b3b3b390b3b3b348\\r\\n\r\n"] +[267.426117, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493391 (current time 26.7989674425)\r\n"] +[267.42862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.436621, "o", "5151a5e901\\r\\n\r\n"] +[267.43694, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.437189, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966843 (current time 26.7987924035)\r\n"] +[267.440079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.440246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.452638, "o", "976675c50b33cde8\\r\\n\r\n"] +[267.45299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493918 (current time 26.7989669155)\r\n"] +[267.456442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.456667, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[267.456765, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.468595, "o", "3334353637383961\\r\\n\r\n"] +[267.468973, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[267.472672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.484601, "o", "6465664141414141\\r\\n\r\n"] +[267.484869, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.485122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500118 (current time 26.7989607155)\r\n"] +[267.488619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.488835, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.501139, "o", "7605ffff05b10080\\r\\n\r\n"] +[267.501634, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494368 (current time 26.7989664655)\r\n"] +[267.504985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.505148, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.51649, "o", "edcdd5d5d546d5\\r\\n\r\n"] +[267.516843, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.516988, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547488 (current time 26.7989133455)\r\n"] +[267.520682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.520869, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.532659, "o", "3031323334353637\\r\\n\r\n"] +[267.533143, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.533241, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[267.537048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.537119, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[267.537379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.548856, "o", "0000004032333435\\r\\n\r\n"] +[267.549219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500816 (current time 26.7989600175)\r\n"] +[267.552964, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.553113, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.565124, "o", "5e5e303132333435\\r\\n\r\n"] +[267.565459, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497917 (current time 26.7989629165)\r\n"] +[267.568861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.57344, "o", "feae\\r\\n\r\n"] +[267.573636, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998365425 (current time 26.798624291)\r\n"] +[267.576044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.579858, "o", "5552\\r\\n\r\n"] +[267.58023, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841161 (current time 26.7986196725)\r\n"] +[267.581839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.587552, "o", "ffa76e\\r\\n\r\n"] +[267.587907, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779527 (current time 26.7986813065)\r\n"] +[267.590482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.602983, "o", "2000ff6e626e6e6e\\r\\n\r\n"] +[267.603416, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[267.603597, "o", "[tsffs info] Cancelling event with next time 2.999493015 (current time 26.7989678185)\r\n"] +[267.606431, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.619045, "o", "f107c962c2ebfe0c\\r\\n\r\n"] +[267.619485, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490824 (current time 26.7989700095)\r\n"] +[267.622814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.622937, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.63198, "o", "303137383961\\r\\n\r\n"] +[267.632425, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996137305 (current time 26.798847103)\r\n"] +[267.635769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.635904, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.64794, "o", "6263646566eb4141\\r\\n\r\n"] +[267.648321, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976035 (current time 26.79896323)\r\n"] +[267.651334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.663032, "o", "3839616263643031\\r\\n\r\n"] +[267.663408, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999785 (current time 26.798960855)\r\n"] +[267.665669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.665865, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.668398, "o", "02\\r\\n\r\n"] +[267.668751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898204 (current time 26.7985626295)\r\n"] +[267.671638, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.674034, "o", "01\\r\\n\r\n"] +[267.674551, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[267.676747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.676883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.68956, "o", "7a696e6c17deaffe\\r\\n\r\n"] +[267.689906, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.690137, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489236 (current time 26.7989715975)\r\n"] +[267.692684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.692886, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.70585, "o", "3f3f3f3f3f3f3f41\\r\\n\r\n"] +[267.706337, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917775 (current time 26.798969056)\r\n"] +[267.708984, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.709074, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.712978, "o", "00fb\\r\\n\r\n"] +[267.713342, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839084 (current time 26.7986217495)\r\n"] +[267.715083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.715224, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.727091, "o", "51515151af515151\\r\\n\r\n"] +[267.727539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497991 (current time 26.7989628425)\r\n"] +[267.729841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.730004, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.741707, "o", "3031323334353637\\r\\n\r\n"] +[267.742103, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[267.742234, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[267.744757, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.744932, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.748847, "o", "639d\\r\\n\r\n"] +[267.749215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839896 (current time 26.7986209375)\r\n"] +[267.752079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.752253, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.764537, "o", "62c21466757a7a69\\r\\n\r\n"] +[267.764872, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.765019, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962775 (current time 26.798964556)\r\n"] +[267.768086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.768115, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[267.76828, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.779235, "o", "ca33263935bf66\\r\\n\r\n"] +[267.779526, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.779748, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995521735 (current time 26.79890866)\r\n"] +[267.781852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.782068, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.79374, "o", "3831323334303132\\r\\n\r\n"] +[267.79418, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.794234, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004175 (current time 26.798960416)\r\n"] +[267.796611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.796753, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.802658, "o", "64fe51\\r\\n\r\n"] +[267.803, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.803201, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997819365 (current time 26.798678897)\r\n"] +[267.806267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.818483, "o", "3031323334351a37\\r\\n\r\n"] +[267.818842, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[267.818942, "o", "[tsffs info] Cancelling event with next time 2.999499254 (current time 26.7989615795)\r\n"] +[267.822491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.82261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.835426, "o", "deded80dbfa5de01\\r\\n\r\n"] +[267.835815, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.835985, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487452 (current time 26.7989733815)\r\n"] +[267.839503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.839596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.851514, "o", "01666600ff646400\\r\\n\r\n"] +[267.851848, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.852052, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497866 (current time 26.7989629675)\r\n"] +[267.855272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.855349, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[267.855553, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.864633, "o", "3466006e6767\\r\\n\r\n"] +[267.865025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.865183, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612377 (current time 26.7988484565)\r\n"] +[267.868311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.880198, "o", "2222223132383961\\r\\n\r\n"] +[267.880534, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002675 (current time 26.798960566)\r\n"] +[267.882965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.883006, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.895525, "o", "3a4ae14a00010000\\r\\n\r\n"] +[267.895771, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496408 (current time 26.7989644255)\r\n"] +[267.898231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.898372, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.910028, "o", "05667533331a3333\\r\\n\r\n"] +[267.910319, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.910569, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990215 (current time 26.798961812)\r\n"] +[267.913113, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.913302, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.925466, "o", "fe02020235d80b40\\r\\n\r\n"] +[267.925868, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958905 (current time 26.798964943)\r\n"] +[267.928085, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.928272, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.940781, "o", "1f1f1f1f1f1f1f1f\\r\\n\r\n"] +[267.941195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.941337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908905 (current time 26.798969943)\r\n"] +[267.944064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.944136, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.956283, "o", "66757a7a696e6c17\\r\\n\r\n"] +[267.956706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[267.956952, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[267.959458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.959639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.976138, "o", "015151\\r\\n\r\n"] +[267.977201, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.977455, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[267.980054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.980283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.985459, "o", "015151\\r\\n\r\n"] +[267.985814, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.986009, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[267.989203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[267.989401, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[267.989599, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[267.994625, "o", "015151\\r\\n\r\n"] +[267.995067, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[267.995244, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[267.997427, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[267.997525, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.002702, "o", "015151\\r\\n\r\n"] +[268.003059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.003321, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.006279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.006488, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.011446, "o", "015151\\r\\n\r\n"] +[268.011862, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.012059, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.013916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.013962, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.01915, "o", "015151\\r\\n\r\n"] +[268.019504, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.019687, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.022626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.022788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.027755, "o", "015151\\r\\n\r\n"] +[268.028081, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.028278, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.030117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.030257, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.035402, "o", "015151\\r\\n\r\n"] +[268.035775, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.036013, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.038923, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.03912, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.044206, "o", "085151\\r\\n\r\n"] +[268.044576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.044752, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[268.046665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.046786, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.051945, "o", "015151\\r\\n\r\n"] +[268.052316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.052563, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.055533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.055638, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.060751, "o", "015151\\r\\n\r\n"] +[268.06118, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.061382, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.063151, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.063289, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.068471, "o", "015151\\r\\n\r\n"] +[268.068798, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.068978, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.072057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.072287, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.077525, "o", "015151\\r\\n\r\n"] +[268.077838, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.078017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.079949, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.080165, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.085272, "o", "015151\\r\\n\r\n"] +[268.085653, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.085844, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.088875, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.089157, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.094151, "o", "015151\\r\\n\r\n"] +[268.094553, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.096603, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.096864, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.102168, "o", "015151\\r\\n\r\n"] +[268.102401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.102606, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.105684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.10592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.110943, "o", "015151\\r\\n\r\n"] +[268.111255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.111428, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.113301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.113457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.118571, "o", "015151\\r\\n\r\n"] +[268.11891, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.11912, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.12217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.122476, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.12742, "o", "015151\\r\\n\r\n"] +[268.127758, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.127955, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.129837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.129967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.135133, "o", "015151\\r\\n\r\n"] +[268.135513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.135647, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.13864, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.13869, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.138907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.143955, "o", "015151\\r\\n\r\n"] +[268.14426, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.144545, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.146458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.146522, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.151613, "o", "135151\\r\\n\r\n"] +[268.151998, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.152331, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784497 (current time 26.7986763365)\r\n"] +[268.155481, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.155605, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.16053, "o", "015151\\r\\n\r\n"] +[268.160865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[268.16299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.163232, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.167345, "o", "d81a\\r\\n\r\n"] +[268.167597, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.167845, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838932 (current time 26.7986219015)\r\n"] +[268.170949, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.171199, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.176304, "o", "510100\\r\\n\r\n"] +[268.176637, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.176648, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847325 (current time 26.798676101)\r\n"] +[268.17899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.179276, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.190872, "o", "8788887288885151\\r\\n\r\n"] +[268.191538, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.191713, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991455 (current time 26.798961688)\r\n"] +[268.193852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.194055, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.205744, "o", "33342c3637383031\\r\\n\r\n"] +[268.206088, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990245 (current time 26.798961809)\r\n"] +[268.2087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.208877, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.220452, "o", "4141412130313233\\r\\n\r\n"] +[268.220801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006255 (current time 26.798960208)\r\n"] +[268.223926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.224091, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.226429, "o", "49\\r\\n\r\n"] +[268.226777, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998979405 (current time 26.798562893)\r\n"] +[268.228778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.228906, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.232608, "o", "3031\\r\\n\r\n"] +[268.232958, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.233204, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[268.236536, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.236726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.240548, "o", "0030\\r\\n\r\n"] +[268.240875, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.241073, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415125 (current time 26.798619321)\r\n"] +[268.243192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.24334, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.255026, "o", "7a30313233343536\\r\\n\r\n"] +[268.255452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949914 (current time 26.7989616935)\r\n"] +[268.258102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.258284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.270303, "o", "3334353637383636\\r\\n\r\n"] +[268.27058, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.270762, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998505 (current time 26.798960983)\r\n"] +[268.273739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.27385, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.286213, "o", "3637383961626364\\r\\n\r\n"] +[268.286488, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.286758, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499688 (current time 26.7989611455)\r\n"] +[268.289652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.289773, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.301685, "o", "1b51303132333435\\r\\n\r\n"] +[268.301993, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.302213, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993335 (current time 26.7989615)\r\n"] +[268.305349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.305434, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.30553, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.31739, "o", "4241575757575757\\r\\n\r\n"] +[268.317691, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.317887, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994895 (current time 26.798961344)\r\n"] +[268.321236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.32139, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.333603, "o", "fd3031fd30313230\\r\\n\r\n"] +[268.334006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.334204, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495886 (current time 26.7989649475)\r\n"] +[268.337624, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.337829, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.337966, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.340472, "o", "b8\\r\\n\r\n"] +[268.341004, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968655 (current time 26.798563968)\r\n"] +[268.343062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.354981, "o", "343536493937309c\\r\\n\r\n"] +[268.355225, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.355426, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498576 (current time 26.7989622575)\r\n"] +[268.358127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.358196, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.362007, "o", "6645\\r\\n\r\n"] +[268.36249, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998410705 (current time 26.798619763)\r\n"] +[268.364429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.364593, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.374014, "o", "3233d0000132\\r\\n\r\n"] +[268.374317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.374449, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996132145 (current time 26.798847619)\r\n"] +[268.376906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.377051, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.389614, "o", "4242424242be4242\\r\\n\r\n"] +[268.389871, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.390017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980295 (current time 26.798962804)\r\n"] +[268.392676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.392859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.404613, "o", "8383838383838383\\r\\n\r\n"] +[268.404962, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.405259, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994345 (current time 26.798961399)\r\n"] +[268.407945, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.408116, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.419661, "o", "0130313233343536\\r\\n\r\n"] +[268.420012, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.420208, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[268.423087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.423252, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.426976, "o", "3351\\r\\n\r\n"] +[268.427297, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.42749, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841277 (current time 26.7986195565)\r\n"] +[268.429248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.429392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.434738, "o", "0c7f51\\r\\n\r\n"] +[268.435073, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.435276, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997820495 (current time 26.798678784)\r\n"] +[268.438383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.438543, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.438709, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.442464, "o", "5124\\r\\n\r\n"] +[268.44286, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.443047, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984128 (current time 26.7986195535)\r\n"] +[268.444985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.44511, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.458233, "o", "feffffffffffffff\\r\\n\r\n"] +[268.458463, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.458796, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999480743 (current time 26.7989800905)\r\n"] +[268.461451, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.461626, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.473333, "o", "214141414166757a\\r\\n\r\n"] +[268.473781, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990155 (current time 26.798961818)\r\n"] +[268.476268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.476489, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.48006, "o", "0151\\r\\n\r\n"] +[268.480456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[268.482458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.48275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.493173, "o", "0010313700001c\\r\\n\r\n"] +[268.493597, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995565855 (current time 26.798904248)\r\n"] +[268.496045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.508296, "o", "40da00ff0b800000\\r\\n\r\n"] +[268.508566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950475 (current time 26.798965786)\r\n"] +[268.51115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.524192, "o", "fcfbfbfbfbfbfbfb\\r\\n\r\n"] +[268.524523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999481498 (current time 26.7989793355)\r\n"] +[268.527186, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.538942, "o", "6230313233343536\\r\\n\r\n"] +[268.53923, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003005 (current time 26.798960533)\r\n"] +[268.542085, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.542201, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.554161, "o", "515151ae65515151\\r\\n\r\n"] +[268.554559, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979015 (current time 26.798962932)\r\n"] +[268.55777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.557837, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.569807, "o", "000000ff1a000000\\r\\n\r\n"] +[268.570286, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497757 (current time 26.7989630765)\r\n"] +[268.574066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.574195, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.579664, "o", "a25151\\r\\n\r\n"] +[268.580006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783368 (current time 26.7986774655)\r\n"] +[268.582667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.588753, "o", "feae38\\r\\n\r\n"] +[268.589092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.589205, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779606 (current time 26.7986812275)\r\n"] +[268.591909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.591938, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.591978, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.604195, "o", "d80166750101ff01\\r\\n\r\n"] +[268.604497, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.604595, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496809 (current time 26.7989640245)\r\n"] +[268.60775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.607767, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.607778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.619986, "o", "3031323334353664\\r\\n\r\n"] +[268.620139, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.620275, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[268.624012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.624268, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.63674, "o", "0171fe77db1b1b1b\\r\\n\r\n"] +[268.637005, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.63718, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922465 (current time 26.798968587)\r\n"] +[268.640538, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.645561, "o", "516451\\r\\n\r\n"] +[268.645894, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997843625 (current time 26.798676471)\r\n"] +[268.647561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.647575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.653388, "o", "afbe32\\r\\n\r\n"] +[268.653683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779819 (current time 26.7986810145)\r\n"] +[268.656374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.656618, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.668415, "o", "8484343536372184\\r\\n\r\n"] +[268.668711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949977 (current time 26.7989610635)\r\n"] +[268.672231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.672448, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.684551, "o", "3132333435363738\\r\\n\r\n"] +[268.684683, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.684841, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[268.688305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.700043, "o", "6566414141204141\\r\\n\r\n"] +[268.700481, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.7006, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003085 (current time 26.798960525)\r\n"] +[268.704218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.70433, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.716116, "o", "9898989898303132\\r\\n\r\n"] +[268.716548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992115 (current time 26.798961622)\r\n"] +[268.720287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.72045, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.731934, "o", "0101018585010101\\r\\n\r\n"] +[268.73239, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007565 (current time 26.798960077)\r\n"] +[268.735966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.736071, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.74013, "o", "3122\\r\\n\r\n"] +[268.740537, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841371 (current time 26.7986194625)\r\n"] +[268.742735, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.754972, "o", "8730313233343536\\r\\n\r\n"] +[268.755376, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001345 (current time 26.798960699)\r\n"] +[268.758138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.770265, "o", "41fd0303030303e8\\r\\n\r\n"] +[268.770632, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497037 (current time 26.7989637965)\r\n"] +[268.773499, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.773647, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.786049, "o", "0151515151515101\\r\\n\r\n"] +[268.786581, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005725 (current time 26.798960261)\r\n"] +[268.789749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.78981, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.789952, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.802131, "o", "0151515151515151\\r\\n\r\n"] +[268.802664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.80275, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004475 (current time 26.798960386)\r\n"] +[268.806213, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.806371, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[268.80646, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.808694, "o", "01\\r\\n\r\n"] +[268.809053, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[268.811078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.816823, "o", "400ba5\\r\\n\r\n"] +[268.817323, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823115 (current time 26.798678522)\r\n"] +[268.82089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.821018, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.832175, "o", "5b0b0bd80ad80b\\r\\n\r\n"] +[268.832362, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995492485 (current time 26.798911585)\r\n"] +[268.836161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.836275, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.843074, "o", "e23e0100\\r\\n\r\n"] +[268.843426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997255305 (current time 26.798735303)\r\n"] +[268.845558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.8572, "o", "0130313233343536\\r\\n\r\n"] +[268.857558, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[268.860015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.863769, "o", "5151\\r\\n\r\n"] +[268.864101, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[268.866161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.877848, "o", "0150303132333435\\r\\n\r\n"] +[268.878184, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.87829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005685 (current time 26.798960265)\r\n"] +[268.880755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.880891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.892967, "o", "41660029705666ff\\r\\n\r\n"] +[268.893242, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.893411, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975355 (current time 26.798963298)\r\n"] +[268.895881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.896084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.905629, "o", "3435fa0000fa\\r\\n\r\n"] +[268.905999, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.906068, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609561 (current time 26.7988512725)\r\n"] +[268.908693, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.908941, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.921215, "o", "6a6a6a6a6a686a00\\r\\n\r\n"] +[268.921562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.921735, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932565 (current time 26.798967577)\r\n"] +[268.924696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.924912, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.931591, "o", "fb015135\\r\\n\r\n"] +[268.931926, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[268.932115, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725355 (current time 26.7987354785)\r\n"] +[268.935147, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[268.93533, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.947758, "o", "04ff9f9f9f1f9f9f\\r\\n\r\n"] +[268.948103, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[268.94826, "o", "[tsffs info] Cancelling event with next time 2.999489922 (current time 26.7989709115)\r\n"] +[268.951576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.951837, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.964706, "o", "01cfcfcfcfcf4000\\r\\n\r\n"] +[268.96512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994887565 (current time 26.798972077)\r\n"] +[268.96883, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[268.968893, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.972974, "o", "1146\\r\\n\r\n"] +[268.973326, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412805 (current time 26.798619553)\r\n"] +[268.975508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.98807, "o", "696e6c17deaffef6\\r\\n\r\n"] +[268.988598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489147 (current time 26.7989716865)\r\n"] +[268.991566, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[268.996652, "o", "303140\\r\\n\r\n"] +[268.997027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846355 (current time 26.798676198)\r\n"] +[268.998796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.001643, "o", "fe\\r\\n\r\n"] +[269.001979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.00218, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895675 (current time 26.7985651585)\r\n"] +[269.005177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.005345, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.00548, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.018115, "o", "40ec647fa541a526\\r\\n\r\n"] +[269.018684, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.018813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494292 (current time 26.7989665415)\r\n"] +[269.022125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.022208, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.022405, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.027573, "o", "510151\\r\\n\r\n"] +[269.027928, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[269.030048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.030177, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.04023, "o", "68e9eaf4c0f4\\r\\n\r\n"] +[269.040667, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606578 (current time 26.7988542555)\r\n"] +[269.043426, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.043508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.048691, "o", "4c4c72\\r\\n\r\n"] +[269.049013, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.049269, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997820245 (current time 26.798678809)\r\n"] +[269.052377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.052544, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.064555, "o", "3031323334353637\\r\\n\r\n"] +[269.064929, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[269.068472, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.068564, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.076758, "o", "01d80b9451\\r\\n\r\n"] +[269.07705, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668435 (current time 26.7987923985)\r\n"] +[269.079575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.079664, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.09278, "o", "1c1cdcdcdcdcdcdc\\r\\n\r\n"] +[269.093252, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994841345 (current time 26.798976699)\r\n"] +[269.095859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.095941, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.107751, "o", "00323232320bd80b\\r\\n\r\n"] +[269.108169, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972065 (current time 26.798963627)\r\n"] +[269.110953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.111092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.123319, "o", "ff807f005d5d5c5d\\r\\n\r\n"] +[269.123723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491817 (current time 26.7989690165)\r\n"] +[269.126349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.126466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.138793, "o", "33cb3510000bbf36\\r\\n\r\n"] +[269.139115, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.139313, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949482 (current time 26.7989660135)\r\n"] +[269.141826, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.14201, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.153592, "o", "0100323334350029\\r\\n\r\n"] +[269.153944, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.154131, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500608 (current time 26.7989602255)\r\n"] +[269.157177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.15729, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.169954, "o", "e1aaffe8ffd80b00\\r\\n\r\n"] +[269.170165, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.170372, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488571 (current time 26.7989722625)\r\n"] +[269.17351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.173691, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.185459, "o", "0264303031323334\\r\\n\r\n"] +[269.185835, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005515 (current time 26.798960282)\r\n"] +[269.189161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.189233, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.189355, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.202112, "o", "ffe4c3eb0bbfa5e9\\r\\n\r\n"] +[269.202479, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.202667, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994872835 (current time 26.79897355)\r\n"] +[269.205994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.217968, "o", "0100143133337c7c\\r\\n\r\n"] +[269.218376, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.218566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981735 (current time 26.79896266)\r\n"] +[269.221896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.222058, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.222166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.226082, "o", "516f\\r\\n\r\n"] +[269.226406, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.226513, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998399825 (current time 26.798620851)\r\n"] +[269.228545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.228718, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.241043, "o", "f3f2f2f2f2f2f2f2\\r\\n\r\n"] +[269.241615, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490691 (current time 26.7989701425)\r\n"] +[269.244184, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.244339, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.244424, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.255937, "o", "5151010101010101\\r\\n\r\n"] +[269.256396, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995010725 (current time 26.798959761)\r\n"] +[269.259328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.259597, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.271497, "o", "666666000000f40c\\r\\n\r\n"] +[269.271878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980625 (current time 26.798962771)\r\n"] +[269.274676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.27479, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.287316, "o", "d4d4d4d4d42cd4d4\\r\\n\r\n"] +[269.287758, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949085 (current time 26.7989699835)\r\n"] +[269.290772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.303389, "o", "c7c7c7c7c7c7c751\\r\\n\r\n"] +[269.303778, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915445 (current time 26.798969289)\r\n"] +[269.306705, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.31211, "o", "ff51d8\\r\\n\r\n"] +[269.312414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780716 (current time 26.7986801175)\r\n"] +[269.314176, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.325959, "o", "4e23236161616161\\r\\n\r\n"] +[269.326344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990445 (current time 26.798961789)\r\n"] +[269.328785, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.329023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.340842, "o", "a8646566414141ff\\r\\n\r\n"] +[269.341214, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.341431, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963965 (current time 26.798964437)\r\n"] +[269.3438, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.343967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.353201, "o", "01b95101b951\\r\\n\r\n"] +[269.353713, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996116945 (current time 26.798849139)\r\n"] +[269.35656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.356796, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.368651, "o", "3e00fd3132383961\\r\\n\r\n"] +[269.368933, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.369254, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966825 (current time 26.798964151)\r\n"] +[269.372357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.372454, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.372591, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.38473, "o", "bf040010ab101049\\r\\n\r\n"] +[269.384974, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.385149, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961745 (current time 26.798964659)\r\n"] +[269.388462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.400279, "o", "0151303132333435\\r\\n\r\n"] +[269.400677, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[269.404275, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.404453, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.411215, "o", "5101d830\\r\\n\r\n"] +[269.411481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997265455 (current time 26.798734288)\r\n"] +[269.413661, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.425487, "o", "525052303132e803\\r\\n\r\n"] +[269.425836, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.426013, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992295 (current time 26.798961604)\r\n"] +[269.428356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.428476, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.433718, "o", "5659d0\\r\\n\r\n"] +[269.434195, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783056 (current time 26.7986777775)\r\n"] +[269.437622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.437724, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.449532, "o", "9170919191919191\\r\\n\r\n"] +[269.450017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499642 (current time 26.7989611915)\r\n"] +[269.453674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.453762, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.466149, "o", "ecec3031ce333435\\r\\n\r\n"] +[269.466627, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493315 (current time 26.7989675185)\r\n"] +[269.470344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.48225, "o", "41416675797a6af1\\r\\n\r\n"] +[269.482746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963005 (current time 26.798964533)\r\n"] +[269.486433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.4865, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.490555, "o", "0101\\r\\n\r\n"] +[269.490871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415255 (current time 26.798619308)\r\n"] +[269.493113, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.505461, "o", "6e6721a2a22e2d2d\\r\\n\r\n"] +[269.505931, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933235 (current time 26.79896751)\r\n"] +[269.508834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.521048, "o", "10565656ee5656a9\\r\\n\r\n"] +[269.521347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496229 (current time 26.7989646045)\r\n"] +[269.524604, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.537129, "o", "3a3233342f122f2f\\r\\n\r\n"] +[269.537631, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495692 (current time 26.7989651415)\r\n"] +[269.540652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.553212, "o", "75757575eb75760b\\r\\n\r\n"] +[269.553574, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960675 (current time 26.798964766)\r\n"] +[269.556764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.568789, "o", "2166666667666666\\r\\n\r\n"] +[269.569054, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994145 (current time 26.798961419)\r\n"] +[269.572514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.582335, "o", "d80b40a5efe8\\r\\n\r\n"] +[269.58266, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606813 (current time 26.7988540205)\r\n"] +[269.586443, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.586588, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.59923, "o", "0bd2f3a8cbf107c9\\r\\n\r\n"] +[269.599405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909125 (current time 26.798969921)\r\n"] +[269.603514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.603634, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.616239, "o", "17deaffe781b0340\\r\\n\r\n"] +[269.616678, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.616804, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919925 (current time 26.798968841)\r\n"] +[269.62066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.620819, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.63367, "o", "f9b6b6c46667fa00\\r\\n\r\n"] +[269.634022, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[269.634283, "o", "[tsffs info] Cancelling event with next time 2.9994929225 (current time 26.798967911)\r\n"] +[269.63787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.637892, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.638008, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.647891, "o", "7f00ffff7fff\\r\\n\r\n"] +[269.648234, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996041335 (current time 26.7988567)\r\n"] +[269.651514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.663616, "o", "cd33343536373839\\r\\n\r\n"] +[269.664015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975165 (current time 26.798963317)\r\n"] +[269.666525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.666674, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.678459, "o", "414166757a303435\\r\\n\r\n"] +[269.678792, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.679037, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498907 (current time 26.7989619265)\r\n"] +[269.681286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.681464, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.683972, "o", "03\\r\\n\r\n"] +[269.68434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.684501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981805 (current time 26.798562653)\r\n"] +[269.687873, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.688163, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.695996, "o", "4b0200e800\\r\\n\r\n"] +[269.696571, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.696754, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668761 (current time 26.7987920725)\r\n"] +[269.69887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.699062, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.704396, "o", "025851\\r\\n\r\n"] +[269.70466, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784395 (current time 26.7986764385)\r\n"] +[269.707477, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.719854, "o", "40c2c2c2c2c2a500\\r\\n\r\n"] +[269.720144, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.720311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937265 (current time 26.798967107)\r\n"] +[269.723245, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.736331, "o", "dddddddddddddddd\\r\\n\r\n"] +[269.736707, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.736808, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994815745 (current time 26.798979259)\r\n"] +[269.739966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.740108, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.752748, "o", "010029cbcbcbcbcb\\r\\n\r\n"] +[269.753107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.753325, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994890885 (current time 26.798971745)\r\n"] +[269.756612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.756756, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.768844, "o", "63647f0000ff0004\\r\\n\r\n"] +[269.769087, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.769212, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496926 (current time 26.7989639075)\r\n"] +[269.772584, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.77271, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.772849, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.780476, "o", "0151015152\\r\\n\r\n"] +[269.78086, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.780974, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671027 (current time 26.7987898065)\r\n"] +[269.783798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.783881, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.79568, "o", "2217222222222322\\r\\n\r\n"] +[269.796027, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.79606, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500587 (current time 26.7989602465)\r\n"] +[269.798258, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.798295, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.798415, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.801099, "o", "e7\\r\\n\r\n"] +[269.801446, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.80152, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[269.801567, "o", "[tsffs info] Cancelling event with next time 2.9998968025 (current time 26.798564031)\r\n"] +[269.804725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.804791, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.81758, "o", "7a7a7a7a7a414141\\r\\n\r\n"] +[269.818116, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.818191, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494382 (current time 26.7989664515)\r\n"] +[269.821445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.821617, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.821741, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.827034, "o", "3f5151\\r\\n\r\n"] +[269.827441, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832255 (current time 26.798677608)\r\n"] +[269.829588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.829757, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.841484, "o", "31cd000071717171\\r\\n\r\n"] +[269.841871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981505 (current time 26.798962683)\r\n"] +[269.844478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.84469, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.849707, "o", "015051\\r\\n\r\n"] +[269.850121, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.850235, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[269.853795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.853903, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.854033, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.865701, "o", "3c41418030313233\\r\\n\r\n"] +[269.866078, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.866327, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949934 (current time 26.7989614935)\r\n"] +[269.870032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.870116, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.870328, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.882124, "o", "33343536a5e96665\\r\\n\r\n"] +[269.88252, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.882612, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497449 (current time 26.7989633845)\r\n"] +[269.886437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.886619, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.886965, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.89627, "o", "6e6c16803435\\r\\n\r\n"] +[269.896665, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.896749, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611362 (current time 26.7988494715)\r\n"] +[269.899073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.899205, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.904683, "o", "015151\\r\\n\r\n"] +[269.904957, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.905154, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[269.905184, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[269.908181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.908419, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.920891, "o", "3da3907a7a7a7a7a\\r\\n\r\n"] +[269.921166, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.921397, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491964 (current time 26.7989688695)\r\n"] +[269.924608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.924705, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.924917, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.930177, "o", "010004\\r\\n\r\n"] +[269.930468, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847915 (current time 26.798676042)\r\n"] +[269.933198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.933558, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.936171, "o", "18\\r\\n\r\n"] +[269.936505, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.93674, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980355 (current time 26.798562798)\r\n"] +[269.939602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.939894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.952497, "o", "0186696e6c17de9e\\r\\n\r\n"] +[269.95292, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.953175, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938015 (current time 26.798967032)\r\n"] +[269.956268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.956382, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.956505, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.960445, "o", "3d51\\r\\n\r\n"] +[269.960781, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.961007, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401045 (current time 26.798620729)\r\n"] +[269.963381, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.963562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.967516, "o", "0151\\r\\n\r\n"] +[269.967715, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.96791, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[269.970467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.970602, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.973192, "o", "3a\\r\\n\r\n"] +[269.973543, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.973697, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969955 (current time 26.798563838)\r\n"] +[269.977111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.9772, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[269.977315, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.989101, "o", "0151666666753333\\r\\n\r\n"] +[269.989414, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.989519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999 (current time 26.7989609335)\r\n"] +[269.992175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[269.992299, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[269.997434, "o", "666631\\r\\n\r\n"] +[269.997605, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[269.997673, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842225 (current time 26.798676611)\r\n"] +[269.999558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[269.999603, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.004784, "o", "010101\\r\\n\r\n"] +[270.005067, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.005255, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784825 (current time 26.7986760085)\r\n"] +[270.00778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.007817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.019407, "o", "3031323334353637\\r\\n\r\n"] +[270.019778, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[270.022962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.023051, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.028305, "o", "d80b51\\r\\n\r\n"] +[270.0286, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821215 (current time 26.798678712)\r\n"] +[270.030474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.04314, "o", "7fbfffff32ffff80\\r\\n\r\n"] +[270.043489, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[270.043666, "o", "[tsffs info] Cancelling event with next time 2.9994868405 (current time 26.798973993)\r\n"] +[270.045962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.046098, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.048414, "o", "51\\r\\n\r\n"] +[270.048694, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.048847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[270.051552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.051632, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[270.051645, "o", "[tsffs info] Resuming simulation\r\n"] +[270.063897, "o", "a8a8c70029705666\\r\\n\r\n"] +[270.064339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.064536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496405 (current time 26.7989644285)\r\n"] +[270.066723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.066805, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.078718, "o", "4443ce3031323334\\r\\n\r\n"] +[270.079095, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498041 (current time 26.7989627925)\r\n"] +[270.081357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.09312, "o", "3031323334353637\\r\\n\r\n"] +[270.093426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[270.095958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.108468, "o", "1bf107c962ff7ffe\\r\\n\r\n"] +[270.108746, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.108955, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490507 (current time 26.7989703265)\r\n"] +[270.111321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.123726, "o", "66757a7a696e6c01\\r\\n\r\n"] +[270.124121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495038 (current time 26.7989657955)\r\n"] +[270.126559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.126783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.133635, "o", "2e7ffc06\\r\\n\r\n"] +[270.134006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.134224, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997227545 (current time 26.798738079)\r\n"] +[270.137558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.137739, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.149435, "o", "6364656641414141\\r\\n\r\n"] +[270.149798, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.150015, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[270.1538, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.153968, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.159319, "o", "6464b1\\r\\n\r\n"] +[270.159633, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.159833, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831975 (current time 26.798677636)\r\n"] +[270.161947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.162089, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.167463, "o", "0f5151\\r\\n\r\n"] +[270.167722, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.167889, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833035 (current time 26.79867753)\r\n"] +[270.171146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.17134, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.183288, "o", "48030303c2eb0303\\r\\n\r\n"] +[270.183626, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.183811, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497132 (current time 26.7989637015)\r\n"] +[270.18746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.187618, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[270.187763, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.193002, "o", "9a1000\\r\\n\r\n"] +[270.193456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997834855 (current time 26.798677348)\r\n"] +[270.195494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.195688, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.207289, "o", "0130313233343536\\r\\n\r\n"] +[270.207665, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.207861, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[270.210072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.210296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.221988, "o", "6c41414141419292\\r\\n\r\n"] +[270.222277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.222585, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498998 (current time 26.7989618355)\r\n"] +[270.22509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.225312, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.230645, "o", "cb35cd\\r\\n\r\n"] +[270.230953, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997797965 (current time 26.798681037)\r\n"] +[270.232867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.245564, "o", "3031bbbbbbbbbb61\\r\\n\r\n"] +[270.245879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948919 (current time 26.7989716435)\r\n"] +[270.248288, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.260121, "o", "6162636465664141\\r\\n\r\n"] +[270.260434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999065 (current time 26.798960927)\r\n"] +[270.262966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.268251, "o", "1a5101\\r\\n\r\n"] +[270.268626, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783515 (current time 26.7986773185)\r\n"] +[270.271684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.271831, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.283654, "o", "515151515151af84\\r\\n\r\n"] +[270.284066, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.284203, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978595 (current time 26.798962974)\r\n"] +[270.287666, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.287805, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.300429, "o", "20e2e6e6e6e6e6e6\\r\\n\r\n"] +[270.300757, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491638 (current time 26.7989691955)\r\n"] +[270.304417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.304596, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.314382, "o", "a5e9ffff0000\\r\\n\r\n"] +[270.314736, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996068935 (current time 26.79885394)\r\n"] +[270.317434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.32919, "o", "b430313233343536\\r\\n\r\n"] +[270.32957, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992005 (current time 26.798961633)\r\n"] +[270.331834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.335847, "o", "5151\\r\\n\r\n"] +[270.336315, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[270.339131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.342847, "o", "1601\\r\\n\r\n"] +[270.343245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841379 (current time 26.7986194545)\r\n"] +[270.345107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.356842, "o", "0002003961626364\\r\\n\r\n"] +[270.357148, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500381 (current time 26.7989604525)\r\n"] +[270.35967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.37205, "o", "302832cd3435eded\\r\\n\r\n"] +[270.372406, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493202 (current time 26.7989676315)\r\n"] +[270.375175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.387055, "o", "9f92929292929266\\r\\n\r\n"] +[270.387317, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498122 (current time 26.7989627115)\r\n"] +[270.390306, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.395456, "o", "017351\\r\\n\r\n"] +[270.395799, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784478 (current time 26.7986763555)\r\n"] +[270.39764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.41011, "o", "fe17de00007fffe9\\r\\n\r\n"] +[270.410385, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906725 (current time 26.798970161)\r\n"] +[270.412955, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.424836, "o", "a4313233343536a4\\r\\n\r\n"] +[270.425245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980125 (current time 26.798962821)\r\n"] +[270.427786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.427885, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.440175, "o", "00297c705666ff3a\\r\\n\r\n"] +[270.440646, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495285 (current time 26.7989655485)\r\n"] +[270.443177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.443284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.455123, "o", "0151303132333437\\r\\n\r\n"] +[270.455473, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004845 (current time 26.798960349)\r\n"] +[270.458502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.467134, "o", "8fff7fdc24\\r\\n\r\n"] +[270.467463, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.467612, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663365 (current time 26.7987974685)\r\n"] +[270.471222, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.471324, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[270.471403, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.483714, "o", "3739589ee59ee761\\r\\n\r\n"] +[270.483861, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.484086, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946775 (current time 26.798966156)\r\n"] +[270.487787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.487892, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[270.488007, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.499652, "o", "5130503233343536\\r\\n\r\n"] +[270.500188, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.500388, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003295 (current time 26.798960504)\r\n"] +[270.504322, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.504522, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.516547, "o", "3600372704ff3776\\r\\n\r\n"] +[270.516785, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.517062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975885 (current time 26.798963245)\r\n"] +[270.520597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.520705, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[270.520813, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.533055, "o", "35d2f3a8cb303132\\r\\n\r\n"] +[270.533461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.533741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945585 (current time 26.798966275)\r\n"] +[270.537378, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.537471, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.549341, "o", "4000131314139df6\\r\\n\r\n"] +[270.549866, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498101 (current time 26.7989627325)\r\n"] +[270.553744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.553919, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.565691, "o", "3637383961646566\\r\\n\r\n"] +[270.566034, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.56621, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499549 (current time 26.7989612845)\r\n"] +[270.570042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.570152, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.583366, "o", "dbdbdbdbdbdbdb30\\r\\n\r\n"] +[270.583821, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994843335 (current time 26.7989765)\r\n"] +[270.587706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.587907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.599813, "o", "916e30300010c947\\r\\n\r\n"] +[270.600078, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.600331, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979865 (current time 26.798962847)\r\n"] +[270.604154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.604254, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.616142, "o", "3737773737373730\\r\\n\r\n"] +[270.616452, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.616774, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996245 (current time 26.798961209)\r\n"] +[270.620576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.620683, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.63259, "o", "41542f212f213132\\r\\n\r\n"] +[270.632958, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498094 (current time 26.7989627395)\r\n"] +[270.637034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.637154, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.649872, "o", "6b6b6b6b6b6b6b6b\\r\\n\r\n"] +[270.650542, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907905 (current time 26.798970043)\r\n"] +[270.654636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.654766, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.667403, "o", "02e00100bad8d8b6\\r\\n\r\n"] +[270.667702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.667946, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935975 (current time 26.798967236)\r\n"] +[270.671492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.671575, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[270.671692, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.675778, "o", "50ae\\r\\n\r\n"] +[270.676314, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839001 (current time 26.7986218325)\r\n"] +[270.678439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.678544, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.682458, "o", "0151\\r\\n\r\n"] +[270.682774, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[270.685738, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.685841, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.698118, "o", "1c1c1c1c1c1c3f1c\\r\\n\r\n"] +[270.698407, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491328 (current time 26.7989695055)\r\n"] +[270.701958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[270.70213, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.711711, "o", "00e0f300ff00\\r\\n\r\n"] +[270.712049, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609649 (current time 26.7988511845)\r\n"] +[270.714259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.726858, "o", "cf00008fd80bff7e\\r\\n\r\n"] +[270.727094, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908415 (current time 26.798969992)\r\n"] +[270.729552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.741362, "o", "3738396162636465\\r\\n\r\n"] +[270.741641, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.741809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499641 (current time 26.7989611925)\r\n"] +[270.744367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.744475, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.756661, "o", "10303132cd00b166\\r\\n\r\n"] +[270.757025, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972155 (current time 26.798963618)\r\n"] +[270.759684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.759827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.765077, "o", "e332e3\\r\\n\r\n"] +[270.765449, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782075 (current time 26.7986787585)\r\n"] +[270.768363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.768493, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.78017, "o", "0166667166666666\\r\\n\r\n"] +[270.780461, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499583 (current time 26.7989612505)\r\n"] +[270.783267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.783447, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.793012, "o", "0ac7c7c75151\\r\\n\r\n"] +[270.793297, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609184 (current time 26.7988516495)\r\n"] +[270.795773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.795863, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.808297, "o", "66757a7a696e6c17\\r\\n\r\n"] +[270.808606, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[270.811307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.827979, "o", "015151\\r\\n\r\n"] +[270.828969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[270.832002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.832164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.837462, "o", "015151\\r\\n\r\n"] +[270.837711, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.837946, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[270.84076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.840857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.845899, "o", "015151\\r\\n\r\n"] +[270.846231, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[270.84811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.848246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.853454, "o", "015151\\r\\n\r\n"] +[270.853805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.854039, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[270.856648, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.856781, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.86177, "o", "015151\\r\\n\r\n"] +[270.862097, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[270.864091, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.864228, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.869288, "o", "085151\\r\\n\r\n"] +[270.869716, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[270.872773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.87785, "o", "015151\\r\\n\r\n"] +[270.87831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[270.880096, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.880217, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.886997, "o", "af4151af\\r\\n\r\n"] +[270.887443, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722988 (current time 26.7987378455)\r\n"] +[270.889959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.901817, "o", "7a61626375656641\\r\\n\r\n"] +[270.902217, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986195 (current time 26.798962214)\r\n"] +[270.905281, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.913766, "o", "ec43ecec00\\r\\n\r\n"] +[270.914178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996638665 (current time 26.798796967)\r\n"] +[270.91642, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.916552, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.926994, "o", "01512151015151\\r\\n\r\n"] +[270.927334, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[270.927418, "o", "[tsffs info] Cancelling event with next time 2.9995574685 (current time 26.798903365)\r\n"] +[270.929818, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.929911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.941595, "o", "0101333435363738\\r\\n\r\n"] +[270.941933, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002345 (current time 26.798960599)\r\n"] +[270.944626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.944707, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.956394, "o", "3334356161616161\\r\\n\r\n"] +[270.956702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.956874, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500152 (current time 26.7989606815)\r\n"] +[270.959276, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.959447, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.964491, "o", "013031\\r\\n\r\n"] +[270.964822, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847015 (current time 26.798676132)\r\n"] +[270.96702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.967173, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.979019, "o", "39303132333435ff\\r\\n\r\n"] +[270.979382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[270.979437, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978205 (current time 26.798963013)\r\n"] +[270.981621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.98176, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[270.992509, "o", "00803031320124\\r\\n\r\n"] +[270.992867, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995575535 (current time 26.79890328)\r\n"] +[270.995454, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[270.995554, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.001336, "o", "feaf51\\r\\n\r\n"] +[271.001565, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.001655, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997796925 (current time 26.798681141)\r\n"] +[271.00527, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.005375, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.005527, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.017564, "o", "30313233343132cc\\r\\n\r\n"] +[271.017798, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.017918, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498216 (current time 26.7989626175)\r\n"] +[271.021358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.021493, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.021654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.028103, "o", "31303132\\r\\n\r\n"] +[271.028417, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.028637, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727823 (current time 26.7987330105)\r\n"] +[271.030701, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.030851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.042626, "o", "5150515151595137\\r\\n\r\n"] +[271.0431, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500071 (current time 26.7989607625)\r\n"] +[271.045586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.045726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.057391, "o", "2201515139616263\\r\\n\r\n"] +[271.057797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500224 (current time 26.7989606095)\r\n"] +[271.060407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.060678, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.072304, "o", "2222656641413031\\r\\n\r\n"] +[271.072711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003495 (current time 26.798960484)\r\n"] +[271.075273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.075378, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.087344, "o", "b9b9b96130313233\\r\\n\r\n"] +[271.087788, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966605 (current time 26.798964173)\r\n"] +[271.090717, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.102991, "o", "32ff0080ff0d1919\\r\\n\r\n"] +[271.103305, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.103499, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494289 (current time 26.7989665445)\r\n"] +[271.106597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.106722, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.10684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.118927, "o", "31323334356a6a6a\\r\\n\r\n"] +[271.119173, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.119476, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968095 (current time 26.798964024)\r\n"] +[271.122856, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.122906, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.134667, "o", "0001000051525151\\r\\n\r\n"] +[271.13494, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.13521, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500898 (current time 26.7989599355)\r\n"] +[271.138902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.139034, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.139161, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.150915, "o", "0151513031323334\\r\\n\r\n"] +[271.151232, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.151404, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[271.154902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.155059, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.155224, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.166851, "o", "0151513031323334\\r\\n\r\n"] +[271.167167, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.167375, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[271.170968, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.171103, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.171309, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.183688, "o", "c3e71b1b1b1b1b1b\\r\\n\r\n"] +[271.183925, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.184106, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914035 (current time 26.79896943)\r\n"] +[271.187767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.187907, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.188116, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.20064, "o", "a5a5a5a5a5a5a5a5\\r\\n\r\n"] +[271.201111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911025 (current time 26.798969731)\r\n"] +[271.204486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.204639, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.216914, "o", "616263646573fcfc\\r\\n\r\n"] +[271.217339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.217568, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495129 (current time 26.7989657045)\r\n"] +[271.221236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.221346, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.23311, "o", "3536373839576263\\r\\n\r\n"] +[271.23345, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996075 (current time 26.798961226)\r\n"] +[271.237358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.237467, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.237663, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.249575, "o", "d03030d030303028\\r\\n\r\n"] +[271.249938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.250239, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984465 (current time 26.798962387)\r\n"] +[271.253981, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.254213, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.256699, "o", "51\\r\\n\r\n"] +[271.25715, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[271.259562, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.259684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.271688, "o", "3232323232323232\\r\\n\r\n"] +[271.27203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005225 (current time 26.798960311)\r\n"] +[271.27463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.274881, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.280023, "o", "018f00\\r\\n\r\n"] +[271.280356, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833955 (current time 26.798677438)\r\n"] +[271.282283, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.282299, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.282759, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.295328, "o", "bfbfbf8c8c8c8c73\\r\\n\r\n"] +[271.295815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994881065 (current time 26.798972727)\r\n"] +[271.298278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.298297, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.298403, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.310321, "o", "41414166757a7a69\\r\\n\r\n"] +[271.310625, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.310883, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497506 (current time 26.7989633275)\r\n"] +[271.313541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.313676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.325828, "o", "3334353f3f3f3f3f\\r\\n\r\n"] +[271.326119, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494137 (current time 26.7989666965)\r\n"] +[271.328696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.328792, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.340913, "o", "412bdec53641415e\\r\\n\r\n"] +[271.341402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944135 (current time 26.79896642)\r\n"] +[271.343879, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.343978, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.352217, "o", "fe400b5151\\r\\n\r\n"] +[271.352471, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667387 (current time 26.7987934465)\r\n"] +[271.355883, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.355956, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.356017, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.368084, "o", "64e6514151303132\\r\\n\r\n"] +[271.368285, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991445 (current time 26.798961689)\r\n"] +[271.371856, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.371955, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.371993, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.384231, "o", "5efe004166757575\\r\\n\r\n"] +[271.384615, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.384767, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496266 (current time 26.7989645675)\r\n"] +[271.388185, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.388283, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.400195, "o", "0030313233343536\\r\\n\r\n"] +[271.4005, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[271.404184, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.404335, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.408231, "o", "0101\\r\\n\r\n"] +[271.408843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415255 (current time 26.798619308)\r\n"] +[271.410816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.410851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.413027, "o", "00\\r\\n\r\n"] +[271.413468, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998982585 (current time 26.798562575)\r\n"] +[271.415206, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.42507, "o", "0151ef0151ef\\r\\n\r\n"] +[271.425339, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996093715 (current time 26.798851462)\r\n"] +[271.427521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.439409, "o", "8080808080808030\\r\\n\r\n"] +[271.439756, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500171 (current time 26.7989606625)\r\n"] +[271.442188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.450221, "o", "ff64645133\\r\\n\r\n"] +[271.450632, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668175 (current time 26.7987926585)\r\n"] +[271.454323, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.454595, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.460024, "o", "017f51\\r\\n\r\n"] +[271.460362, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783252 (current time 26.7986775815)\r\n"] +[271.462559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.462735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.474438, "o", "113031cd33343500\\r\\n\r\n"] +[271.474787, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498308 (current time 26.7989625255)\r\n"] +[271.477381, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.477568, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.489255, "o", "00017f0030313233\\r\\n\r\n"] +[271.489719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995925 (current time 26.798961241)\r\n"] +[271.49234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.492352, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.504066, "o", "6161616163646566\\r\\n\r\n"] +[271.504528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.504683, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998325 (current time 26.798961001)\r\n"] +[271.507665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.507799, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.519411, "o", "2121212121343434\\r\\n\r\n"] +[271.519831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500618 (current time 26.7989602155)\r\n"] +[271.523036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.523146, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.535181, "o", "3031323334d9d9d9\\r\\n\r\n"] +[271.53563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496519 (current time 26.7989643145)\r\n"] +[271.539089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.539185, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.539356, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.551595, "o", "3132333435363738\\r\\n\r\n"] +[271.551993, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.552206, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[271.555796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.555928, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.568373, "o", "007f4166757a7a8e\\r\\n\r\n"] +[271.568757, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951835 (current time 26.79896565)\r\n"] +[271.572542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.572618, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.585306, "o", "0151309c9c9c9ca4\\r\\n\r\n"] +[271.585683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494213 (current time 26.7989666205)\r\n"] +[271.589227, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.589282, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.601111, "o", "2172720000722f31\\r\\n\r\n"] +[271.601556, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.601617, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993335 (current time 26.7989615)\r\n"] +[271.605177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.605451, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.61073, "o", "ff1051\\r\\n\r\n"] +[271.61107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.611248, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821245 (current time 26.798678709)\r\n"] +[271.613267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.625422, "o", "7a7a6930e8033334\\r\\n\r\n"] +[271.625792, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496535 (current time 26.7989642985)\r\n"] +[271.628401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.628502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.640848, "o", "c2a6a6a6a6a7a6a6\\r\\n\r\n"] +[271.641186, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.641376, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909425 (current time 26.798969891)\r\n"] +[271.643934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.644209, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.652852, "o", "ffffff7f9a\\r\\n\r\n"] +[271.65322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996608775 (current time 26.798799956)\r\n"] +[271.656203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.668768, "o", "53fa01300000faad\\r\\n\r\n"] +[271.66896, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.669064, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938555 (current time 26.798966978)\r\n"] +[271.672755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.673042, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.685532, "o", "a9a9a9a9a90010a9\\r\\n\r\n"] +[271.685909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493123 (current time 26.7989677105)\r\n"] +[271.689296, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.689503, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.693473, "o", "01d6\\r\\n\r\n"] +[271.693698, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840161 (current time 26.7986206725)\r\n"] +[271.69569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.695826, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.701664, "o", "7f6651\\r\\n\r\n"] +[271.702061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[271.702191, "o", "[tsffs info] Cancelling event with next time 2.9997829915 (current time 26.798677842)\r\n"] +[271.705431, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.705568, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.70578, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.709798, "o", "ffc0\\r\\n\r\n"] +[271.710211, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998377475 (current time 26.798623086)\r\n"] +[271.712171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.723765, "o", "3030313233343536\\r\\n\r\n"] +[271.724147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[271.72671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.738346, "o", "0151513031323334\\r\\n\r\n"] +[271.738623, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[271.738699, "o", "[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[271.741415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.741597, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.746652, "o", "800051\\r\\n\r\n"] +[271.746963, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.747011, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845745 (current time 26.798676259)\r\n"] +[271.748926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.749009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.757011, "o", "038000dd40\\r\\n\r\n"] +[271.75733, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[271.757447, "o", "[tsffs info] Cancelling event with next time 2.9996687185 (current time 26.798792115)\r\n"] +[271.759976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.760194, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.765385, "o", "4441af\\r\\n\r\n"] +[271.76569, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.765771, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821055 (current time 26.798678728)\r\n"] +[271.769354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.769453, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.76968, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.781341, "o", "3333333301323319\\r\\n\r\n"] +[271.781692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003855 (current time 26.798960448)\r\n"] +[271.785417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.785524, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.785628, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.798161, "o", "000021f4f4f4301f\\r\\n\r\n"] +[271.798495, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958735 (current time 26.79896496)\r\n"] +[271.80209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.802326, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.814617, "o", "33523300ff3333d7\\r\\n\r\n"] +[271.814986, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[271.815077, "o", "[tsffs info] Cancelling event with next time 2.999496744 (current time 26.7989640895)\r\n"] +[271.818457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.818561, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[271.818846, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.830572, "o", "3101000000000000\\r\\n\r\n"] +[271.830836, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.830965, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995014395 (current time 26.798959394)\r\n"] +[271.833973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.834155, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.845817, "o", "3030303030303030\\r\\n\r\n"] +[271.84609, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[271.848615, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.848817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.861228, "o", "51ffd6d6d6d6d6d6\\r\\n\r\n"] +[271.861566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490435 (current time 26.7989703985)\r\n"] +[271.863899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.864118, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.866907, "o", "ce\\r\\n\r\n"] +[271.867302, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895744 (current time 26.7985650895)\r\n"] +[271.870772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.870901, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.88321, "o", "fb00526465664141\\r\\n\r\n"] +[271.883788, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497825 (current time 26.7989630085)\r\n"] +[271.887542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[271.887675, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.891639, "o", "0151\\r\\n\r\n"] +[271.891925, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[271.894081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.906375, "o", "9b65661fbcbc2042\\r\\n\r\n"] +[271.906675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493177 (current time 26.7989676565)\r\n"] +[271.909246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.914642, "o", "323031\\r\\n\r\n"] +[271.914927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846015 (current time 26.798676232)\r\n"] +[271.916831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.928634, "o", "3031323334353637\\r\\n\r\n"] +[271.929075, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[271.931357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.944124, "o", "f130ce3233fefeff\\r\\n\r\n"] +[271.944255, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948959 (current time 26.7989712435)\r\n"] +[271.947119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.947259, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.959938, "o", "bfa5e9b93e3eb9b9\\r\\n\r\n"] +[271.960192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[271.960258, "o", "[tsffs info] Cancelling event with next time 2.999489286 (current time 26.7989715475)\r\n"] +[271.962861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.963011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.976087, "o", "bfbfbfbfbfbfbfff\\r\\n\r\n"] +[271.976451, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.976551, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999481429 (current time 26.7989794045)\r\n"] +[271.979042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.97918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[271.990807, "o", "8000523132333435\\r\\n\r\n"] +[271.991084, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[271.991318, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500434 (current time 26.7989603995)\r\n"] +[271.993756, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[271.993878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.005607, "o", "3961626364656641\\r\\n\r\n"] +[272.005984, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949974 (current time 26.7989610935)\r\n"] +[272.009042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.020815, "o", "1919803031323334\\r\\n\r\n"] +[272.021167, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.021259, "o", "[tsffs info] Cancelling event with next time 2.9995002345 (current time 26.798960599)\r\n"] +[272.024114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.024282, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.036133, "o", "4101411b1b343441\\r\\n\r\n"] +[272.036416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.036676, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498334 (current time 26.7989624995)\r\n"] +[272.039529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.039654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.045944, "o", "64640101\\r\\n\r\n"] +[272.046278, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997276995 (current time 26.798733134)\r\n"] +[272.048268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.048429, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.060767, "o", "00000088ffacacac\\r\\n\r\n"] +[272.061057, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.0613, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913335 (current time 26.7989695)\r\n"] +[272.063759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.063818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.067947, "o", "ff7f\\r\\n\r\n"] +[272.068288, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.068496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[272.071664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.071842, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.071978, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.083793, "o", "617f303232333435\\r\\n\r\n"] +[272.084209, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990445 (current time 26.798961789)\r\n"] +[272.087755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.087839, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.088023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.091898, "o", "3838\\r\\n\r\n"] +[272.092282, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.092362, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998410535 (current time 26.79861978)\r\n"] +[272.094556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.094721, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.106324, "o", "0130313233343536\\r\\n\r\n"] +[272.106693, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.106857, "o", "[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[272.109284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.109486, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.121166, "o", "9935994140415341\\r\\n\r\n"] +[272.121524, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499807 (current time 26.7989610265)\r\n"] +[272.124377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.12459, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.136389, "o", "2172333433333333\\r\\n\r\n"] +[272.136632, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500308 (current time 26.7989605255)\r\n"] +[272.139734, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.139874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.153115, "o", "2080ffffffffffff\\r\\n\r\n"] +[272.15346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.153615, "o", "[tsffs info] Cancelling event with next time 2.9994856895 (current time 26.798975144)\r\n"] +[272.156405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.156675, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.160459, "o", "5151\\r\\n\r\n"] +[272.160807, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[272.162649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.162781, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.174416, "o", "6601305132333435\\r\\n\r\n"] +[272.174725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950035 (current time 26.7989604835)\r\n"] +[272.177278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.177473, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.181235, "o", "e063\\r\\n\r\n"] +[272.181537, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.181645, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400865 (current time 26.798620747)\r\n"] +[272.184029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.184154, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.196144, "o", "00007fff41414141\\r\\n\r\n"] +[272.196459, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949697 (current time 26.7989638635)\r\n"] +[272.198677, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.198938, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.211303, "o", "c3001f1f1f1f8e1f\\r\\n\r\n"] +[272.211641, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492117 (current time 26.7989687165)\r\n"] +[272.214106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.214329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.226751, "o", "77f107c962c214fe\\r\\n\r\n"] +[272.227002, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.227235, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494057 (current time 26.7989667765)\r\n"] +[272.229524, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.229689, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.241416, "o", "175762637165e935\\r\\n\r\n"] +[272.241698, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.241922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498464 (current time 26.7989623695)\r\n"] +[272.244264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.244381, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.25672, "o", "4b4b284b4b4b4b4b\\r\\n\r\n"] +[272.256934, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.257158, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922305 (current time 26.798968603)\r\n"] +[272.259598, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.259773, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.271694, "o", "3c3cd85130313233\\r\\n\r\n"] +[272.272029, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.27226, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496881 (current time 26.7989639525)\r\n"] +[272.274789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.27494, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.287196, "o", "0029705666ff3a8b\\r\\n\r\n"] +[272.287478, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.287748, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[272.290803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.290985, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.294923, "o", "8062\\r\\n\r\n"] +[272.295233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841199 (current time 26.7986196345)\r\n"] +[272.296991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.308777, "o", "6363636363414141\\r\\n\r\n"] +[272.308996, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500067 (current time 26.7989607665)\r\n"] +[272.311566, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.311797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.315644, "o", "6400\\r\\n\r\n"] +[272.315834, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.316007, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.316167, "o", "[tsffs info] Cancelling event with next time 2.9998413455 (current time 26.798619488)\r\n"] +[272.319374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.319536, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.319597, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.322196, "o", "01\\r\\n\r\n"] +[272.322641, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[272.324905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.331456, "o", "01f201f2\\r\\n\r\n"] +[272.331805, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997254725 (current time 26.798735361)\r\n"] +[272.334352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.33443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.346158, "o", "7373737373737373\\r\\n\r\n"] +[272.346431, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995465 (current time 26.798961287)\r\n"] +[272.348713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.358575, "o", "a9a98e406c6c\\r\\n\r\n"] +[272.358835, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999607778 (current time 26.7988530555)\r\n"] +[272.361202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.373772, "o", "c9c9c9c9c9c9c9c9\\r\\n\r\n"] +[272.374053, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.374112, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899465 (current time 26.798970887)\r\n"] +[272.376702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.376729, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.37676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.380876, "o", "ff01\\r\\n\r\n"] +[272.381184, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99983895 (current time 26.7986218835)\r\n"] +[272.383329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.383413, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.39519, "o", "6430313233343536\\r\\n\r\n"] +[272.395536, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.395716, "o", "[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[272.397805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.397859, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.397894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.409508, "o", "0101010101010101\\r\\n\r\n"] +[272.409762, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.409838, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.409859, "o", "[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[272.413368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.413506, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.413552, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.422674, "o", "515151015151\\r\\n\r\n"] +[272.422984, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.423138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996140985 (current time 26.798846735)\r\n"] +[272.426518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.426715, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.4268, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.42958, "o", "af\\r\\n\r\n"] +[272.429809, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.429942, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998957695 (current time 26.798565064)\r\n"] +[272.432348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.432466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.437957, "o", "0151ee\\r\\n\r\n"] +[272.438242, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.438475, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821735 (current time 26.79867866)\r\n"] +[272.441711, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.441901, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.442134, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.444702, "o", "ff\\r\\n\r\n"] +[272.445036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998956505 (current time 26.798565183)\r\n"] +[272.446654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.459177, "o", "3030ce3a31ec6f3a\\r\\n\r\n"] +[272.459728, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994923105 (current time 26.798968523)\r\n"] +[272.462133, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.473894, "o", "00b1343031323131\\r\\n\r\n"] +[272.474226, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499629 (current time 26.7989612045)\r\n"] +[272.476721, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.488681, "o", "3062628562626262\\r\\n\r\n"] +[272.489048, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499983 (current time 26.7989608505)\r\n"] +[272.491625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.503702, "o", "e72b000000002b30\\r\\n\r\n"] +[272.50397, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975345 (current time 26.798963299)\r\n"] +[272.507188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.507346, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.511144, "o", "5151\\r\\n\r\n"] +[272.511472, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[272.51331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.51344, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.51882, "o", "0151ca\\r\\n\r\n"] +[272.519136, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.519464, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823125 (current time 26.798678521)\r\n"] +[272.522434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.522512, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.534757, "o", "c500806666d4c530\\r\\n\r\n"] +[272.535076, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496659 (current time 26.7989641745)\r\n"] +[272.538534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.538725, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.550225, "o", "0000000000000000\\r\\n\r\n"] +[272.550479, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.550777, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[272.554311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.554508, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.566178, "o", "2525252525252525\\r\\n\r\n"] +[272.566508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[272.566735, "o", "[tsffs info] Cancelling event with next time 2.9995001465 (current time 26.798960687)\r\n"] +[272.570363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.57048, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.570594, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.582845, "o", "949494d827dad8e0\\r\\n\r\n"] +[272.583138, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.583222, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938005 (current time 26.798967033)\r\n"] +[272.587362, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.587386, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.587629, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.599563, "o", "ff66663852616263\\r\\n\r\n"] +[272.599882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.600189, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497336 (current time 26.7989634975)\r\n"] +[272.603858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.60402, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.604224, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.608111, "o", "5151\\r\\n\r\n"] +[272.60853, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[272.611789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.611967, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.623624, "o", "1364343434343434\\r\\n\r\n"] +[272.623935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500168 (current time 26.7989606655)\r\n"] +[272.62635, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.62649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.633083, "o", "3b3b5231\\r\\n\r\n"] +[272.633439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997254035 (current time 26.79873543)\r\n"] +[272.636931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.637118, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.64891, "o", "fe01016675333333\\r\\n\r\n"] +[272.649266, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978715 (current time 26.798962962)\r\n"] +[272.653162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.665157, "o", "a5e938223e303132\\r\\n\r\n"] +[272.665587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967175 (current time 26.798964116)\r\n"] +[272.669167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.669269, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.67509, "o", "c6f6ba\\r\\n\r\n"] +[272.675447, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779703 (current time 26.7986811305)\r\n"] +[272.677781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.6909, "o", "0151d8cfcff0cfcf\\r\\n\r\n"] +[272.691271, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994884915 (current time 26.798972342)\r\n"] +[272.693861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.706291, "o", "f5e0f5f530313133\\r\\n\r\n"] +[272.706532, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495561 (current time 26.7989652725)\r\n"] +[272.70911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.715646, "o", "33c03437\\r\\n\r\n"] +[272.716007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997264325 (current time 26.798734401)\r\n"] +[272.719249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.72461, "o", "040300\\r\\n\r\n"] +[272.724849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784746 (current time 26.7986760875)\r\n"] +[272.727254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.739088, "o", "07401c1c00640740\\r\\n\r\n"] +[272.739504, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982525 (current time 26.798962581)\r\n"] +[272.742191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.754717, "o", "6a0000ffff381a1a\\r\\n\r\n"] +[272.755016, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994923315 (current time 26.798968502)\r\n"] +[272.758017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.770024, "o", "0166666666757a7a\\r\\n\r\n"] +[272.770357, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973535 (current time 26.79896348)\r\n"] +[272.773363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.785104, "o", "3a00353535353535\\r\\n\r\n"] +[272.785417, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.785737, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991015 (current time 26.798961732)\r\n"] +[272.78894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.789004, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[272.789099, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.801691, "o", "0cf30c0c0ad7f966\\r\\n\r\n"] +[272.802003, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.802158, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492067 (current time 26.7989687665)\r\n"] +[272.805591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[272.805811, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.811424, "o", "5a5a4c\\r\\n\r\n"] +[272.811736, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.81187, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780969 (current time 26.7986798645)\r\n"] +[272.813895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.814095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.826585, "o", "afafaf0028282828\\r\\n\r\n"] +[272.826938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.82724, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931355 (current time 26.798967698)\r\n"] +[272.829534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.829631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.843061, "o", "dddddddddddddddd\\r\\n\r\n"] +[272.843346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994815745 (current time 26.798979259)\r\n"] +[272.84597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.846105, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.857312, "o", "1afafa000020fa\\r\\n\r\n"] +[272.857559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.85775, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995495115 (current time 26.798911322)\r\n"] +[272.860265, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.860504, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.872227, "o", "3636363636363636\\r\\n\r\n"] +[272.872494, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.872775, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997865 (current time 26.798961047)\r\n"] +[272.875268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.87549, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.887946, "o", "4100c962c2ebfe0c\\r\\n\r\n"] +[272.888369, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492206 (current time 26.7989686275)\r\n"] +[272.891318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.891546, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.904469, "o", "51ddddddfddddddd\\r\\n\r\n"] +[272.904878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994838645 (current time 26.798976969)\r\n"] +[272.9079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.919876, "o", "67676767ad721919\\r\\n\r\n"] +[272.920209, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.920436, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949712 (current time 26.7989637135)\r\n"] +[272.92333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.923431, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.935385, "o", "cf31323334133637\\r\\n\r\n"] +[272.935718, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.935919, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978785 (current time 26.798962955)\r\n"] +[272.939279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.939379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.941891, "o", "e8\\r\\n\r\n"] +[272.942245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998967885 (current time 26.798564045)\r\n"] +[272.944405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.944599, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.956162, "o", "1717303132533435\\r\\n\r\n"] +[272.95655, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500261 (current time 26.7989605725)\r\n"] +[272.959054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.959199, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.97092, "o", "015151433d515151\\r\\n\r\n"] +[272.971255, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992575 (current time 26.798961576)\r\n"] +[272.974373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.974396, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.978242, "o", "1320\\r\\n\r\n"] +[272.978569, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.978661, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414255 (current time 26.798619408)\r\n"] +[272.980476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.980591, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[272.992586, "o", "ffe5623031323334\\r\\n\r\n"] +[272.992833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[272.993019, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967155 (current time 26.798964118)\r\n"] +[272.995367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[272.995575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.008469, "o", "bbbbbbbbbbbbbb45\\r\\n\r\n"] +[273.008722, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.008815, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484524 (current time 26.7989763095)\r\n"] +[273.011549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.01164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.023651, "o", "21f42e7a7a414141\\r\\n\r\n"] +[273.023928, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.024057, "o", "[tsffs info] Cancelling event with next time 2.999495643 (current time 26.7989651905)\r\n"] +[273.02663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.026864, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.039096, "o", "781b03f2f3a8cb01\\r\\n\r\n"] +[273.039453, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.039624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933165 (current time 26.798967517)\r\n"] +[273.042232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n"] +[273.042263, "o", "[tsffs info] Resuming simulation\r\n"] +[273.042304, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.042457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.054488, "o", "7bf57b0202303132\\r\\n\r\n"] +[273.054742, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.054897, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969655 (current time 26.798963868)\r\n"] +[273.057786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.057904, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.058043, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.060484, "o", "f4\\r\\n\r\n"] +[273.06081, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.060953, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896856 (current time 26.7985639775)\r\n"] +[273.062767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.06291, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.074511, "o", "3330313233343536\\r\\n\r\n"] +[273.074801, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.074991, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003455 (current time 26.798960488)\r\n"] +[273.077232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.077434, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.089638, "o", "704c0a0a0a0af562\\r\\n\r\n"] +[273.089935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.090197, "o", "[tsffs info] Cancelling event with next time 2.9994937025 (current time 26.798967131)\r\n"] +[273.092696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.092712, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.092879, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.095179, "o", "02\\r\\n\r\n"] +[273.095534, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898204 (current time 26.7985626295)\r\n"] +[273.097328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.109237, "o", "66757a6e67213937\\r\\n\r\n"] +[273.109493, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[273.109796, "o", "[Stats #0] run time: 0h-0m-17s, clients: 1, corpus: 7, objectives: 0, executions: 579, exec/sec: 34.00\r\n"] +[273.110118, "o", "[Testcase #0] run time: 0h-0m-17s, clients: 1, corpus: 8, objectives: 0, executions: 1322, exec/sec: 77.62\r\n"] +[273.111855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.111952, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.115664, "o", "0040\\r\\n\r\n"] +[273.116066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841492 (current time 26.7986193415)\r\n"] +[273.118882, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.11902, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.127182, "o", "01ff01ff7f\\r\\n\r\n"] +[273.12748, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664825 (current time 26.7987960085)\r\n"] +[273.129674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.129766, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.14133, "o", "3031323334353537\\r\\n\r\n"] +[273.141734, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002685 (current time 26.798960565)\r\n"] +[273.144141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.149345, "o", "2151a5\\r\\n\r\n"] +[273.149775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783368 (current time 26.7986774655)\r\n"] +[273.153017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.153129, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.164643, "o", "0151111111111111\\r\\n\r\n"] +[273.16495, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.16514, "o", "[tsffs info] Cancelling event with next time 2.9995010025 (current time 26.798959831)\r\n"] +[273.168391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.168514, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.181009, "o", "ff00fa11f922ff00\\r\\n\r\n"] +[273.181323, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949218 (current time 26.7989686535)\r\n"] +[273.184429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.184565, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.19729, "o", "7a69667a6b661e1e\\r\\n\r\n"] +[273.197618, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939345 (current time 26.798966899)\r\n"] +[273.2005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.212475, "o", "3031323334353637\\r\\n\r\n"] +[273.212756, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.212892, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[273.215326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.215534, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.220713, "o", "534300\\r\\n\r\n"] +[273.221042, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784543 (current time 26.7986762905)\r\n"] +[273.223834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.223974, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.236717, "o", "82ffffff30313233\\r\\n\r\n"] +[273.237158, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930365 (current time 26.798967797)\r\n"] +[273.240449, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.240552, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.253049, "o", "f2623839f0f0f08f\\r\\n\r\n"] +[273.253369, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.253493, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940505 (current time 26.798966783)\r\n"] +[273.256882, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.257055, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.268794, "o", "3031324434353637\\r\\n\r\n"] +[273.269205, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.26931, "o", "[tsffs info] Cancelling event with next time 2.999500206 (current time 26.7989606275)\r\n"] +[273.272506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.284401, "o", "0029303132333435\\r\\n\r\n"] +[273.284926, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500452 (current time 26.7989603815)\r\n"] +[273.288248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.300156, "o", "3128214b21313131\\r\\n\r\n"] +[273.300592, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.300672, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994205 (current time 26.798961413)\r\n"] +[273.304358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.304443, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.30701, "o", "05\\r\\n\r\n"] +[273.307367, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981335 (current time 26.7985627)\r\n"] +[273.309565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.309694, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.32176, "o", "757a7a6980fe2130\\r\\n\r\n"] +[273.322232, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.322312, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495253 (current time 26.7989655805)\r\n"] +[273.325173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.325265, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.336952, "o", "0000100099949494\\r\\n\r\n"] +[273.337384, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.337576, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500157 (current time 26.7989606765)\r\n"] +[273.340489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.340528, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.352273, "o", "00800021379600d5\\r\\n\r\n"] +[273.352717, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.352846, "o", "[tsffs info] Cancelling event with next time 2.999499309 (current time 26.7989615245)\r\n"] +[273.355846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.355937, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.356077, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.367772, "o", "0130313233343536\\r\\n\r\n"] +[273.368036, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.368324, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[273.371736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.371825, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.371874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.377174, "o", "a857a8\\r\\n\r\n"] +[273.377609, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.377789, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978187 (current time 26.7986789635)\r\n"] +[273.379894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.380169, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.385434, "o", "005151\\r\\n\r\n"] +[273.385918, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[273.389036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.389057, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.401267, "o", "0c490cdb30313233\\r\\n\r\n"] +[273.401513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.401765, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958645 (current time 26.798964969)\r\n"] +[273.40491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.405098, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.417357, "o", "f050f0f0514f5151\\r\\n\r\n"] +[273.417955, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956705 (current time 26.798965163)\r\n"] +[273.421472, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.421553, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.434196, "o", "0c0c0c0c0c0c6400\\r\\n\r\n"] +[273.434654, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939275 (current time 26.798966906)\r\n"] +[273.438194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.438278, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.449545, "o", "5f5f5f5f5f5f5f\\r\\n\r\n"] +[273.449884, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.450004, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995482475 (current time 26.798912586)\r\n"] +[273.45361, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.453853, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.466486, "o", "d2efcbf1f107c963\\r\\n\r\n"] +[273.466846, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.466952, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490728 (current time 26.7989701055)\r\n"] +[273.470639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.470872, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.482768, "o", "00007b9f71607171\\r\\n\r\n"] +[273.483215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979065 (current time 26.798962927)\r\n"] +[273.486946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.487008, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.498817, "o", "3031323334353637\\r\\n\r\n"] +[273.499043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.499284, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[273.502799, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.503021, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.508472, "o", "ff5151\\r\\n\r\n"] +[273.508781, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.508924, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997819995 (current time 26.798678834)\r\n"] +[273.511259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.511379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.521822, "o", "e8505050505051\\r\\n\r\n"] +[273.52218, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.522351, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555998 (current time 26.7989048355)\r\n"] +[273.525146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.525327, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.529013, "o", "0162\\r\\n\r\n"] +[273.529334, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.529467, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841357 (current time 26.7986194765)\r\n"] +[273.531216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.531407, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.543432, "o", "66757a7a696e6c17\\r\\n\r\n"] +[273.543714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.543924, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[273.546383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.546512, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.558481, "o", "7b226d6574616461\\r\\n\r\n"] +[273.558634, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.558838, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[273.561196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.56131, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.573284, "o", "66757a6e67213937\\r\\n\r\n"] +[273.573591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[273.576026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.576208, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.588081, "o", "66757a6e67213937\\r\\n\r\n"] +[273.588511, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[273.591367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.591477, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.608057, "o", "015151\\r\\n\r\n"] +[273.609022, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.609035, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.612482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.612598, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.617971, "o", "015151\\r\\n\r\n"] +[273.618395, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.618473, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.62152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.621606, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.621753, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.626871, "o", "015151\\r\\n\r\n"] +[273.627207, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.627487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.629545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.629622, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.634709, "o", "015151\\r\\n\r\n"] +[273.635045, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.635196, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.638278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.638466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.643558, "o", "015151\\r\\n\r\n"] +[273.643919, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.644032, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.646133, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.646335, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.651498, "o", "015151\\r\\n\r\n"] +[273.65175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.65197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.654995, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.655014, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.655145, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.660247, "o", "015151\\r\\n\r\n"] +[273.660565, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.660701, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.662885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.663133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.668389, "o", "015151\\r\\n\r\n"] +[273.668627, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.668783, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.668798, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.671786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.671834, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.672098, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.677161, "o", "015151\\r\\n\r\n"] +[273.677472, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.677608, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.677622, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.67977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.679782, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.680011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.685225, "o", "015151\\r\\n\r\n"] +[273.685493, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.685669, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.685686, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.688685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.688896, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.694043, "o", "015151\\r\\n\r\n"] +[273.694345, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.694486, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.696616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.696629, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.697103, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.702278, "o", "015151\\r\\n\r\n"] +[273.702484, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.7029, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.705532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.705586, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.706046, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.711115, "o", "015151\\r\\n\r\n"] +[273.711414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.713559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.713802, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.719227, "o", "015151\\r\\n\r\n"] +[273.719464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.719736, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.722622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.72296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.728141, "o", "015151\\r\\n\r\n"] +[273.72848, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.72877, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.73087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.731065, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.736477, "o", "015151\\r\\n\r\n"] +[273.736831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.736973, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.739641, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.739933, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.745048, "o", "015151\\r\\n\r\n"] +[273.745376, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.745421, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.74744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.747455, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.74769, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.752924, "o", "015151\\r\\n\r\n"] +[273.753198, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.753354, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.756246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.756465, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.761608, "o", "015151\\r\\n\r\n"] +[273.761916, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.762049, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.764072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.764128, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.764618, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.769764, "o", "015151\\r\\n\r\n"] +[273.770098, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.770344, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.773129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.773146, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.77327, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.778603, "o", "015151\\r\\n\r\n"] +[273.778969, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.77918, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.781119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.781438, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.786845, "o", "015151\\r\\n\r\n"] +[273.787121, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.787325, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.790062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.790298, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.795459, "o", "085151\\r\\n\r\n"] +[273.795825, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.796027, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[273.797922, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.798196, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.803521, "o", "015151\\r\\n\r\n"] +[273.803752, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.804018, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[273.806726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.807009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.819876, "o", "2cdb213937383961\\r\\n\r\n"] +[273.820493, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.820692, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496456 (current time 26.7989643775)\r\n"] +[273.823408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.823544, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.836014, "o", "e7e7e73130313233\\r\\n\r\n"] +[273.836442, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496627 (current time 26.7989642065)\r\n"] +[273.839678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.839735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.851992, "o", "30303132333435d2\\r\\n\r\n"] +[273.852339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.852563, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499343 (current time 26.7989614905)\r\n"] +[273.85578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.855872, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.868332, "o", "00ffeb640000f90f\\r\\n\r\n"] +[273.86874, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.868982, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949342 (current time 26.7989674135)\r\n"] +[273.872018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.872242, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.872332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.887675, "o", "3031323334343434\\r\\n\r\n"] +[273.888028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.888214, "o", "[tsffs info] Cancelling event with next time 2.9995003995 (current time 26.798960434)\r\n"] +[273.891138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.891276, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.896344, "o", "014531\\r\\n\r\n"] +[273.896752, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.896989, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784556 (current time 26.7986762775)\r\n"] +[273.898679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.898924, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.911054, "o", "365224313a41306e\\r\\n\r\n"] +[273.911472, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498017 (current time 26.7989628165)\r\n"] +[273.913928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.921733, "o", "5251015251\\r\\n\r\n"] +[273.922101, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[273.922261, "o", "[tsffs info] Cancelling event with next time 2.99967088 (current time 26.7987899535)\r\n"] +[273.925848, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.926044, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[273.926197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.940014, "o", "ababababab6fff32\\r\\n\r\n"] +[273.940312, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.940516, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485454 (current time 26.7989753795)\r\n"] +[273.943205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.956703, "o", "5e5e5e5e5e5e5e5e\\r\\n\r\n"] +[273.957073, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.957253, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903465 (current time 26.798970487)\r\n"] +[273.959914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[273.960068, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.965151, "o", "515151\\r\\n\r\n"] +[273.965588, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978445 (current time 26.7986763835)\r\n"] +[273.969552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[273.969782, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.975204, "o", "013080\\r\\n\r\n"] +[273.975513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[273.975696, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846215 (current time 26.798676212)\r\n"] +[273.978418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.990638, "o", "002727d414ff9797\\r\\n\r\n"] +[273.991007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962405 (current time 26.798964593)\r\n"] +[273.993523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[273.997518, "o", "5d5c\\r\\n\r\n"] +[273.997878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838855 (current time 26.7986219785)\r\n"] +[273.999763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.012894, "o", "ffff0f0111ffffff\\r\\n\r\n"] +[274.013259, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487141 (current time 26.7989736925)\r\n"] +[274.015674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.027866, "o", "d2323233343b3937\\r\\n\r\n"] +[274.028193, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978475 (current time 26.798962986)\r\n"] +[274.03064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.030767, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.034932, "o", "df90\\r\\n\r\n"] +[274.035239, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388165 (current time 26.798622017)\r\n"] +[274.038328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.050657, "o", "3b41b8b8b8b83031\\r\\n\r\n"] +[274.050931, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944105 (current time 26.798966423)\r\n"] +[274.054621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.067166, "o", "8c8c8c8c8c8c8c00\\r\\n\r\n"] +[274.067618, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491604 (current time 26.7989692295)\r\n"] +[274.071368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.071552, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.083288, "o", "5126262626262e26\\r\\n\r\n"] +[274.083663, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498885 (current time 26.7989619485)\r\n"] +[274.087358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.087574, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.099523, "o", "ae51303132333435\\r\\n\r\n"] +[274.099841, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498104 (current time 26.7989627295)\r\n"] +[274.103519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.114226, "o", "d8015151015151\\r\\n\r\n"] +[274.114588, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995561145 (current time 26.798904719)\r\n"] +[274.117522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.121726, "o", "af75\\r\\n\r\n"] +[274.121969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388 (current time 26.7986220335)\r\n"] +[274.124581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.137369, "o", "67658bdcdcdcdcdc\\r\\n\r\n"] +[274.13772, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994871675 (current time 26.798973666)\r\n"] +[274.140706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.145808, "o", "205169\\r\\n\r\n"] +[274.146147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997843445 (current time 26.798676489)\r\n"] +[274.147931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.151762, "o", "8000\\r\\n\r\n"] +[274.152119, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414 (current time 26.7986194335)\r\n"] +[274.155031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.160178, "o", "510151\\r\\n\r\n"] +[274.160512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[274.162533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.175155, "o", "b1dcdcdcdc23dc20\\r\\n\r\n"] +[274.17554, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487733 (current time 26.7989731005)\r\n"] +[274.178209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.183249, "o", "015151\\r\\n\r\n"] +[274.183631, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[274.186968, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.187031, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.189822, "o", "d4\\r\\n\r\n"] +[274.190222, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969095 (current time 26.798563924)\r\n"] +[274.192412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.204177, "o", "1515303132333435\\r\\n\r\n"] +[274.204481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500411 (current time 26.7989604225)\r\n"] +[274.207212, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.22029, "o", "e5bd35ca37383961\\r\\n\r\n"] +[274.220603, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941025 (current time 26.798966731)\r\n"] +[274.223663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.231902, "o", "c9c9c9c8c9\\r\\n\r\n"] +[274.232245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664343 (current time 26.7987964905)\r\n"] +[274.236872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.249579, "o", "5ca2a3a3a3a3a3a3\\r\\n\r\n"] +[274.249894, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491405 (current time 26.7989694285)\r\n"] +[274.254118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.254208, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.267225, "o", "0130ae727bdeaffe\\r\\n\r\n"] +[274.267476, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.267648, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489795 (current time 26.7989710385)\r\n"] +[274.271316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.271462, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.27158, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.283305, "o", "8038304b32303132\\r\\n\r\n"] +[274.283612, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.283715, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499291 (current time 26.7989615425)\r\n"] +[274.28747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.287565, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.287676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.299428, "o", "7e67883031323334\\r\\n\r\n"] +[274.299766, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.299915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498769 (current time 26.7989620645)\r\n"] +[274.30365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.303752, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.30389, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.31566, "o", "6666666601666666\\r\\n\r\n"] +[274.315979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.316134, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994955 (current time 26.798961338)\r\n"] +[274.320024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.320153, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.320327, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.33223, "o", "626210ff41414162\\r\\n\r\n"] +[274.332533, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.332633, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497946 (current time 26.7989628875)\r\n"] +[274.336481, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.336651, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.3367, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.348414, "o", "3031323334353638\\r\\n\r\n"] +[274.348707, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.348795, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500233 (current time 26.7989606005)\r\n"] +[274.352389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.352475, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.352584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.364506, "o", "373636363630cf32\\r\\n\r\n"] +[274.364807, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.364919, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976805 (current time 26.798963153)\r\n"] +[274.368347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.368497, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.38068, "o", "000080002d0d0d0d\\r\\n\r\n"] +[274.380966, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.381132, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963355 (current time 26.798964498)\r\n"] +[274.384217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.384281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.395146, "o", "fb00ff05010146\\r\\n\r\n"] +[274.395433, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999552701 (current time 26.7989081325)\r\n"] +[274.397888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.398077, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.409689, "o", "3031323261626364\\r\\n\r\n"] +[274.410116, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.410326, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002795 (current time 26.798960554)\r\n"] +[274.412762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.41284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.425737, "o", "6ea421fbf0f0f0f0\\r\\n\r\n"] +[274.426204, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910635 (current time 26.79896977)\r\n"] +[274.428636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.428755, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.440656, "o", "21c7413164319931\\r\\n\r\n"] +[274.441065, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.441173, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989375 (current time 26.798961896)\r\n"] +[274.443765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.443936, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.455374, "o", "3030303030303030\\r\\n\r\n"] +[274.455693, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.455923, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[274.458707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.458816, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.470705, "o", "ff51511414141414\\r\\n\r\n"] +[274.471019, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.471189, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980045 (current time 26.798962829)\r\n"] +[274.474128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.474332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.48602, "o", "3939393939090000\\r\\n\r\n"] +[274.486368, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.48641, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998755 (current time 26.798960958)\r\n"] +[274.489594, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.489659, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.48979, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.494049, "o", "bfbf\\r\\n\r\n"] +[274.494376, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.494536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998365775 (current time 26.798624256)\r\n"] +[274.496605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.496738, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.50834, "o", "3031323334353637\\r\\n\r\n"] +[274.508595, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.508807, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[274.511181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.511318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.523608, "o", "27c839f09d9d619d\\r\\n\r\n"] +[274.524051, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937355 (current time 26.798967098)\r\n"] +[274.526671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.526745, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.533444, "o", "075151a4\\r\\n\r\n"] +[274.533817, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997264795 (current time 26.798734354)\r\n"] +[274.537199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.537307, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.550062, "o", "f7f7f7f7f7f7f7f7\\r\\n\r\n"] +[274.55044, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897385 (current time 26.798971095)\r\n"] +[274.554008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.554226, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.559568, "o", "ac5201\\r\\n\r\n"] +[274.559866, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822905 (current time 26.798678543)\r\n"] +[274.561966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.562113, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.574236, "o", "6e6e6e6666ff007f\\r\\n\r\n"] +[274.574563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949263 (current time 26.7989682035)\r\n"] +[274.57708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.57729, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.588852, "o", "3000124120124120\\r\\n\r\n"] +[274.58907, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009595 (current time 26.798959874)\r\n"] +[274.591808, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.591931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.60444, "o", "b5abe7d2e0f0b54b\\r\\n\r\n"] +[274.604791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898945 (current time 26.798970939)\r\n"] +[274.607901, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.620573, "o", "00ddd835dfdfdf33\\r\\n\r\n"] +[274.620892, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489618 (current time 26.7989712155)\r\n"] +[274.623866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.627691, "o", "0164\\r\\n\r\n"] +[274.62804, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841313 (current time 26.7986195205)\r\n"] +[274.629796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.641669, "o", "01515121212121df\\r\\n\r\n"] +[274.642074, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983325 (current time 26.798962501)\r\n"] +[274.64458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.644799, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.656812, "o", "1051515151515151\\r\\n\r\n"] +[274.65713, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.65717, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004475 (current time 26.798960386)\r\n"] +[274.659594, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.659761, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.668512, "o", "faff00ffe1\\r\\n\r\n"] +[274.669079, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996625695 (current time 26.798798264)\r\n"] +[274.673488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.673576, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.685888, "o", "354036373839616f\\r\\n\r\n"] +[274.686191, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.686403, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986065 (current time 26.798962227)\r\n"] +[274.689749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.689856, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.690038, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.695525, "o", "015252\\r\\n\r\n"] +[274.695824, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.695965, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784531 (current time 26.7986763025)\r\n"] +[274.697893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.697977, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.710917, "o", "510152013e3c3c3c\\r\\n\r\n"] +[274.711246, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.711265, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495884 (current time 26.7989649495)\r\n"] +[274.713848, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.713891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.726194, "o", "6464646441616263\\r\\n\r\n"] +[274.72654, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.726583, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499867 (current time 26.7989609665)\r\n"] +[274.729327, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.72942, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.742011, "o", "0100303132333435\\r\\n\r\n"] +[274.742406, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006935 (current time 26.79896014)\r\n"] +[274.744787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.744815, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.745104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.751754, "o", "00805151\\r\\n\r\n"] +[274.75195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.752075, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727749 (current time 26.7987330845)\r\n"] +[274.755189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.755218, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.755336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.76567, "o", "01515151015151\\r\\n\r\n"] +[274.765926, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.766107, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999557398 (current time 26.7989034355)\r\n"] +[274.769867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.770101, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.7702, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.783052, "o", "ffaef0f8ffaef03a\\r\\n\r\n"] +[274.783362, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.783514, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486072 (current time 26.7989747615)\r\n"] +[274.787401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.787548, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.799471, "o", "6bdf363500354035\\r\\n\r\n"] +[274.79976, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.799884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[274.799909, "o", "[tsffs info] Cancelling event with next time 2.999496747 (current time 26.7989640865)\r\n"] +[274.803775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.803799, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.803945, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.81629, "o", "0080ffff000000db\\r\\n\r\n"] +[274.816575, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.816743, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493723 (current time 26.7989671105)\r\n"] +[274.820573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.820653, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.820739, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.832863, "o", "3031ff41b6b64141\\r\\n\r\n"] +[274.833143, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.833373, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495695 (current time 26.7989651385)\r\n"] +[274.837095, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.837249, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.837287, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.850215, "o", "e6e6e6e6e619e63a\\r\\n\r\n"] +[274.850641, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.850815, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915115 (current time 26.798969322)\r\n"] +[274.854337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.854483, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.860136, "o", "562856\\r\\n\r\n"] +[274.860473, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.86062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997841345 (current time 26.798676699)\r\n"] +[274.862774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.863035, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.875816, "o", "0be4f4bfa5e9379e\\r\\n\r\n"] +[274.87616, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.876359, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905305 (current time 26.798970303)\r\n"] +[274.878938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.87903, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.884826, "o", "519c51\\r\\n\r\n"] +[274.885279, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783153 (current time 26.7986776805)\r\n"] +[274.88856, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.88876, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.894298, "o", "ff7f51\\r\\n\r\n"] +[274.894629, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.894874, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997806765 (current time 26.798680157)\r\n"] +[274.896943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.897036, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.900968, "o", "011e\\r\\n\r\n"] +[274.901454, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.901675, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840246 (current time 26.7986205875)\r\n"] +[274.905407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.905511, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.905573, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.918021, "o", "6162632230414141\\r\\n\r\n"] +[274.918317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.918466, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500398 (current time 26.7989604355)\r\n"] +[274.921947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.921991, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.92218, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.926279, "o", "3b9a\\r\\n\r\n"] +[274.926541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.926667, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389055 (current time 26.798621928)\r\n"] +[274.929168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.929307, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.941192, "o", "6364656641414141\\r\\n\r\n"] +[274.941462, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.941649, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[274.944633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[274.944724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.950337, "o", "013f30\\r\\n\r\n"] +[274.950543, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.950683, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978343 (current time 26.7986774035)\r\n"] +[274.954289, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.954392, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.954546, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.959977, "o", "000000\\r\\n\r\n"] +[274.960315, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.9605, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997849225 (current time 26.798675911)\r\n"] +[274.963082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.963116, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.963268, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.975425, "o", "4242424242424242\\r\\n\r\n"] +[274.975819, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.976009, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003585 (current time 26.798960475)\r\n"] +[274.979031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.979059, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.979338, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[274.984629, "o", "010101\\r\\n\r\n"] +[274.984906, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[274.985058, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784825 (current time 26.7986760085)\r\n"] +[274.988476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[274.988566, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[274.98871, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.000447, "o", "010101010001016f\\r\\n\r\n"] +[275.000814, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.001037, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499937 (current time 26.7989608965)\r\n"] +[275.004497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.004663, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.004861, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.017233, "o", "fe51de0030d80b31\\r\\n\r\n"] +[275.01775, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.017943, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934795 (current time 26.798967354)\r\n"] +[275.021716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.021811, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.03393, "o", "2151303132333435\\r\\n\r\n"] +[275.034322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004815 (current time 26.798960352)\r\n"] +[275.038999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.039146, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.039291, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.052625, "o", "3cd5d5d5d5d5d5d5\\r\\n\r\n"] +[275.052754, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.053095, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490641 (current time 26.7989701925)\r\n"] +[275.056124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.068507, "o", "2152bf4040404086\\r\\n\r\n"] +[275.069, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.069135, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980785 (current time 26.798962755)\r\n"] +[275.072634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.072689, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.072801, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.082559, "o", "d8d8d80111b7\\r\\n\r\n"] +[275.082873, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.082987, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609119 (current time 26.7988517145)\r\n"] +[275.086986, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.087059, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.087206, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.099562, "o", "01511a51ae510151\\r\\n\r\n"] +[275.099992, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972055 (current time 26.798963628)\r\n"] +[275.103978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.104164, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.109447, "o", "010066\\r\\n\r\n"] +[275.109794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[275.109895, "o", "[tsffs info] Cancelling event with next time 2.999784597 (current time 26.7986762365)\r\n"] +[275.111943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.112193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.124709, "o", "2134353637383961\\r\\n\r\n"] +[275.125062, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.125229, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499892 (current time 26.7989609415)\r\n"] +[275.127759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.127884, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.13959, "o", "0151515151515151\\r\\n\r\n"] +[275.139787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.140077, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004475 (current time 26.798960386)\r\n"] +[275.142644, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.142777, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.154385, "o", "3031327533333333\\r\\n\r\n"] +[275.154549, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.154965, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500336 (current time 26.7989604975)\r\n"] +[275.157707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.15779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.169837, "o", "9aa2303132333431\\r\\n\r\n"] +[275.170028, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.170219, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981745 (current time 26.798962659)\r\n"] +[275.173339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.173407, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.185141, "o", "0151303132333435\\r\\n\r\n"] +[275.185422, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.185691, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[275.18898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.189121, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.189351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.201654, "o", "39613e3e3e3e3e3e\\r\\n\r\n"] +[275.201984, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.202156, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492961 (current time 26.7989678725)\r\n"] +[275.205609, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.20572, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.205995, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.215021, "o", "01513e015151\\r\\n\r\n"] +[275.215271, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996130235 (current time 26.79884781)\r\n"] +[275.218645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.218812, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.218856, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.224398, "o", "015152\\r\\n\r\n"] +[275.2246, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.224791, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784553 (current time 26.7986762805)\r\n"] +[275.227005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.227169, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.23112, "o", "01af\\r\\n\r\n"] +[275.231438, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.23152, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839069 (current time 26.7986217645)\r\n"] +[275.234521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.234605, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.234719, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.239978, "o", "000051\\r\\n\r\n"] +[275.240337, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.240628, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784765 (current time 26.7986760685)\r\n"] +[275.242892, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.243061, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.255615, "o", "3a8b9ee59ee7ae72\\r\\n\r\n"] +[275.255933, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903725 (current time 26.798970461)\r\n"] +[275.258561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.25876, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.270912, "o", "01af5101af513031\\r\\n\r\n"] +[275.271335, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496036 (current time 26.7989647975)\r\n"] +[275.274169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.27774, "o", "1451\\r\\n\r\n"] +[275.278046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841302 (current time 26.7986195315)\r\n"] +[275.279726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.279761, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.279909, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.29271, "o", "ffffffff30313233\\r\\n\r\n"] +[275.292915, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906735 (current time 26.79897016)\r\n"] +[275.295284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.295375, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.300662, "o", "800051\\r\\n\r\n"] +[275.301009, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845745 (current time 26.798676259)\r\n"] +[275.304268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.304402, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.316838, "o", "0fee3032326e6e6e\\r\\n\r\n"] +[275.317143, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.317377, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930985 (current time 26.798967735)\r\n"] +[275.321058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.321135, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.321329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.334172, "o", "000b0f00800f0f0f\\r\\n\r\n"] +[275.334757, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949735 (current time 26.79896586)\r\n"] +[275.338354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.338718, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.350403, "o", "9090000090909090\\r\\n\r\n"] +[275.350843, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.35088, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002655 (current time 26.798960568)\r\n"] +[275.354706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.35474, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.366654, "o", "6565656462633243\\r\\n\r\n"] +[275.367102, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997885 (current time 26.798961045)\r\n"] +[275.370811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.370943, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.376209, "o", "015136\\r\\n\r\n"] +[275.376488, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.376753, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784508 (current time 26.7986763255)\r\n"] +[275.378852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.378931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.391048, "o", "003961f0f0f0f0f0\\r\\n\r\n"] +[275.391509, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494586 (current time 26.7989662475)\r\n"] +[275.393916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.394026, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.40581, "o", "7a696e6721516566\\r\\n\r\n"] +[275.406199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497297 (current time 26.7989635365)\r\n"] +[275.408878, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.408931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.420987, "o", "176000f107c962c2\\r\\n\r\n"] +[275.421369, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496769 (current time 26.7989640645)\r\n"] +[275.424195, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.436001, "o", "6430313233343536\\r\\n\r\n"] +[275.436354, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[275.439387, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.444565, "o", "51e851\\r\\n\r\n"] +[275.444854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831375 (current time 26.798677696)\r\n"] +[275.446658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.459102, "o", "64e9e9e9e9e9d8e9\\r\\n\r\n"] +[275.459417, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909025 (current time 26.798969931)\r\n"] +[275.461957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.473699, "o", "d933333333217233\\r\\n\r\n"] +[275.474027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990145 (current time 26.798961819)\r\n"] +[275.476437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.488575, "o", "00b70b410b40a547\\r\\n\r\n"] +[275.488945, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495984 (current time 26.7989648495)\r\n"] +[275.491549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.503661, "o", "1717013233343536\\r\\n\r\n"] +[275.504084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002395 (current time 26.798960594)\r\n"] +[275.507062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.512217, "o", "095151\\r\\n\r\n"] +[275.5126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784388 (current time 26.7986764455)\r\n"] +[275.514253, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.526078, "o", "50c70b6666303132\\r\\n\r\n"] +[275.526512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979365 (current time 26.798962897)\r\n"] +[275.52908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.531795, "o", "af\\r\\n\r\n"] +[275.532187, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.532361, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998957695 (current time 26.798565064)\r\n"] +[275.536606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.536801, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.549927, "o", "01cbffd80bff9dde\\r\\n\r\n"] +[275.550515, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487253 (current time 26.7989735805)\r\n"] +[275.554974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.555262, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.559422, "o", "f65c\\r\\n\r\n"] +[275.559703, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99983878 (current time 26.7986220535)\r\n"] +[275.562634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.57445, "o", "4431323314000049\\r\\n\r\n"] +[275.574697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005375 (current time 26.798960296)\r\n"] +[275.577857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.583277, "o", "01ae1c\\r\\n\r\n"] +[275.583678, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.583879, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781158 (current time 26.7986796755)\r\n"] +[275.588275, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.588399, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.588535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.601329, "o", "66304733cbcbcb59\\r\\n\r\n"] +[275.601691, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.601887, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949312 (current time 26.7989677135)\r\n"] +[275.606336, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.60647, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.606587, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.618485, "o", "0148b74848484848\\r\\n\r\n"] +[275.618833, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498437 (current time 26.7989623965)\r\n"] +[275.623352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.623422, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.623609, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.627612, "o", "e944\\r\\n\r\n"] +[275.627801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998398945 (current time 26.798620939)\r\n"] +[275.630501, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.630599, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.632904, "o", "0e\\r\\n\r\n"] +[275.633346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896979 (current time 26.7985638545)\r\n"] +[275.637023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.637171, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.649251, "o", "3839411b03d2f3a8\\r\\n\r\n"] +[275.649629, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.649875, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949551 (current time 26.7989653235)\r\n"] +[275.655566, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.655847, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.655994, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.666493, "o", "006060600b6060\\r\\n\r\n"] +[275.667001, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.667248, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995563155 (current time 26.798904518)\r\n"] +[275.671222, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.677065, "o", "5ed80b\\r\\n\r\n"] +[275.677269, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997808745 (current time 26.798679959)\r\n"] +[275.679573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.679779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.685015, "o", "916451\\r\\n\r\n"] +[275.685355, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784268 (current time 26.7986765655)\r\n"] +[275.688732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.700799, "o", "ff35353535353535\\r\\n\r\n"] +[275.701112, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975535 (current time 26.79896328)\r\n"] +[275.70456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.704676, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.707336, "o", "f7\\r\\n\r\n"] +[275.70801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896778 (current time 26.7985640555)\r\n"] +[275.71103, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.711069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.716166, "o", "510151\\r\\n\r\n"] +[275.716551, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[275.720826, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.721001, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.730595, "o", "fed842bd5451\\r\\n\r\n"] +[275.730949, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.73098, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[275.731067, "o", "[tsffs info] Cancelling event with next time 2.999607907 (current time 26.7988529265)\r\n"] +[275.73534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.735504, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.735668, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.747672, "o", "ff30313233343536\\r\\n\r\n"] +[275.747917, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.748013, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[275.74813, "o", "[tsffs info] Cancelling event with next time 2.9994978935 (current time 26.79896294)\r\n"] +[275.75254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.752687, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.752837, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.755498, "o", "65\\r\\n\r\n"] +[275.755834, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.756066, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999897987 (current time 26.7985628465)\r\n"] +[275.759355, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.759501, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.759676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.771997, "o", "2731814c3334cacb\\r\\n\r\n"] +[275.772434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944945 (current time 26.798966339)\r\n"] +[275.774946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.775331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.780251, "o", "8f4151\\r\\n\r\n"] +[275.780603, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831395 (current time 26.798677694)\r\n"] +[275.782427, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.78266, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.794514, "o", "65694141cd323435\\r\\n\r\n"] +[275.794893, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.795047, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976855 (current time 26.798963148)\r\n"] +[275.797339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.797535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.809406, "o", "4343434300ff6464\\r\\n\r\n"] +[275.809826, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.810024, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977785 (current time 26.798963055)\r\n"] +[275.812369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.816111, "o", "8101\\r\\n\r\n"] +[275.816445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841335 (current time 26.7986194985)\r\n"] +[275.819951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.820167, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.832195, "o", "dd30313233323232\\r\\n\r\n"] +[275.832527, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498207 (current time 26.7989626265)\r\n"] +[275.835923, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.836024, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.847962, "o", "1d36373839616263\\r\\n\r\n"] +[275.848239, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.848466, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949865 (current time 26.7989621835)\r\n"] +[275.85153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.859449, "o", "364141426f\\r\\n\r\n"] +[275.859696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[275.859722, "o", "[tsffs info] Cancelling event with next time 2.9996694965 (current time 26.798791337)\r\n"] +[275.862275, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.867908, "o", "01aed8\\r\\n\r\n"] +[275.868233, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.868561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997809845 (current time 26.798679849)\r\n"] +[275.871889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.872069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.884006, "o", "99000000000000ff\\r\\n\r\n"] +[275.884497, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985355 (current time 26.798962298)\r\n"] +[275.887984, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.888188, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.900384, "o", "ea00647f00000010\\r\\n\r\n"] +[275.900775, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.900899, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949736 (current time 26.7989634735)\r\n"] +[275.90457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.91789, "o", "ededededededcafe\\r\\n\r\n"] +[275.918226, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.91844, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999481399 (current time 26.7989794345)\r\n"] +[275.921811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.921873, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.93151, "o", "03ec03ec06d0\\r\\n\r\n"] +[275.931838, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996083365 (current time 26.798852497)\r\n"] +[275.935189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.935315, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[275.935533, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.94091, "o", "8051f0\\r\\n\r\n"] +[275.941271, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832705 (current time 26.798677563)\r\n"] +[275.943975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[275.944113, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.949448, "o", "eb5051\\r\\n\r\n"] +[275.949897, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[275.950137, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782158 (current time 26.7986786755)\r\n"] +[275.953786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.954084, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.967318, "o", "ffffffffffffffff\\r\\n\r\n"] +[275.967794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[275.968012, "o", "[tsffs info] Cancelling event with next time 2.9994807185 (current time 26.798980115)\r\n"] +[275.971322, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.971516, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[275.984269, "o", "7fffffffd80b4040\\r\\n\r\n"] +[275.984642, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[275.98488, "o", "[tsffs info] Cancelling event with next time 2.9994894375 (current time 26.798971396)\r\n"] +[275.988167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[275.988373, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.001155, "o", "6c6c6c6c6c6c6c6c\\r\\n\r\n"] +[276.001375, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905305 (current time 26.798970303)\r\n"] +[276.005014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.005113, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.005188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.009544, "o", "7fff\\r\\n\r\n"] +[276.010071, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[276.012014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.02379, "o", "3536373839616263\\r\\n\r\n"] +[276.024123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[276.026694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.039214, "o", "d8d8d8d8d8d8d8d8\\r\\n\r\n"] +[276.03949, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.039679, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994900545 (current time 26.798970779)\r\n"] +[276.042307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.042327, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.042636, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.054856, "o", "7a696e667a696e66\\r\\n\r\n"] +[276.055107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.05517, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946895 (current time 26.798966144)\r\n"] +[276.059064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.059241, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.059383, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.063301, "o", "e9c4\\r\\n\r\n"] +[276.063615, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.063778, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838758 (current time 26.7986220755)\r\n"] +[276.066467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.066671, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.073218, "o", "00d00200\\r\\n\r\n"] +[276.073479, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.073663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997269495 (current time 26.798733884)\r\n"] +[276.076146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.081153, "o", "303132\\r\\n\r\n"] +[276.081478, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.081509, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846015 (current time 26.798676232)\r\n"] +[276.083794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.092479, "o", "ff80bdff80\\r\\n\r\n"] +[276.092834, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.0929, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996635365 (current time 26.798797297)\r\n"] +[276.095511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.095634, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.107622, "o", "323321669a666666\\r\\n\r\n"] +[276.107941, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986305 (current time 26.798962203)\r\n"] +[276.110597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.110695, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.115745, "o", "015180\\r\\n\r\n"] +[276.116078, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784542 (current time 26.7986762915)\r\n"] +[276.119688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.119817, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.132342, "o", "d2d2d2d2d2d2f1d2\\r\\n\r\n"] +[276.132667, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.132837, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491111 (current time 26.7989697225)\r\n"] +[276.136964, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.137029, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.137199, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.150028, "o", "2b2b2b2b2b2b2b6b\\r\\n\r\n"] +[276.150429, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.150486, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914345 (current time 26.798969399)\r\n"] +[276.154248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.154419, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.154495, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.166815, "o", "404040405666ff3a\\r\\n\r\n"] +[276.167086, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.167253, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496753 (current time 26.7989640805)\r\n"] +[276.170932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.171062, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.171146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.176428, "o", "510151\\r\\n\r\n"] +[276.1767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.176811, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[276.178991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.179145, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.190899, "o", "6465664141414141\\r\\n\r\n"] +[276.191092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.191183, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500118 (current time 26.7989607155)\r\n"] +[276.193994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.194056, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.206192, "o", "808080807a7e8f8f\\r\\n\r\n"] +[276.206472, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.206617, "o", "[tsffs info] Cancelling event with next time 2.999495014 (current time 26.7989658195)\r\n"] +[276.20916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.209329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.22173, "o", "cacaca66666620ff\\r\\n\r\n"] +[276.2221, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.222185, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490781 (current time 26.7989700525)\r\n"] +[276.225034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.225214, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.23766, "o", "515666ff3a8a9ee5\\r\\n\r\n"] +[276.237991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927105 (current time 26.798968123)\r\n"] +[276.241228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.241371, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.253099, "o", "0030303233343536\\r\\n\r\n"] +[276.253464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.253722, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500534 (current time 26.7989602995)\r\n"] +[276.256621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.256729, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.269219, "o", "f0f0f0f112f0f0f0\\r\\n\r\n"] +[276.269545, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.269744, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492335 (current time 26.7989684985)\r\n"] +[276.272974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.273128, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.285112, "o", "6465664141414141\\r\\n\r\n"] +[276.285403, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.285589, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500118 (current time 26.7989607155)\r\n"] +[276.28902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.289164, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.289316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.301231, "o", "7f45303132333435\\r\\n\r\n"] +[276.301576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.301763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499022 (current time 26.7989618115)\r\n"] +[276.305086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.305193, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.305283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.317837, "o", "d6d5dad6d6d6d6d6\\r\\n\r\n"] +[276.318136, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.318317, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893895 (current time 26.798971444)\r\n"] +[276.321638, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.3218, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.321973, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.334002, "o", "b479797879b47979\\r\\n\r\n"] +[276.33437, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.334561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966335 (current time 26.7989642)\r\n"] +[276.337978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.33817, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.33843, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.350163, "o", "0130313232343536\\r\\n\r\n"] +[276.35049, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.350731, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004925 (current time 26.798960341)\r\n"] +[276.354224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.354447, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.354694, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.367249, "o", "f5f50bf5f50ac00b\\r\\n\r\n"] +[276.367483, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.367703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.367735, "o", "[tsffs info] Cancelling event with next time 2.9994910415 (current time 26.798969792)\r\n"] +[276.37129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.371458, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.371596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.376774, "o", "015150\\r\\n\r\n"] +[276.376986, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.377147, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[276.379226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.379236, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.379261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.382991, "o", "3332\\r\\n\r\n"] +[276.383399, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.383473, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841302 (current time 26.7986195315)\r\n"] +[276.38712, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.387225, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.387265, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.400491, "o", "40a5e940e1ff7eff\\r\\n\r\n"] +[276.400821, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.400869, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905925 (current time 26.798970241)\r\n"] +[276.404504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.404576, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.404725, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.41727, "o", "d7b3b3b30000ffff\\r\\n\r\n"] +[276.41772, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.417787, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.4179, "o", "[tsffs info] Cancelling event with next time 2.999491098 (current time 26.7989697355)\r\n"] +[276.421514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.421663, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.42188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.434502, "o", "62c2ebfe0cdb0151\\r\\n\r\n"] +[276.434704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.434887, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911485 (current time 26.798969685)\r\n"] +[276.438484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.438718, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.438825, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.450839, "o", "494924ff11000035\\r\\n\r\n"] +[276.451124, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.451354, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979175 (current time 26.798962916)\r\n"] +[276.454911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.454991, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.458913, "o", "d130\\r\\n\r\n"] +[276.459375, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402295 (current time 26.798620604)\r\n"] +[276.462544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.462678, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.46285, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.466675, "o", "400b\\r\\n\r\n"] +[276.466972, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.46716, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402895 (current time 26.798620544)\r\n"] +[276.470518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.470704, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.482346, "o", "3435363738396162\\r\\n\r\n"] +[276.482632, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.482757, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499778 (current time 26.7989610555)\r\n"] +[276.486605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.486771, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.486976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.492144, "o", "015151\\r\\n\r\n"] +[276.492455, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.492746, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[276.494893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.495016, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.50657, "o", "6765303132333435\\r\\n\r\n"] +[276.506885, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.507009, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001315 (current time 26.798960702)\r\n"] +[276.509519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.509574, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.521477, "o", "66757a6e67213937\\r\\n\r\n"] +[276.521766, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.521951, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[276.524646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.524719, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.524811, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.537434, "o", "66757a7a696e6c17\\r\\n\r\n"] +[276.537604, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.537722, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[276.540898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.541083, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.553454, "o", "66757a7a696e6c17\\r\\n\r\n"] +[276.553728, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.553972, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[276.556872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.556971, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.569392, "o", "66757a7a696e6c17\\r\\n\r\n"] +[276.569636, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.569797, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[276.573059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.57322, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.573339, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.585999, "o", "66757a7a696e6c17\\r\\n\r\n"] +[276.586339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.586511, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[276.58973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.589895, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.590219, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.602262, "o", "66757a7a696e6c17\\r\\n\r\n"] +[276.60255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.602717, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.603022, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[276.606182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.606308, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.606322, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.606742, "o", "\\r\\n\r\n"] +[276.607204, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.607271, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.607319, "o", "[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[276.609191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.609206, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.609242, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.609543, "o", "\\r\\n\r\n"] +[276.609996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.61007, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.610082, "o", "[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[276.611673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.611686, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.611717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.611998, "o", "\\r\\n\r\n"] +[276.612461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.612535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.612546, "o", "[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[276.613976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.613988, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.614216, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.624195, "o", "62c2ebfe0cdb\\r\\n\r\n"] +[276.624458, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.624583, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.624611, "o", "[tsffs info] Cancelling event with next time 2.9996046745 (current time 26.798856159)\r\n"] +[276.627108, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.627211, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.627321, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.639546, "o", "66757a7a696e6c17\\r\\n\r\n"] +[276.639717, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.639869, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.639878, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[276.642416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.642449, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.64283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.655364, "o", "757a7a696e6c17de\\r\\n\r\n"] +[276.65565, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.655867, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926455 (current time 26.798968188)\r\n"] +[276.658404, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.65846, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.658818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.671025, "o", "667a7a696e6c17de\\r\\n\r\n"] +[276.671242, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.671479, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926505 (current time 26.798968183)\r\n"] +[276.67453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.674645, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.687016, "o", "66757a696e6c17de\\r\\n\r\n"] +[276.687377, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.687409, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[276.687419, "o", "[tsffs info] Cancelling event with next time 2.9994937035 (current time 26.79896713)\r\n"] +[276.690596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.690673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.703034, "o", "66757a696e6c17de\\r\\n\r\n"] +[276.703528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.703722, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937035 (current time 26.79896713)\r\n"] +[276.706741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.706935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.719389, "o", "66757a7a6e6c17de\\r\\n\r\n"] +[276.719764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.719922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927045 (current time 26.798968129)\r\n"] +[276.723314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.723458, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.735828, "o", "66757a7a696c17de\\r\\n\r\n"] +[276.735954, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.736197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493761 (current time 26.7989670725)\r\n"] +[276.739577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.739704, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.752514, "o", "66757a7a696e17de\\r\\n\r\n"] +[276.75288, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.753073, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493713 (current time 26.7989671205)\r\n"] +[276.756434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.756507, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.75662, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.769165, "o", "66757a7a696edeaf\\r\\n\r\n"] +[276.769452, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.769498, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491433 (current time 26.7989694005)\r\n"] +[276.773058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.773124, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.785765, "o", "66757a7a696eaffe\\r\\n\r\n"] +[276.785986, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.786225, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913795 (current time 26.798969454)\r\n"] +[276.789573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.789679, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.802126, "o", "66757a7a696efe78\\r\\n\r\n"] +[276.802377, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.802577, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935015 (current time 26.798967332)\r\n"] +[276.806059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.806231, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.818596, "o", "66757a7a696e781b\\r\\n\r\n"] +[276.818729, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.818865, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949485 (current time 26.7989659835)\r\n"] +[276.822583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.822692, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.822726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.835145, "o", "66757a7a696e1b03\\r\\n\r\n"] +[276.835413, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.835603, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495139 (current time 26.7989656945)\r\n"] +[276.838951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.839156, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.851672, "o", "66757a7a696e0340\\r\\n\r\n"] +[276.85204, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.852182, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962755 (current time 26.798964558)\r\n"] +[276.855601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.855697, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.855871, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.868652, "o", "66757a7a696e4000\\r\\n\r\n"] +[276.868857, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.869033, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963535 (current time 26.79896448)\r\n"] +[276.872394, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.872501, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.872625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.884834, "o", "66757a7a696e00a8\\r\\n\r\n"] +[276.885179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.885424, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950765 (current time 26.798965757)\r\n"] +[276.888753, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.888871, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.888975, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.901625, "o", "66757a7a696ea8cb\\r\\n\r\n"] +[276.9019, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.902087, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492639 (current time 26.7989681945)\r\n"] +[276.90554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.90569, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.918224, "o", "66757a7a696ecbf1\\r\\n\r\n"] +[276.91868, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492678 (current time 26.7989681555)\r\n"] +[276.922002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.922221, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.934581, "o", "66757a7a696ef107\\r\\n\r\n"] +[276.934826, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.935006, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494939 (current time 26.7989658945)\r\n"] +[276.93847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.938632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.95104, "o", "66757a7a696e07c9\\r\\n\r\n"] +[276.951378, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.951569, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494821 (current time 26.7989660125)\r\n"] +[276.954978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.955102, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.955245, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.967797, "o", "66757a7a696ec962\\r\\n\r\n"] +[276.968091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.968309, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994947965 (current time 26.798966037)\r\n"] +[276.971794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[276.971918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[276.984211, "o", "66757a7a696e6278\\r\\n\r\n"] +[276.984548, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[276.984778, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495884 (current time 26.7989649495)\r\n"] +[276.988189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[276.98829, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[276.988342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.000655, "o", "66757a7a696e781b\\r\\n\r\n"] +[277.000958, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.001175, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949485 (current time 26.7989659835)\r\n"] +[277.004605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.004709, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[277.004899, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.017069, "o", "66757a7a696e1b03\\r\\n\r\n"] +[277.01744, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[277.017454, "o", "[tsffs info] Cancelling event with next time 2.999495139 (current time 26.7989656945)\r\n"] +[277.021843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.034505, "o", "66757a7a696e03d2\\r\\n\r\n"] +[277.034864, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495069 (current time 26.7989657645)\r\n"] +[277.038476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.03853, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.050876, "o", "66757a7a696ed2f3\\r\\n\r\n"] +[277.051251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.051266, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493765 (current time 26.7989670685)\r\n"] +[277.054991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.05512, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[277.055153, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.067738, "o", "66757a7a696ef3a8\\r\\n\r\n"] +[277.068146, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936945 (current time 26.798967139)\r\n"] +[277.071827, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.084381, "o", "66757a7a696ea8cb\\r\\n\r\n"] +[277.084736, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492639 (current time 26.7989681945)\r\n"] +[277.088312, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.088424, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.100878, "o", "66757a7a696ecbf1\\r\\n\r\n"] +[277.101177, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492678 (current time 26.7989681555)\r\n"] +[277.104865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.10498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.117362, "o", "66757a7a696ef107\\r\\n\r\n"] +[277.117592, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.117734, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[277.117755, "o", "[tsffs info] Cancelling event with next time 2.999494939 (current time 26.7989658945)\r\n"] +[277.122311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.122428, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.134842, "o", "66757a7a696e07c9\\r\\n\r\n"] +[277.135146, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.135449, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494821 (current time 26.7989660125)\r\n"] +[277.139911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.140126, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.150982, "o", "66757a7a696ec9\\r\\n\r\n"] +[277.151317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.151443, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995516655 (current time 26.798909168)\r\n"] +[277.155676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.155887, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.165376, "o", "66757a7a696e\\r\\n\r\n"] +[277.16567, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.165875, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609788 (current time 26.7988510455)\r\n"] +[277.169345, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.169444, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[277.169585, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.179155, "o", "66757a7a696e\\r\\n\r\n"] +[277.179405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609788 (current time 26.7988510455)\r\n"] +[277.181866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.182285, "o", "\\r\\n\r\n"] +[277.18269, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.185287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.185341, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.185672, "o", "\\r\\n\r\n"] +[277.186191, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.186207, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.188665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.188716, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.189116, "o", "\\r\\n\r\n"] +[277.189611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.191517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.191563, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.191848, "o", "\\r\\n\r\n"] +[277.192315, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.192325, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.194056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.194521, "o", "\\r\\n\r\n"] +[277.194924, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.196332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.196581, "o", "\\r\\n\r\n"] +[277.197039, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.197049, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.198508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.198558, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.19885, "o", "\\r\\n\r\n"] +[277.19937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[277.201771, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.244685, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.2457, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.248593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.248732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.260857, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.261192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.263896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.276357, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.276613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.279179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.291321, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.291621, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.294191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.306737, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.307027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.309651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.322006, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.322244, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.322432, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.325344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.33787, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.338111, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.338382, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.341749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.354104, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.354342, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.357331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.369891, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.370219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.373426, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.385559, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.38594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.389222, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.389375, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.40172, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.40193, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.402128, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[277.402425, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.405535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.405603, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.417768, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.418061, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.418243, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.421613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.43379, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.434153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.437658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.437793, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.450035, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.450326, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.453918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.454002, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.466341, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.466724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.470484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.470611, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.483024, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.483205, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.486985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.499147, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.49954, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.503183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.503408, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.51566, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.515885, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.51956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.519644, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.532189, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.53246, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.536208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.536291, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.548475, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.548779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.55228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.552365, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.564875, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.565188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.568576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.56867, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[277.568769, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.581025, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.581285, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.584413, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.596745, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.597063, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.599342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.599376, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.611632, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.611897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.614366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.626913, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.627253, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.629732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.642522, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.642802, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.64529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.657825, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.658165, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.660612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.6729, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.673298, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.675707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.68803, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.688351, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.691119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.703398, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.703671, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.70678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.719461, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.719944, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[277.720099, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.723272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.735668, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.735966, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.736288, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.739429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.739508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.751814, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.752212, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.752614, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.756808, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.756923, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.769561, "o", "d2f3a8cbf107c962\\r\\n\r\n"] +[277.769771, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.769942, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491914 (current time 26.7989689195)\r\n"] +[277.773272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.773534, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.786231, "o", "66407a7a696e6c18\\r\\n\r\n"] +[277.786349, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.786631, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495068 (current time 26.7989657655)\r\n"] +[277.789856, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.790046, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.802298, "o", "c962781b03d2f3a8\\r\\n\r\n"] +[277.802559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.802644, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941845 (current time 26.798966649)\r\n"] +[277.8059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.805986, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[277.806032, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.818516, "o", "03d2f388cbf107c9\\r\\n\r\n"] +[277.818851, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.818881, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930315 (current time 26.798967802)\r\n"] +[277.822342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.822424, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.834744, "o", "d08000f3a8cb3031\\r\\n\r\n"] +[277.835047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.835241, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494758 (current time 26.7989660755)\r\n"] +[277.838554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.846583, "o", "9d9c000000\\r\\n\r\n"] +[277.846907, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.847065, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668662 (current time 26.7987921715)\r\n"] +[277.849315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.861027, "o", "62636431636431b2\\r\\n\r\n"] +[277.86141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989645 (current time 26.798961869)\r\n"] +[277.863655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.86381, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.875996, "o", "66757a7a696e6c17\\r\\n\r\n"] +[277.876298, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.876432, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[277.878843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.879065, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.887267, "o", "fff1860202\\r\\n\r\n"] +[277.887544, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.887694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667196 (current time 26.7987936375)\r\n"] +[277.890614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.890764, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.903438, "o", "1b034c00a8cbf1c9\\r\\n\r\n"] +[277.903849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492332 (current time 26.7989685015)\r\n"] +[277.906861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[277.907069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.918602, "o", "4747474740474747\\r\\n\r\n"] +[277.918949, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.919094, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499559 (current time 26.7989612745)\r\n"] +[277.922286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.922394, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.935096, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[277.935363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[277.935473, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[277.935758, "o", "[Stats #0] run time: 0h-0m-21s, clients: 1, corpus: 8, objectives: 0, executions: 1322, exec/sec: 60.48\r\n"] +[277.936397, "o", "[Testcase #0] run time: 0h-0m-21s, clients: 1, corpus: 9, objectives: 0, executions: 1729, exec/sec: 79.10\r\n"] +[277.938943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.939118, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.951512, "o", "8400fffdfd000080\\r\\n\r\n"] +[277.951785, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.951848, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493386 (current time 26.7989674475)\r\n"] +[277.95532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.955366, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.967479, "o", "3334353637383961\\r\\n\r\n"] +[277.967746, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[277.967919, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[277.971243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.971484, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.98318, "o", "4141414134634141\\r\\n\r\n"] +[277.983653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003955 (current time 26.798960438)\r\n"] +[277.987061, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[277.987238, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[277.999813, "o", "7c7c7c7c7c6e6c17\\r\\n\r\n"] +[278.000045, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.000223, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915085 (current time 26.798969325)\r\n"] +[278.003919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.004041, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.004164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.015946, "o", "c838303701320030\\r\\n\r\n"] +[278.016257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[278.016441, "o", "[tsffs info] Cancelling event with next time 2.999499313 (current time 26.7989615205)\r\n"] +[278.019957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.020096, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.033147, "o", "c962c2aa62c2ebfe\\r\\n\r\n"] +[278.03348, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.033689, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897115 (current time 26.798971122)\r\n"] +[278.03739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.037469, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.037484, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.050399, "o", "697ffffffff1fe66\\r\\n\r\n"] +[278.05078, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.05105, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487699 (current time 26.7989731345)\r\n"] +[278.054558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.054702, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.067072, "o", "1b1b03bfa51b1b03\\r\\n\r\n"] +[278.067469, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949267 (current time 26.7989681635)\r\n"] +[278.071115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.071268, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.083088, "o", "000000000000b9b9\\r\\n\r\n"] +[278.083438, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987385 (current time 26.798962095)\r\n"] +[278.087039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.087166, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.091178, "o", "7b00\\r\\n\r\n"] +[278.091467, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402115 (current time 26.798620622)\r\n"] +[278.093728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.105717, "o", "382038a5fc383838\\r\\n\r\n"] +[278.106064, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963365 (current time 26.798964497)\r\n"] +[278.108703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.120483, "o", "3031323334353637\\r\\n\r\n"] +[278.120765, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[278.123775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.135624, "o", "9999303132333435\\r\\n\r\n"] +[278.136029, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499848 (current time 26.7989609855)\r\n"] +[278.13935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.139433, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.151634, "o", "66757a7a866e6c17\\r\\n\r\n"] +[278.151883, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.15218, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948975 (current time 26.798965936)\r\n"] +[278.155502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.155629, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.168831, "o", "4e1b4e42bd1b7a7a\\r\\n\r\n"] +[278.16925, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910275 (current time 26.798969806)\r\n"] +[278.17256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.172658, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.185046, "o", "292952534c8d8d8d\\r\\n\r\n"] +[278.185311, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949955 (current time 26.798965838)\r\n"] +[278.188582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.200717, "o", "66757a7a696e6263\\r\\n\r\n"] +[278.200988, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.201164, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960265 (current time 26.798964807)\r\n"] +[278.204717, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.2048, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.21784, "o", "f0f0f0ff7fffff33\\r\\n\r\n"] +[278.218155, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.218323, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948821 (current time 26.7989726235)\r\n"] +[278.221765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.222012, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.225892, "o", "8888\\r\\n\r\n"] +[278.226343, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.226423, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998408285 (current time 26.798620005)\r\n"] +[278.228407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.228516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.240111, "o", "6263646566414141\\r\\n\r\n"] +[278.240563, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.240731, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999545 (current time 26.798960879)\r\n"] +[278.243211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.255771, "o", "7a757a7a696e6c17\\r\\n\r\n"] +[278.256113, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493814 (current time 26.7989670195)\r\n"] +[278.259018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.259102, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.271605, "o", "7ab6b6b6b6b6b6b6\\r\\n\r\n"] +[278.271973, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490778 (current time 26.7989700555)\r\n"] +[278.27496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.27507, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.287846, "o", "c2757a7a696e6cc9\\r\\n\r\n"] +[278.288158, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926405 (current time 26.798968193)\r\n"] +[278.291408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.29153, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.303915, "o", "e5b6d9e14166757a\\r\\n\r\n"] +[278.304135, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.304321, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949396 (current time 26.7989668735)\r\n"] +[278.307103, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.307402, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.307477, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.314249, "o", "d2f30cdb\\r\\n\r\n"] +[278.314528, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997218795 (current time 26.798738954)\r\n"] +[278.316656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.329072, "o", "ed00004d4d4d4d4d\\r\\n\r\n"] +[278.329348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994923075 (current time 26.798968526)\r\n"] +[278.331639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.343579, "o", "1b1010640064d031\\r\\n\r\n"] +[278.343917, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984315 (current time 26.798962402)\r\n"] +[278.346305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.353285, "o", "c2f1f177\\r\\n\r\n"] +[278.353613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723939 (current time 26.7987368945)\r\n"] +[278.356585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.368814, "o", "66757a7a696e6c17\\r\\n\r\n"] +[278.369192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[278.372625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.37294, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.384559, "o", "0303030303030303\\r\\n\r\n"] +[278.384972, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[278.388261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.388305, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.401017, "o", "66757a7a696e6c17\\r\\n\r\n"] +[278.401243, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[278.404766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.405014, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.417637, "o", "f1cba5a5a5a5a5a5\\r\\n\r\n"] +[278.418036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899485 (current time 26.798970885)\r\n"] +[278.421486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.421637, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.434272, "o", "6079ffffff0bd87f\\r\\n\r\n"] +[278.434636, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489092 (current time 26.7989717415)\r\n"] +[278.43803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.438197, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.438404, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.450412, "o", "66757a07c92f3132\\r\\n\r\n"] +[278.450669, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.45092, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963835 (current time 26.79896445)\r\n"] +[278.454373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.454526, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.454612, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.467245, "o", "0bd80d0d0d0d0d0d\\r\\n\r\n"] +[278.467567, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.467803, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491436 (current time 26.7989693975)\r\n"] +[278.471321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.471518, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.484157, "o", "9a7579cbf10737be\\r\\n\r\n"] +[278.484436, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.48463, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927935 (current time 26.79896804)\r\n"] +[278.487988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.488152, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.48833, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.498947, "o", "41a9bf41414141\\r\\n\r\n"] +[278.499215, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.499427, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995536845 (current time 26.798907149)\r\n"] +[278.502887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.502989, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.5031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.514895, "o", "657f303132333735\\r\\n\r\n"] +[278.51521, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498896 (current time 26.7989619375)\r\n"] +[278.51858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.518672, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.531044, "o", "66757a7a616e6c17\\r\\n\r\n"] +[278.531346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950555 (current time 26.798965778)\r\n"] +[278.534439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.546537, "o", "6630313233343536\\r\\n\r\n"] +[278.546871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500205 (current time 26.7989606285)\r\n"] +[278.549209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.549468, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.561968, "o", "66757a7a6c6c6c6c\\r\\n\r\n"] +[278.562225, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.562333, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492725 (current time 26.7989681085)\r\n"] +[278.564687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.56484, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.574114, "o", "30303030ca30\\r\\n\r\n"] +[278.574382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.574514, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996121085 (current time 26.798848725)\r\n"] +[278.577117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.57724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.589645, "o", "4e4e4e4e4e4e4e4e\\r\\n\r\n"] +[278.590046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905585 (current time 26.798970275)\r\n"] +[278.592532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.59277, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.605079, "o", "00ff0702020202af\\r\\n\r\n"] +[278.605467, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496091 (current time 26.7989647425)\r\n"] +[278.60823, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.60848, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.621315, "o", "4e4e4e7a696e6c17\\r\\n\r\n"] +[278.621587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927045 (current time 26.798968129)\r\n"] +[278.624647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.624738, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.637251, "o", "66757a7a686e6c17\\r\\n\r\n"] +[278.637577, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.637726, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948975 (current time 26.798965936)\r\n"] +[278.640681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.640767, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.652846, "o", "3435367f38396162\\r\\n\r\n"] +[278.652975, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.653236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498552 (current time 26.7989622815)\r\n"] +[278.65642, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.656479, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.669161, "o", "c9fb06fcfbc9c9c9\\r\\n\r\n"] +[278.669466, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.669799, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488066 (current time 26.7989727675)\r\n"] +[278.672852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.672947, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.685417, "o", "66757a7a797a796e\\r\\n\r\n"] +[278.685612, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.685891, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946715 (current time 26.798966162)\r\n"] +[278.689355, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.689443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.701749, "o", "67676767a0a0a0a0\\r\\n\r\n"] +[278.702087, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.70244, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955505 (current time 26.798965283)\r\n"] +[278.705969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.706045, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.717893, "o", "6e30311033343536\\r\\n\r\n"] +[278.718424, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.71852, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991755 (current time 26.798961658)\r\n"] +[278.72182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.722035, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[278.722159, "o", "[tsffs info] Resuming simulation\r\n"] +[278.734066, "o", "00000000ff000000\\r\\n\r\n"] +[278.734445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989745 (current time 26.798961859)\r\n"] +[278.738056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.738158, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.738269, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.75059, "o", "aeaed200d2000001\\r\\n\r\n"] +[278.751025, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[278.751133, "o", "[tsffs info] Cancelling event with next time 2.999494011 (current time 26.7989668225)\r\n"] +[278.754794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.754869, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.755005, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.766927, "o", "3535353535353500\\r\\n\r\n"] +[278.767237, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.767435, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001615 (current time 26.798960672)\r\n"] +[278.770958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.771115, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.783913, "o", "66757a6c17deaffe\\r\\n\r\n"] +[278.784373, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490423 (current time 26.7989704105)\r\n"] +[278.788025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.78815, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.799969, "o", "6675303132333435\\r\\n\r\n"] +[278.80036, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.800576, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001245 (current time 26.798960709)\r\n"] +[278.804059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.804305, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.816793, "o", "6c17deaf465db3d5\\r\\n\r\n"] +[278.817112, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.817276, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906965 (current time 26.798970137)\r\n"] +[278.820908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.821121, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.833812, "o", "66757a7a696e6c17\\r\\n\r\n"] +[278.834183, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.834378, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[278.837962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.838083, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.838193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.850179, "o", "40d7686868686888\\r\\n\r\n"] +[278.850459, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.850703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497991 (current time 26.7989628425)\r\n"] +[278.854365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.854472, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.866741, "o", "66757a7a696e6c17\\r\\n\r\n"] +[278.867141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[278.870956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.871008, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.871125, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.883963, "o", "07cbf166cbf17a69\\r\\n\r\n"] +[278.884469, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.884624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918375 (current time 26.798968996)\r\n"] +[278.888079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.888247, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.900557, "o", "66751b7a696e6c17\\r\\n\r\n"] +[278.900988, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.901196, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495002 (current time 26.7989658315)\r\n"] +[278.90474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[278.904952, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.917383, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[278.917776, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[278.918088, "o", "[Stats #0] run time: 0h-0m-22s, clients: 1, corpus: 9, objectives: 0, executions: 1729, exec/sec: 75.70\r\n"] +[278.918605, "o", "[Testcase #0] run time: 0h-0m-22s, clients: 1, corpus: 10, objectives: 0, executions: 1792, exec/sec: 78.46\r\n"] +[278.921507, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.921622, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.921789, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.933983, "o", "66757a61696e6c17\\r\\n\r\n"] +[278.934449, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.934602, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960545 (current time 26.798964779)\r\n"] +[278.938023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.938149, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.938274, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.951185, "o", "66adadadadadadad\\r\\n\r\n"] +[278.951457, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.951738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994842375 (current time 26.798976596)\r\n"] +[278.954967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.955094, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.955177, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.967455, "o", "66757a7a696e6c30\\r\\n\r\n"] +[278.967716, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.967977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949925 (current time 26.798965841)\r\n"] +[278.97155, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.971698, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.97182, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[278.984401, "o", "696e6c17deaffe78\\r\\n\r\n"] +[278.984734, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[278.984927, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902305 (current time 26.798970603)\r\n"] +[278.988387, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[278.988502, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[278.988672, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.001121, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.001442, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.001646, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.005144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.005341, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.017068, "o", "4141665139398000\\r\\n\r\n"] +[279.017389, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.017529, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000845 (current time 26.798960749)\r\n"] +[279.021145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.021238, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.021356, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.033015, "o", "3131414141416676\\r\\n\r\n"] +[279.033384, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.033552, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002215 (current time 26.798960612)\r\n"] +[279.037185, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.037254, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.037364, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.049458, "o", "7878787878787878\\r\\n\r\n"] +[279.049778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.049999, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986465 (current time 26.798962187)\r\n"] +[279.053627, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.053785, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.053946, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.066994, "o", "cbcbcbcbcbcbcbcb\\r\\n\r\n"] +[279.067248, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.067532, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994820825 (current time 26.798978751)\r\n"] +[279.071144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.071196, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.083445, "o", "6686867a6a6e6c17\\r\\n\r\n"] +[279.083863, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.08404, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949025 (current time 26.798965931)\r\n"] +[279.087632, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.087743, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.08788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.099709, "o", "7878207878787878\\r\\n\r\n"] +[279.100051, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.100207, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498959 (current time 26.7989618745)\r\n"] +[279.103969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.104039, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.115896, "o", "3961616161486180\\r\\n\r\n"] +[279.11617, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999105 (current time 26.798960923)\r\n"] +[279.119889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.119973, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.132505, "o", "3b3b3b3b3b3b3b3b\\r\\n\r\n"] +[279.132894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.13298, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913385 (current time 26.798969495)\r\n"] +[279.136545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.136634, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.136713, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.148769, "o", "34353637382d2d4f\\r\\n\r\n"] +[279.149104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.14925, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496443 (current time 26.7989643905)\r\n"] +[279.153023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.153114, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.153206, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.165868, "o", "6367658c8c8c8c8c\\r\\n\r\n"] +[279.166189, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.166357, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493636 (current time 26.7989671975)\r\n"] +[279.170036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.170158, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.170283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.183166, "o", "00bcaf00aaaaaaaa\\r\\n\r\n"] +[279.183505, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.183844, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487176 (current time 26.7989736575)\r\n"] +[279.187523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.187762, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.200316, "o", "f107c962a61b03d2\\r\\n\r\n"] +[279.200586, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.200897, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944645 (current time 26.798966369)\r\n"] +[279.204556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.204698, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.204818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.216633, "o", "41ec414141414141\\r\\n\r\n"] +[279.217021, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498151 (current time 26.7989626825)\r\n"] +[279.22068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.220794, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.23251, "o", "6641414141414141\\r\\n\r\n"] +[279.232872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500369 (current time 26.7989604645)\r\n"] +[279.236563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.236743, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.249095, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.249399, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.249474, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.25312, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.253302, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.253464, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.266073, "o", "2e2e2e2e804041ae\\r\\n\r\n"] +[279.266199, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.266386, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493362 (current time 26.7989674715)\r\n"] +[279.270458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.283134, "o", "66757a7a696e6cfe\\r\\n\r\n"] +[279.283439, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.283668, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492487 (current time 26.7989683465)\r\n"] +[279.287246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.287501, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[279.287592, "o", "[tsffs info] Resuming simulation\r\n"] +[279.29951, "o", "af80627800010000\\r\\n\r\n"] +[279.299792, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.300027, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983025 (current time 26.798962531)\r\n"] +[279.303619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.303783, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.316772, "o", "d3b7b7b9b5b7d8b7\\r\\n\r\n"] +[279.317181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.317458, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[279.317602, "o", "[tsffs info] Cancelling event with next time 2.9994905475 (current time 26.798970286)\r\n"] +[279.321139, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.321302, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.321412, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.334243, "o", "f0f4a8a8a89fb701\\r\\n\r\n"] +[279.334594, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.334847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918145 (current time 26.798969019)\r\n"] +[279.338215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.338409, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.350577, "o", "66757a7a696e6278\\r\\n\r\n"] +[279.350909, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.351072, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495884 (current time 26.7989649495)\r\n"] +[279.354543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.354693, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.354851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.367316, "o", "f3f3f3f3f3f3f3f3\\r\\n\r\n"] +[279.367597, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.367781, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905265 (current time 26.798970307)\r\n"] +[279.371344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.371558, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.371596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.384017, "o", "07b1b1b1b1b1b1b1\\r\\n\r\n"] +[279.384363, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.384383, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492761 (current time 26.7989680725)\r\n"] +[279.388022, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.3881, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.388414, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.400917, "o", "16ffe6e6e6e6e6e6\\r\\n\r\n"] +[279.401235, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.401409, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902395 (current time 26.798970594)\r\n"] +[279.404935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.405033, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.405177, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.417014, "o", "6675323232323232\\r\\n\r\n"] +[279.417475, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.417494, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500186 (current time 26.7989606475)\r\n"] +[279.421254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.421355, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.433908, "o", "67757a7a696e6c17\\r\\n\r\n"] +[279.434247, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.434393, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948525 (current time 26.798965981)\r\n"] +[279.437931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.438179, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.450636, "o", "1b351b1b1b1b1b1b\\r\\n\r\n"] +[279.450868, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927345 (current time 26.798968099)\r\n"] +[279.454621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.454821, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.467352, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.467666, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.471341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.471522, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.483967, "o", "0001000069dedede\\r\\n\r\n"] +[279.484357, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493594 (current time 26.7989672395)\r\n"] +[279.488203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.488334, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.502714, "o", "3031323334353637\\r\\n\r\n"] +[279.503105, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.503203, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[279.506635, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.506727, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.518878, "o", "fe007f0080000080\\r\\n\r\n"] +[279.51918, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.519368, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971375 (current time 26.798963696)\r\n"] +[279.522691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.522792, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.522914, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.53592, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.536226, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.539681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.539874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.552174, "o", "a2a2a2a2a2303132\\r\\n\r\n"] +[279.552409, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.552872, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495064 (current time 26.7989657695)\r\n"] +[279.556066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.556272, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.568699, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.56898, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.569049, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[279.569186, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.572317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.572391, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.584882, "o", "696e6c17deaffe78\\r\\n\r\n"] +[279.585266, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902305 (current time 26.798970603)\r\n"] +[279.588383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.58845, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.600046, "o", "0000000000000000\\r\\n\r\n"] +[279.600419, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[279.603737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.603808, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.611822, "o", "00e8fd0000\\r\\n\r\n"] +[279.612245, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.612396, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667562 (current time 26.7987932715)\r\n"] +[279.614594, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.6148, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.626931, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.627285, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[279.627518, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.629862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.630038, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.642226, "o", "0c17171717ffa8a8\\r\\n\r\n"] +[279.642512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941525 (current time 26.798966681)\r\n"] +[279.644983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.645054, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.645127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.657303, "o", "0166757a7a696e6c\\r\\n\r\n"] +[279.657755, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495059 (current time 26.7989657745)\r\n"] +[279.659986, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.671915, "o", "6675797a49146f43\\r\\n\r\n"] +[279.672377, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971475 (current time 26.798963686)\r\n"] +[279.675169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.675296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.687422, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.687724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.69068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.690761, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.703056, "o", "f005f766757a7a69\\r\\n\r\n"] +[279.703325, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.703614, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949895 (current time 26.798965844)\r\n"] +[279.706773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.706836, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.719062, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.719555, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.722862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.73521, "o", "fe781b034000a8cb\\r\\n\r\n"] +[279.735575, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934075 (current time 26.798967426)\r\n"] +[279.738969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.751084, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.751367, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.751558, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[279.751582, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.754849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.754949, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.755155, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.767324, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.767639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.767855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.771339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.771521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.783312, "o", "66413535377a7a69\\r\\n\r\n"] +[279.783747, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.78398, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974055 (current time 26.798963428)\r\n"] +[279.787367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.787449, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.799712, "o", "4bc04b4bc0c0c000\\r\\n\r\n"] +[279.80001, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.800362, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927395 (current time 26.798968094)\r\n"] +[279.803819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.803919, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.804097, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.817081, "o", "dcdb2ddbdb25dbdc\\r\\n\r\n"] +[279.817689, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485315 (current time 26.7989755185)\r\n"] +[279.821237, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.821394, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.833658, "o", "668a7a7a691a6c17\\r\\n\r\n"] +[279.834141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940135 (current time 26.79896682)\r\n"] +[279.837761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.837937, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.850341, "o", "fe661b03b4b4a5ea\\r\\n\r\n"] +[279.8507, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.850784, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910165 (current time 26.798969817)\r\n"] +[279.854507, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.854617, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.863169, "o", "7dff7dff7d\\r\\n\r\n"] +[279.863736, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996620895 (current time 26.798798744)\r\n"] +[279.865756, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.865813, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.878009, "o", "6675757575936e67\\r\\n\r\n"] +[279.878264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949803 (current time 26.7989628035)\r\n"] +[279.880779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.8929, "o", "6674745f5f5f7400\\r\\n\r\n"] +[279.893182, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496174 (current time 26.7989646595)\r\n"] +[279.895751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.895867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.908304, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.908707, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.90908, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.91185, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.924827, "o", "66d37a7af0f0f87a\\r\\n\r\n"] +[279.925188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917705 (current time 26.798969063)\r\n"] +[279.927992, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.928044, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.940861, "o", "66757a7a696e6c17\\r\\n\r\n"] +[279.941076, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[279.943954, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.943995, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.956749, "o", "1b03a8cb9d9d9d9d\\r\\n\r\n"] +[279.957227, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905765 (current time 26.798970257)\r\n"] +[279.960076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[279.960219, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.972069, "o", "2121213334353637\\r\\n\r\n"] +[279.972567, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.972772, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500307 (current time 26.7989605265)\r\n"] +[279.97678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.976899, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.97708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[279.989692, "o", "0000ffff9c62381b\\r\\n\r\n"] +[279.989958, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[279.990009, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932075 (current time 26.798967626)\r\n"] +[279.992902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[279.992925, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[279.992984, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.00537, "o", "6c29de66757a7a69\\r\\n\r\n"] +[280.005611, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.005777, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937135 (current time 26.79896712)\r\n"] +[280.008457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.008486, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.020645, "o", "ae4141414141e803\\r\\n\r\n"] +[280.020988, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.021048, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496915 (current time 26.7989639185)\r\n"] +[280.024041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.024056, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.024319, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.036039, "o", "3031323334353637\\r\\n\r\n"] +[280.036471, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.036628, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[280.039535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.039687, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.039803, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.052206, "o", "66757a7a696e6c30\\r\\n\r\n"] +[280.052554, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.052592, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949925 (current time 26.798965841)\r\n"] +[280.056144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.056263, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.056311, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.068916, "o", "66757a7a69cb926c\\r\\n\r\n"] +[280.06944, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937885 (current time 26.798967045)\r\n"] +[280.07272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.072822, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.072883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.084746, "o", "0203303161626364\\r\\n\r\n"] +[280.084986, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.08522, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[280.085316, "o", "[tsffs info] Cancelling event with next time 2.999500412 (current time 26.7989604215)\r\n"] +[280.088751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.08886, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.089006, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.101467, "o", "66757a7a69f107c9\\r\\n\r\n"] +[280.101938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.101979, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494914 (current time 26.7989659195)\r\n"] +[280.105652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.105729, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.10596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.117844, "o", "0086c200863e6100\\r\\n\r\n"] +[280.118255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.118461, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980825 (current time 26.798962751)\r\n"] +[280.121874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.121979, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.122369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.133998, "o", "0900111835e72727\\r\\n\r\n"] +[280.134458, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.134765, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498954 (current time 26.7989618795)\r\n"] +[280.137915, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.138141, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.13833, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.14217, "o", "c9b7\\r\\n\r\n"] +[280.142593, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838757 (current time 26.7986220765)\r\n"] +[280.144742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.145009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.157328, "o", "f3a862d80bd80bbf\\r\\n\r\n"] +[280.157605, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.157824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908305 (current time 26.798970003)\r\n"] +[280.160202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.160406, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.172827, "o", "781b034000a8cbf1\\r\\n\r\n"] +[280.17322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[280.173306, "o", "[tsffs info] Cancelling event with next time 2.9994946545 (current time 26.798966179)\r\n"] +[280.17572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.175849, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.188014, "o", "66757a7a66757a7a\\r\\n\r\n"] +[280.188358, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.188669, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949335 (current time 26.7989659)\r\n"] +[280.191342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.203956, "o", "66757a7a696e6c04\\r\\n\r\n"] +[280.2042, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.204469, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494972 (current time 26.7989658615)\r\n"] +[280.207465, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.207572, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.207761, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.22, "o", "66757a7a696e6ce8\\r\\n\r\n"] +[280.220248, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936005 (current time 26.798967233)\r\n"] +[280.223494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.223583, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.236347, "o", "66757a7a696e6cfa\\r\\n\r\n"] +[280.23675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[280.23687, "o", "[tsffs info] Cancelling event with next time 2.9994925815 (current time 26.798968252)\r\n"] +[280.23985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.242389, "o", "1f\\r\\n\r\n"] +[280.242741, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.242787, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896922 (current time 26.7985639115)\r\n"] +[280.244681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.244805, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.257313, "o", "66757a7a696e6c17\\r\\n\r\n"] +[280.257598, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.257703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[280.260257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.260461, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.272534, "o", "17178e17258d178e\\r\\n\r\n"] +[280.272838, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.272929, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496186 (current time 26.7989646475)\r\n"] +[280.275506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.27565, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.288261, "o", "7b607a7a81d21f60\\r\\n\r\n"] +[280.288558, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.288897, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494323 (current time 26.7989665105)\r\n"] +[280.291448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.291503, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.291584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.303808, "o", "66757a7a696e6c17\\r\\n\r\n"] +[280.30403, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.30414, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[280.307451, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.307506, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.307779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.319468, "o", "4441414441414041\\r\\n\r\n"] +[280.319626, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.319934, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500435 (current time 26.7989603985)\r\n"] +[280.322889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.322965, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.334868, "o", "303132333435361e\\r\\n\r\n"] +[280.335176, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.335655, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991895 (current time 26.798961644)\r\n"] +[280.338863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.348235, "o", "6666a0b8696e\\r\\n\r\n"] +[280.348584, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[280.348745, "o", "[tsffs info] Cancelling event with next time 2.999609959 (current time 26.7988508745)\r\n"] +[280.352025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.352342, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.364562, "o", "4145ffd846464646\\r\\n\r\n"] +[280.364851, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.364954, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496199 (current time 26.7989646345)\r\n"] +[280.368441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.368515, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.36865, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.380452, "o", "6230313233343536\\r\\n\r\n"] +[280.380714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.380863, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003005 (current time 26.798960533)\r\n"] +[280.383539, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.383792, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.396232, "o", "66757a7a696e6c17\\r\\n\r\n"] +[280.396582, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.396676, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[280.399194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.411887, "o", "0000a8d80bd80bd9\\r\\n\r\n"] +[280.412161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949345 (current time 26.7989673835)\r\n"] +[280.414563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.414696, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.419116, "o", "e2ff\\r\\n\r\n"] +[280.419503, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.419533, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998376485 (current time 26.798623185)\r\n"] +[280.422779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.422903, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.435549, "o", "66757a7a696e6c17\\r\\n\r\n"] +[280.436006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[280.439547, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.439625, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.43975, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.452307, "o", "0a0ac2c2fe781e03\\r\\n\r\n"] +[280.45272, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.452857, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492293 (current time 26.7989685405)\r\n"] +[280.456321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.456456, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.456566, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.469431, "o", "66757a7a956e6c17\\r\\n\r\n"] +[280.469858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949489 (current time 26.7989659435)\r\n"] +[280.473162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.473281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.485499, "o", "668a7a7a69696969\\r\\n\r\n"] +[280.485944, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.486054, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957235 (current time 26.79896511)\r\n"] +[280.489423, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.489537, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.501557, "o", "66757a3939c73939\\r\\n\r\n"] +[280.501903, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.50213, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970145 (current time 26.798963819)\r\n"] +[280.50555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.505635, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.505752, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.510998, "o", "31313b\\r\\n\r\n"] +[280.511329, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.511432, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783421 (current time 26.7986774125)\r\n"] +[280.513418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.513577, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.525632, "o", "ffff013031513233\\r\\n\r\n"] +[280.525962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956995 (current time 26.798965134)\r\n"] +[280.528619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.528735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.540903, "o", "6675f107c962c2eb\\r\\n\r\n"] +[280.541276, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.541424, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494041 (current time 26.7989667925)\r\n"] +[280.543913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.544015, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.556243, "o", "66757a7a696e6c17\\r\\n\r\n"] +[280.556639, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[280.559391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.559427, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.571599, "o", "6103d2f3a8cbf107\\r\\n\r\n"] +[280.572093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933125 (current time 26.798967521)\r\n"] +[280.574886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.578656, "o", "014f\\r\\n\r\n"] +[280.579043, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401555 (current time 26.798620678)\r\n"] +[280.580774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.58088, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.5935, "o", "fcfca8ff80c1d94f\\r\\n\r\n"] +[280.593737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.59387, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994881905 (current time 26.798972643)\r\n"] +[280.596447, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.596555, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.609565, "o", "fe007fffff7fdc2e\\r\\n\r\n"] +[280.609904, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.610036, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994870025 (current time 26.798973831)\r\n"] +[280.612521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.612633, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.625121, "o", "66757a7a696e6c17\\r\\n\r\n"] +[280.625491, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.625521, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[280.628102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.628308, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.639971, "o", "375166757a6e5100\\r\\n\r\n"] +[280.640356, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.640528, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497631 (current time 26.7989632025)\r\n"] +[280.643044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.643227, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.655816, "o", "17a8a8a8deaffe78\\r\\n\r\n"] +[280.656104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.65627, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994892775 (current time 26.798971556)\r\n"] +[280.658807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.658884, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.671255, "o", "3969f0f000ff0000\\r\\n\r\n"] +[280.671611, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.671996, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495703 (current time 26.7989651305)\r\n"] +[280.675104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.675209, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.687948, "o", "6e6c17deaffe781b\\r\\n\r\n"] +[280.688304, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[280.688549, "o", "[tsffs info] Cancelling event with next time 2.9994893615 (current time 26.798971472)\r\n"] +[280.691354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.696558, "o", "7d1730\\r\\n\r\n"] +[280.696922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832085 (current time 26.798677625)\r\n"] +[280.698727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.698861, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.711395, "o", "66757a7a69dadada\\r\\n\r\n"] +[280.71174, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490575 (current time 26.7989702585)\r\n"] +[280.71433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.726667, "o", "00010000ffffff3b\\r\\n\r\n"] +[280.727062, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994924455 (current time 26.798968388)\r\n"] +[280.729607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.729703, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.742017, "o", "f6f6f6f6f6f63031\\r\\n\r\n"] +[280.742552, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492691 (current time 26.7989681425)\r\n"] +[280.74497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.745082, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.757483, "o", "e8e9e8e830313233\\r\\n\r\n"] +[280.757887, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.758037, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951965 (current time 26.798965637)\r\n"] +[280.760391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.760488, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.772497, "o", "1108f962781f0330\\r\\n\r\n"] +[280.772737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.772986, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497743 (current time 26.7989630905)\r\n"] +[280.775637, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.775755, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.788426, "o", "c962c2ebfe0cdb78\\r\\n\r\n"] +[280.788778, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489517 (current time 26.7989713165)\r\n"] +[280.791723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.79193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.804392, "o", "66757a7a696ef107\\r\\n\r\n"] +[280.804716, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.804926, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494939 (current time 26.7989658945)\r\n"] +[280.808065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.808183, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.820135, "o", "4145414130307a5a\\r\\n\r\n"] +[280.820449, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.820562, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981385 (current time 26.798962695)\r\n"] +[280.823528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.823615, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.83608, "o", "1b03d2f3a8cbf107\\r\\n\r\n"] +[280.836482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.836605, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922565 (current time 26.798968577)\r\n"] +[280.839855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[280.839986, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.851771, "o", "3637383961626364\\r\\n\r\n"] +[280.852018, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.852328, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499688 (current time 26.7989611455)\r\n"] +[280.855821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.855876, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.855958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.867662, "o", "3833346400008000\\r\\n\r\n"] +[280.867973, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.868031, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500546 (current time 26.7989602875)\r\n"] +[280.871822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.871895, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.872025, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.88404, "o", "66757a6e67213937\\r\\n\r\n"] +[280.884384, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.884557, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[280.888248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.888339, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.888438, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.900435, "o", "7b226d6574616461\\r\\n\r\n"] +[280.900832, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.90099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[280.904631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.904827, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.917781, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[280.918407, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.918461, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[280.921795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.921885, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.921995, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.934076, "o", "7b226d6574616461\\r\\n\r\n"] +[280.934335, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.934527, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497548 (current time 26.7989632855)\r\n"] +[280.938125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.938196, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.938251, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.95059, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[280.950849, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[280.951119, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[280.954713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.954786, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[280.955008, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.967741, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[280.968281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[280.972018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.972206, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[280.984677, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[280.984977, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[280.988833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[280.988897, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.005406, "o", "015151\\r\\n\r\n"] +[281.006352, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.006435, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.00917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.009295, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.014351, "o", "015151\\r\\n\r\n"] +[281.014709, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.016999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.02223, "o", "015151\\r\\n\r\n"] +[281.022585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.025121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.030185, "o", "015151\\r\\n\r\n"] +[281.030501, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.030634, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.032453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.032659, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.037844, "o", "015151\\r\\n\r\n"] +[281.038127, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.03836, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.041072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.041101, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.041178, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.046259, "o", "015151\\r\\n\r\n"] +[281.046565, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.046648, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.048415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.048426, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.048543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.053864, "o", "015151\\r\\n\r\n"] +[281.054138, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.054266, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.054279, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.057196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.057229, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.057436, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.062407, "o", "015151\\r\\n\r\n"] +[281.062701, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.06278, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[281.064587, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.064695, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.064805, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.077047, "o", "37b8c7f3b8c7f300\\r\\n\r\n"] +[281.077316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.077468, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.07748, "o", "[tsffs info] Cancelling event with next time 2.999492955 (current time 26.7989678785)\r\n"] +[281.080045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.080178, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.080201, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.0844, "o", "ff7f\\r\\n\r\n"] +[281.084703, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.084868, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.084883, "o", "[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[281.088091, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.088111, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.088247, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.100366, "o", "a8cbf10741414141\\r\\n\r\n"] +[281.100679, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.100925, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957325 (current time 26.798965101)\r\n"] +[281.104381, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.10446, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.104586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.108495, "o", "0151\\r\\n\r\n"] +[281.108815, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.108934, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[281.111054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.111076, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.111191, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.124019, "o", "78fed051fe4f4f4f\\r\\n\r\n"] +[281.124313, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.124441, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.124463, "o", "[tsffs info] Cancelling event with next time 2.999490433 (current time 26.7989704005)\r\n"] +[281.126772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.1268, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.126925, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.135125, "o", "f7f7a13031\\r\\n\r\n"] +[281.135456, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.135553, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.135583, "o", "[tsffs info] Cancelling event with next time 2.9996672195 (current time 26.798793614)\r\n"] +[281.139038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.139128, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.139314, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.151573, "o", "f3f4f44a20672030\\r\\n\r\n"] +[281.152032, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495602 (current time 26.7989652315)\r\n"] +[281.155618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.155814, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.156108, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.168307, "o", "ff353dff35018000\\r\\n\r\n"] +[281.168606, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.168888, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494409 (current time 26.7989664245)\r\n"] +[281.172657, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.172764, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.172935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.184791, "o", "6a27272727272727\\r\\n\r\n"] +[281.185139, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.18537, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498634 (current time 26.7989621995)\r\n"] +[281.188726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.188977, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.197273, "o", "002c2c2c2c\\r\\n\r\n"] +[281.197636, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996664285 (current time 26.798794405)\r\n"] +[281.200752, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.213, "o", "0b102933347575ff\\r\\n\r\n"] +[281.213218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949653 (current time 26.7989643035)\r\n"] +[281.215498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.215574, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.22824, "o", "62c2143e3e3e3e3e\\r\\n\r\n"] +[281.228526, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.228649, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931735 (current time 26.79896766)\r\n"] +[281.231066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.231234, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.234202, "o", "fe\\r\\n\r\n"] +[281.234444, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.234623, "o", "[tsffs info] Cancelling event with next time 2.999895675 (current time 26.7985651585)\r\n"] +[281.237766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.237864, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.237998, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.25013, "o", "701170119db9403f\\r\\n\r\n"] +[281.250764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496727 (current time 26.7989641065)\r\n"] +[281.254327, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.254398, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.26686, "o", "e8e835e8e8a8a8a8\\r\\n\r\n"] +[281.267084, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.267218, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.267272, "o", "[tsffs info] Cancelling event with next time 2.999491373 (current time 26.7989694605)\r\n"] +[281.27114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.271187, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.276957, "o", "f9ffff\\r\\n\r\n"] +[281.277251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.277334, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.277347, "o", "[tsffs info] Cancelling event with next time 2.999778183 (current time 26.7986826505)\r\n"] +[281.279493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.279504, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.279614, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.291571, "o", "10009a41100066dd\\r\\n\r\n"] +[281.291946, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.292249, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497188 (current time 26.7989636455)\r\n"] +[281.294555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.2947, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.298472, "o", "d200\\r\\n\r\n"] +[281.298771, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.298923, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402855 (current time 26.798620548)\r\n"] +[281.30159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.301704, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.313637, "o", "5130313233343541\\r\\n\r\n"] +[281.313944, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.314099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004375 (current time 26.798960396)\r\n"] +[281.316285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.316442, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.320486, "o", "3351\\r\\n\r\n"] +[281.320799, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841277 (current time 26.7986195565)\r\n"] +[281.323522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.323707, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.336044, "o", "89866f6f4f6f6f6f\\r\\n\r\n"] +[281.336411, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.336574, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921805 (current time 26.798968653)\r\n"] +[281.339636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.339727, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.352304, "o", "64a8a8a8a8a8a8a8\\r\\n\r\n"] +[281.35264, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.352908, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491709 (current time 26.7989691245)\r\n"] +[281.356109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.356268, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.356396, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.369047, "o", "c5f0f02121212121\\r\\n\r\n"] +[281.369329, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.369556, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971795 (current time 26.798963654)\r\n"] +[281.372646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.372828, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.372958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.378169, "o", "18c337\\r\\n\r\n"] +[281.378489, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.378625, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783132 (current time 26.7986777015)\r\n"] +[281.380441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.380596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.393016, "o", "011d1d1d1d1d1d51\\r\\n\r\n"] +[281.393349, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.393456, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936945 (current time 26.798967139)\r\n"] +[281.395983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.396011, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.396115, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.407738, "o", "0151303132333435\\r\\n\r\n"] +[281.408177, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[281.410599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.410766, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.422557, "o", "0180206262626ee2\\r\\n\r\n"] +[281.422845, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.423015, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497942 (current time 26.7989628915)\r\n"] +[281.425466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.425627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.429273, "o", "0051\\r\\n\r\n"] +[281.429594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.429606, "o", "[tsffs info] Cancelling event with next time 2.999841433 (current time 26.7986194005)\r\n"] +[281.431336, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.431493, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.435367, "o", "0002\\r\\n\r\n"] +[281.43566, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.435915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841536 (current time 26.7986192975)\r\n"] +[281.438914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.438956, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.439146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.451463, "o", "3738396162636465\\r\\n\r\n"] +[281.451741, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.451892, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499641 (current time 26.7989611925)\r\n"] +[281.45535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.455561, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.468676, "o", "bebe213332333435\\r\\n\r\n"] +[281.46909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957075 (current time 26.798965126)\r\n"] +[281.472746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.472857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.484854, "o", "34353661313233ff\\r\\n\r\n"] +[281.485197, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.48521, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977925 (current time 26.798963041)\r\n"] +[281.488816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.488928, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.500729, "o", "0001010001010150\\r\\n\r\n"] +[281.501058, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501295 (current time 26.7989595385)\r\n"] +[281.504657, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.504805, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.508818, "o", "6464\\r\\n\r\n"] +[281.509056, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.509069, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411005 (current time 26.798619733)\r\n"] +[281.5115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.511594, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.515281, "o", "3032\\r\\n\r\n"] +[281.515585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984138 (current time 26.7986194535)\r\n"] +[281.51817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.530789, "o", "9f7f69b57f69f0a8\\r\\n\r\n"] +[281.531121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492359 (current time 26.7989684745)\r\n"] +[281.534161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.534268, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.546113, "o", "32330b3435642030\\r\\n\r\n"] +[281.546364, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.546482, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993345 (current time 26.798961499)\r\n"] +[281.548609, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.54882, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.560548, "o", "3636361414141414\\r\\n\r\n"] +[281.560797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500254 (current time 26.7989605795)\r\n"] +[281.56326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.563339, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.575182, "o", "41a5304143a80100\\r\\n\r\n"] +[281.575462, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.575684, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498348 (current time 26.7989624855)\r\n"] +[281.578005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.578052, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.578228, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.58194, "o", "5151\\r\\n\r\n"] +[281.582266, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.582493, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[281.585338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.585503, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.597079, "o", "2020203130313233\\r\\n\r\n"] +[281.597397, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.597506, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.597782, "o", "[tsffs info] Cancelling event with next time 2.9995008315 (current time 26.798960002)\r\n"] +[281.600398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.600556, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.612675, "o", "7a7a696e67213541\\r\\n\r\n"] +[281.613116, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963235 (current time 26.79896451)\r\n"] +[281.615197, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.61535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.627175, "o", "6675e33031323334\\r\\n\r\n"] +[281.627524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.627597, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949897 (current time 26.7989618635)\r\n"] +[281.629968, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.630075, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.630174, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.641944, "o", "2941303132333435\\r\\n\r\n"] +[281.642251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.642494, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.642623, "o", "[tsffs info] Cancelling event with next time 2.999500321 (current time 26.7989605125)\r\n"] +[281.644889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.644942, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.64509, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.6577, "o", "0b0b0b0b0b0b0b0b\\r\\n\r\n"] +[281.657991, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.658206, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919625 (current time 26.798968871)\r\n"] +[281.660601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.660673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.672332, "o", "0404040426262626\\r\\n\r\n"] +[281.672663, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003845 (current time 26.798960449)\r\n"] +[281.675252, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.675319, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.675397, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.687987, "o", "30313f3f3f3f3f3f\\r\\n\r\n"] +[281.688234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.688531, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493102 (current time 26.7989677315)\r\n"] +[281.691424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.691628, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.703178, "o", "0000000000000000\\r\\n\r\n"] +[281.703562, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[281.70643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.706608, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.718765, "o", "4140419d9d9d9d9d\\r\\n\r\n"] +[281.719189, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.719306, "o", "[tsffs info] Cancelling event with next time 2.999493872 (current time 26.7989669615)\r\n"] +[281.722655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.722706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.727915, "o", "515151\\r\\n\r\n"] +[281.728233, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.728453, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978445 (current time 26.7986763835)\r\n"] +[281.730424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.730498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.742664, "o", "67214c4c4c353637\\r\\n\r\n"] +[281.743016, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.743029, "o", "[tsffs info] Cancelling event with next time 2.99949649 (current time 26.7989643435)\r\n"] +[281.745669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.745752, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.758355, "o", "31313131ff7fffff\\r\\n\r\n"] +[281.758726, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491836 (current time 26.7989689975)\r\n"] +[281.761366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.761499, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.773376, "o", "5b396156639b3133\\r\\n\r\n"] +[281.773648, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.773659, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497594 (current time 26.7989632395)\r\n"] +[281.776516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.776647, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.781709, "o", "953165\\r\\n\r\n"] +[281.782019, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.782031, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784196 (current time 26.7986766375)\r\n"] +[281.784803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.784918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.796865, "o", "d0d0000000000000\\r\\n\r\n"] +[281.79708, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.797259, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990815 (current time 26.798961752)\r\n"] +[281.79947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.799653, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.811734, "o", "006277fe03d2f300\\r\\n\r\n"] +[281.812008, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.812303, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[281.812398, "o", "[tsffs info] Cancelling event with next time 2.99949568 (current time 26.7989651535)\r\n"] +[281.814658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.814796, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.817551, "o", "ff\\r\\n\r\n"] +[281.817952, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.818192, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998956505 (current time 26.798565183)\r\n"] +[281.821308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.821486, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.821683, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.826835, "o", "017151\\r\\n\r\n"] +[281.827183, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.827408, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845235 (current time 26.79867631)\r\n"] +[281.829326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.829483, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.82964, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.841778, "o", "5c4466757a7ae2e2\\r\\n\r\n"] +[281.842096, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.842247, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949404 (current time 26.7989667935)\r\n"] +[281.844787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.844976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.851912, "o", "ee3eff51\\r\\n\r\n"] +[281.852282, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.852488, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997215725 (current time 26.798739261)\r\n"] +[281.855627, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.855807, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.856019, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.868037, "o", "41ca37ff00000031\\r\\n\r\n"] +[281.86835, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.868507, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960585 (current time 26.798964775)\r\n"] +[281.871727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.871912, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.872073, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.884779, "o", "ff7f3c6567414141\\r\\n\r\n"] +[281.885236, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.885538, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951935 (current time 26.79896564)\r\n"] +[281.888725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.888955, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.901604, "o", "4000a8cbf107c962\\r\\n\r\n"] +[281.901818, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.902018, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945025 (current time 26.798966331)\r\n"] +[281.905376, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.905476, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.905603, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.917989, "o", "f2295648ff3a8b9e\\r\\n\r\n"] +[281.918388, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926265 (current time 26.798968207)\r\n"] +[281.921793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.921883, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.922119, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.934654, "o", "a3a3a3a3a3a341fe\\r\\n\r\n"] +[281.934894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.935096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949129 (current time 26.7989695435)\r\n"] +[281.938422, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.938536, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[281.938717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.950964, "o", "000000004a4b04be\\r\\n\r\n"] +[281.951329, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.951368, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964175 (current time 26.798964416)\r\n"] +[281.955181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.955284, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.959609, "o", "bdc2\\r\\n\r\n"] +[281.960017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837848 (current time 26.7986229855)\r\n"] +[281.962131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.962237, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.974527, "o", "7676767b7676dada\\r\\n\r\n"] +[281.97476, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.974922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937175 (current time 26.798967116)\r\n"] +[281.97753, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[281.977712, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.989845, "o", "01515e5e5e5e5e5e\\r\\n\r\n"] +[281.990117, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[281.990342, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929655 (current time 26.798967868)\r\n"] +[281.992739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[281.99293, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[281.998178, "o", "8000fa\\r\\n\r\n"] +[281.998596, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782243 (current time 26.7986785905)\r\n"] +[282.001478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.001704, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.013209, "o", "0151515130313233\\r\\n\r\n"] +[282.013519, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.013712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006005 (current time 26.798960233)\r\n"] +[282.015843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.016261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.027913, "o", "8d31949494949494\\r\\n\r\n"] +[282.028251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.028389, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498123 (current time 26.7989627105)\r\n"] +[282.030703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.030885, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.042416, "o", "0151303131176035\\r\\n\r\n"] +[282.042693, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500535 (current time 26.7989602985)\r\n"] +[282.045432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.045461, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.050618, "o", "205151\\r\\n\r\n"] +[282.050933, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.051263, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784553 (current time 26.7986762805)\r\n"] +[282.054485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.054543, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.054768, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.067102, "o", "cbcb303132333235\\r\\n\r\n"] +[282.067565, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.0678, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495895 (current time 26.7989649385)\r\n"] +[282.071219, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.071337, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.07141, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.083089, "o", "4040404043313233\\r\\n\r\n"] +[282.083417, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.083512, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500613 (current time 26.7989602205)\r\n"] +[282.087344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.087505, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.087708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.100641, "o", "7979dededededede\\r\\n\r\n"] +[282.100841, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.101037, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994856105 (current time 26.798975223)\r\n"] +[282.104624, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.104802, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.104925, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.117511, "o", "01e7e7e7e718e7e7\\r\\n\r\n"] +[282.117833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.117949, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492591 (current time 26.7989682425)\r\n"] +[282.12156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.12185, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.121928, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.133759, "o", "41417a6b69926741\\r\\n\r\n"] +[282.1341, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.134323, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497516 (current time 26.7989633175)\r\n"] +[282.137858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.138049, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.138128, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.145952, "o", "0101113031\\r\\n\r\n"] +[282.146304, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.146384, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671268 (current time 26.7987895655)\r\n"] +[282.14865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.148781, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.160457, "o", "6566525541413031\\r\\n\r\n"] +[282.160752, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.160889, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500138 (current time 26.7989606955)\r\n"] +[282.163128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.163225, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.163415, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.175005, "o", "0130313233343536\\r\\n\r\n"] +[282.175282, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.175516, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[282.178004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.178056, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.178241, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.181958, "o", "5130\\r\\n\r\n"] +[282.182332, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.182524, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841355 (current time 26.7986194785)\r\n"] +[282.185309, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.185405, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.185468, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.197322, "o", "00d0313233343567\\r\\n\r\n"] +[282.197552, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.19767, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992305 (current time 26.798961603)\r\n"] +[282.200572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.200668, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.200842, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.213077, "o", "ff000202cc33cc30\\r\\n\r\n"] +[282.213343, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.213447, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936915 (current time 26.798967142)\r\n"] +[282.215831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.21585, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.216009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.227751, "o", "4141414141414163\\r\\n\r\n"] +[282.227995, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.228177, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500441 (current time 26.7989603925)\r\n"] +[282.230394, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.23056, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.243088, "o", "85df9aff3a8b9ee5\\r\\n\r\n"] +[282.243372, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.243557, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994891405 (current time 26.798971693)\r\n"] +[282.246118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.246205, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.246397, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.258196, "o", "20302463646566bf\\r\\n\r\n"] +[282.258557, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.258749, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977565 (current time 26.798963077)\r\n"] +[282.261043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.261196, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.266458, "o", "e17273\\r\\n\r\n"] +[282.266856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.267002, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783125 (current time 26.7986777085)\r\n"] +[282.270746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.270873, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.27104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.282841, "o", "343536373839616b\\r\\n\r\n"] +[282.283207, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.283473, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949863 (current time 26.7989622035)\r\n"] +[282.287077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.287157, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.287495, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.300032, "o", "b8b8b8b8b8b8fa00\\r\\n\r\n"] +[282.300567, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.300741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907355 (current time 26.798970098)\r\n"] +[282.304372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.304522, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.308313, "o", "5159\\r\\n\r\n"] +[282.308684, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998410885 (current time 26.798619745)\r\n"] +[282.310946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.314692, "o", "0551\\r\\n\r\n"] +[282.314995, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841308 (current time 26.7986195255)\r\n"] +[282.317558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.330288, "o", "f0f0f00af1f0f0f0\\r\\n\r\n"] +[282.330591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491237 (current time 26.7989695965)\r\n"] +[282.333115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.333174, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.345204, "o", "016675667a7a8080\\r\\n\r\n"] +[282.345574, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975585 (current time 26.798963275)\r\n"] +[282.348107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.348301, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.360816, "o", "f7f7f75f5f5f5f01\\r\\n\r\n"] +[282.361197, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.361302, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913925 (current time 26.798969441)\r\n"] +[282.363794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.363879, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.376304, "o", "9ee59e18ae727bde\\r\\n\r\n"] +[282.376739, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903525 (current time 26.798970481)\r\n"] +[282.379427, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.379535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.391268, "o", "3031323357575757\\r\\n\r\n"] +[282.391723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998995 (current time 26.798960934)\r\n"] +[282.394145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.394244, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.405865, "o", "0130313233343536\\r\\n\r\n"] +[282.40622, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.406582, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[282.408937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.409076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.417278, "o", "b700007fff\\r\\n\r\n"] +[282.417632, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666119 (current time 26.7987947145)\r\n"] +[282.421224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.421416, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.433833, "o", "3639f0c7004e66aa\\r\\n\r\n"] +[282.434194, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[282.434399, "o", "[tsffs info] Cancelling event with next time 2.999494304 (current time 26.7989665295)\r\n"] +[282.437868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.438033, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.450074, "o", "30000047bb303132\\r\\n\r\n"] +[282.450422, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.450585, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985035 (current time 26.79896233)\r\n"] +[282.455374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.45567, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.469108, "o", "7a7ae2e2e2e2deaf\\r\\n\r\n"] +[282.469356, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.469472, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994885045 (current time 26.798972329)\r\n"] +[282.472787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.472813, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.472842, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.48224, "o", "015151015151\\r\\n\r\n"] +[282.482706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996142235 (current time 26.79884661)\r\n"] +[282.486235, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.493237, "o", "ffff8000\\r\\n\r\n"] +[282.49361, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722848 (current time 26.7987379855)\r\n"] +[282.495663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.507393, "o", "3334353637383961\\r\\n\r\n"] +[282.507829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[282.510453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.510623, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.521111, "o", "6603e83333012f\\r\\n\r\n"] +[282.521543, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.521724, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999554703 (current time 26.7989061305)\r\n"] +[282.524471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.529637, "o", "015105\\r\\n\r\n"] +[282.530002, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[282.531866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.532021, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.544689, "o", "b7b7b7deaffe901b\\r\\n\r\n"] +[282.544991, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.54512, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883885 (current time 26.798972445)\r\n"] +[282.547629, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.547748, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.559771, "o", "000031323341ff7f\\r\\n\r\n"] +[282.560014, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.560268, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496964 (current time 26.7989638695)\r\n"] +[282.562699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.574623, "o", "5151515151515151\\r\\n\r\n"] +[282.574928, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003225 (current time 26.798960511)\r\n"] +[282.577466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.57751, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.590174, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[282.590502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[282.593266, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.593391, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.600031, "o", "01015151\\r\\n\r\n"] +[282.600396, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997278745 (current time 26.798732959)\r\n"] +[282.603941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.604182, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.617223, "o", "e6ff0020dbdbdbdb\\r\\n\r\n"] +[282.617496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487682 (current time 26.7989731515)\r\n"] +[282.62136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.623936, "o", "51\\r\\n\r\n"] +[282.624235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[282.626512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.626742, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.638669, "o", "0130313233616161\\r\\n\r\n"] +[282.638958, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[282.641907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.642087, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.654144, "o", "1be700a041414141\\r\\n\r\n"] +[282.65446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971825 (current time 26.798963651)\r\n"] +[282.657456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.657599, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.664027, "o", "118878a8\\r\\n\r\n"] +[282.664295, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.664487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726066 (current time 26.7987347675)\r\n"] +[282.666467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.666671, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.675835, "o", "055151015151\\r\\n\r\n"] +[282.676098, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.676226, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999614131 (current time 26.7988467025)\r\n"] +[282.678463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.678623, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.682318, "o", "0152\\r\\n\r\n"] +[282.682651, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413785 (current time 26.798619455)\r\n"] +[282.685557, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.685671, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.689563, "o", "4010\\r\\n\r\n"] +[282.689833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.690095, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414595 (current time 26.798619374)\r\n"] +[282.692397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.692548, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.70366, "o", "ca696e00696e6e\\r\\n\r\n"] +[282.704025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.70424, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995508205 (current time 26.798910013)\r\n"] +[282.707224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.707342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.719117, "o", "020202e59e303132\\r\\n\r\n"] +[282.71965, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981945 (current time 26.798962639)\r\n"] +[282.722951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.723016, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.735123, "o", "0001d8f400303132\\r\\n\r\n"] +[282.73549, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.735645, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983855 (current time 26.798962448)\r\n"] +[282.738952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.739098, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.751184, "o", "414141c40000015d\\r\\n\r\n"] +[282.751493, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.751754, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498448 (current time 26.7989623855)\r\n"] +[282.755137, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.755377, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.767667, "o", "b33634b71ad8b332\\r\\n\r\n"] +[282.767947, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944505 (current time 26.798966383)\r\n"] +[282.771584, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.771876, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.784718, "o", "62cececece31cece\\r\\n\r\n"] +[282.78508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[282.785188, "o", "[tsffs info] Cancelling event with next time 2.999486184 (current time 26.7989746495)\r\n"] +[282.788639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.788789, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.801383, "o", "6f900c0c0c0c0c0c\\r\\n\r\n"] +[282.801721, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.801905, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925025 (current time 26.798968331)\r\n"] +[282.805374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.805507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.81082, "o", "00a951\\r\\n\r\n"] +[282.81116, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833605 (current time 26.798677473)\r\n"] +[282.81364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.81377, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.825553, "o", "3637381b65794141\\r\\n\r\n"] +[282.825863, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.826041, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986705 (current time 26.798962163)\r\n"] +[282.828885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.829069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.841215, "o", "0166757eb8b8b8b8\\r\\n\r\n"] +[282.841611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939275 (current time 26.798966906)\r\n"] +[282.844243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.848017, "o", "0151\\r\\n\r\n"] +[282.848379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[282.851044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.864025, "o", "e9a8d9a8c0d9e9a8\\r\\n\r\n"] +[282.864427, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490283 (current time 26.7989705505)\r\n"] +[282.867452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.86748, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.871678, "o", "01ad\\r\\n\r\n"] +[282.872045, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998391225 (current time 26.798621711)\r\n"] +[282.874784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.874882, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.886593, "o", "0151303132333435\\r\\n\r\n"] +[282.886987, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[282.890223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.890323, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.890355, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.901743, "o", "7ffaffff40a5e9\\r\\n\r\n"] +[282.902073, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995461575 (current time 26.798914676)\r\n"] +[282.905612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.905696, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.909991, "o", "df1e\\r\\n\r\n"] +[282.910234, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837724 (current time 26.7986231095)\r\n"] +[282.912522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.912648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.920901, "o", "01d80be5e5\\r\\n\r\n"] +[282.921266, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996661015 (current time 26.798794732)\r\n"] +[282.924252, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.924299, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.937537, "o", "0707f9ffffffff00\\r\\n\r\n"] +[282.937915, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489274 (current time 26.7989715595)\r\n"] +[282.940935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.940975, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.946481, "o", "fe0d01\\r\\n\r\n"] +[282.946763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781056 (current time 26.7986797775)\r\n"] +[282.948805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.952829, "o", "0000\\r\\n\r\n"] +[282.953162, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[282.953184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[282.956246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.956386, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.96812, "o", "2a36363635363636\\r\\n\r\n"] +[282.968528, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498793 (current time 26.7989620405)\r\n"] +[282.971931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.972022, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.984166, "o", "0151515151b6b6b6\\r\\n\r\n"] +[282.984546, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496873 (current time 26.7989639605)\r\n"] +[282.988085, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[282.98824, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[282.988333, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[282.99256, "o", "ff7f\\r\\n\r\n"] +[282.992906, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[282.995109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[282.995223, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.007716, "o", "01515109ffb95151\\r\\n\r\n"] +[283.008014, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966705 (current time 26.798964163)\r\n"] +[283.010595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.010705, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.022658, "o", "511200007f373839\\r\\n\r\n"] +[283.022972, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.023118, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499037 (current time 26.7989617965)\r\n"] +[283.025742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.025869, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.038692, "o", "41303132e90eff7f\\r\\n\r\n"] +[283.039052, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.039102, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942635 (current time 26.79896657)\r\n"] +[283.042221, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.042349, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.044854, "o", "6b\\r\\n\r\n"] +[283.045355, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969095 (current time 26.798563924)\r\n"] +[283.047275, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.047326, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.059851, "o", "e9eae9e9e9000000\\r\\n\r\n"] +[283.060195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.060321, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493122 (current time 26.7989677115)\r\n"] +[283.06285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.062985, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.074977, "o", "41416e6e98406666\\r\\n\r\n"] +[283.075212, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.075229, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497374 (current time 26.7989634595)\r\n"] +[283.077976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.07812, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.081811, "o", "5151\\r\\n\r\n"] +[283.082091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.082195, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[283.084917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.085038, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.096827, "o", "020448b748484848\\r\\n\r\n"] +[283.097114, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986055 (current time 26.798962228)\r\n"] +[283.099696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.09983, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.102662, "o", "d8\\r\\n\r\n"] +[283.102914, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.103071, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968175 (current time 26.798564016)\r\n"] +[283.106045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.106217, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.114298, "o", "6e6721ea00\\r\\n\r\n"] +[283.114604, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.114766, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667286 (current time 26.7987935475)\r\n"] +[283.117503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.12919, "o", "3031322733353000\\r\\n\r\n"] +[283.129446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005935 (current time 26.79896024)\r\n"] +[283.131984, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.132156, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.143727, "o", "0101010101010101\\r\\n\r\n"] +[283.144072, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[283.146501, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.146543, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[283.14675, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.150847, "o", "ff51\\r\\n\r\n"] +[283.151133, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.151251, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838825 (current time 26.7986220085)\r\n"] +[283.154643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.154684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.167666, "o", "c2c2c2afafafafaf\\r\\n\r\n"] +[283.168095, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485269 (current time 26.7989755645)\r\n"] +[283.17163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.171721, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.184173, "o", "fa111212139b9b9c\\r\\n\r\n"] +[283.184483, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.184617, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944455 (current time 26.798966388)\r\n"] +[283.188408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.188504, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.200664, "o", "b1b1b1b137412436\\r\\n\r\n"] +[283.200904, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.201109, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958795 (current time 26.798964954)\r\n"] +[283.204672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.204848, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[283.204861, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.216693, "o", "7272727272727241\\r\\n\r\n"] +[283.217011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998345 (current time 26.798960999)\r\n"] +[283.22073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.22094, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.231413, "o", "55020043555455\\r\\n\r\n"] +[283.231731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999557046 (current time 26.7989037875)\r\n"] +[283.234894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.235029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.247356, "o", "0000ffffcb359d64\\r\\n\r\n"] +[283.247609, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.247798, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492011 (current time 26.7989688225)\r\n"] +[283.250683, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.250798, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.263027, "o", "a79ba7a7a7303132\\r\\n\r\n"] +[283.263277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.26343, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943935 (current time 26.79896644)\r\n"] +[283.265742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.265921, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.271341, "o", "0152ae\\r\\n\r\n"] +[283.271662, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.271804, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782246 (current time 26.7986785875)\r\n"] +[283.274621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.274744, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.281316, "o", "67307d7d\\r\\n\r\n"] +[283.28163, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997249995 (current time 26.798735834)\r\n"] +[283.28452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.288631, "o", "64ae\\r\\n\r\n"] +[283.28893, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.289104, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838881 (current time 26.7986219525)\r\n"] +[283.29179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.291926, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.304266, "o", "d80b1a1a1a1a5151\\r\\n\r\n"] +[283.304562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.30459, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493754 (current time 26.7989670795)\r\n"] +[283.307726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.308012, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.310278, "o", "51\\r\\n\r\n"] +[283.310653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[283.31268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.31281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.324414, "o", "4141414166756479\\r\\n\r\n"] +[283.3247, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[283.324915, "o", "[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[283.327512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.327637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.339384, "o", "1861626364656641\\r\\n\r\n"] +[283.33981, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.339852, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998145 (current time 26.798961019)\r\n"] +[283.342653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.354388, "o", "0151510000002051\\r\\n\r\n"] +[283.354648, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501023 (current time 26.7989598105)\r\n"] +[283.357721, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.357855, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.367944, "o", "ffff7fffcad0\\r\\n\r\n"] +[283.368204, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.36845, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996019435 (current time 26.79885889)\r\n"] +[283.371773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.371905, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[283.37204, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.383275, "o", "22ddd9d8224c22\\r\\n\r\n"] +[283.383731, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.383893, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551178 (current time 26.7989096555)\r\n"] +[283.387599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.387738, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[283.387788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.397108, "o", "6604ff626465\\r\\n\r\n"] +[283.397518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611198 (current time 26.7988496355)\r\n"] +[283.399921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.40007, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.406636, "o", "01010101\\r\\n\r\n"] +[283.406962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997281245 (current time 26.798732709)\r\n"] +[283.409655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.409784, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.420476, "o", "014d33349b340b\\r\\n\r\n"] +[283.4208, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.420962, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995537355 (current time 26.798907098)\r\n"] +[283.423835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.423939, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.435948, "o", "68686800ff7f0000\\r\\n\r\n"] +[283.436344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496483 (current time 26.7989643505)\r\n"] +[283.439648, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.439805, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.444081, "o", "ff7f\\r\\n\r\n"] +[283.444456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[283.446589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.446717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.452262, "o", "00deff\\r\\n\r\n"] +[283.452617, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.452826, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997797845 (current time 26.798681049)\r\n"] +[283.455737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.455927, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.467597, "o", "0045454545454545\\r\\n\r\n"] +[283.467939, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500018 (current time 26.7989608155)\r\n"] +[283.471494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.47168, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.475823, "o", "70af\\r\\n\r\n"] +[283.476224, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838925 (current time 26.7986219085)\r\n"] +[283.478441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.478609, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.490914, "o", "a5deaffe781b0340\\r\\n\r\n"] +[283.491289, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908915 (current time 26.798969942)\r\n"] +[283.493947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.494104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.49772, "o", "5150\\r\\n\r\n"] +[283.498152, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841308 (current time 26.7986195255)\r\n"] +[283.500282, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.500427, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.512465, "o", "c1c1c16666666666\\r\\n\r\n"] +[283.512825, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496315 (current time 26.7989645185)\r\n"] +[283.51533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.515475, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.527874, "o", "7a96a8a8a857a792\\r\\n\r\n"] +[283.528274, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.528463, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937915 (current time 26.798967042)\r\n"] +[283.530748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.530943, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.542482, "o", "0151303132333435\\r\\n\r\n"] +[283.542908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[283.545552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.545717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.557829, "o", "014f5155a44a4a4a\\r\\n\r\n"] +[283.558234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.558415, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494606 (current time 26.7989662275)\r\n"] +[283.560896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.561048, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.572782, "o", "7166666671666666\\r\\n\r\n"] +[283.573116, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.573303, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994065 (current time 26.798961427)\r\n"] +[283.576204, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.589335, "o", "edeeedede600eda0\\r\\n\r\n"] +[283.589742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994862925 (current time 26.798974541)\r\n"] +[283.592692, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.592865, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.604548, "o", "0400664141414141\\r\\n\r\n"] +[283.604901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[283.60514, "o", "[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[283.607874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.607988, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.619629, "o", "0000000000000000\\r\\n\r\n"] +[283.619972, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[283.62017, "o", "[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[283.623141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.623225, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.628457, "o", "0151a8\\r\\n\r\n"] +[283.628797, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.628972, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783357 (current time 26.7986774765)\r\n"] +[283.630888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.631022, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.643674, "o", "30aa7fffffff3839\\r\\n\r\n"] +[283.644116, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489264 (current time 26.7989715695)\r\n"] +[283.646708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.646822, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.650803, "o", "c851\\r\\n\r\n"] +[283.651132, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[283.65144, "o", "[tsffs info] Cancelling event with next time 2.9998400075 (current time 26.798620826)\r\n"] +[283.654535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.654694, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.667191, "o", "7e7ec87e7e947e7e\\r\\n\r\n"] +[283.667481, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.667611, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491103 (current time 26.7989697305)\r\n"] +[283.671192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.671354, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.684284, "o", "edededabd2abab7a\\r\\n\r\n"] +[283.684714, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994841635 (current time 26.79897667)\r\n"] +[283.688352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.68845, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.690927, "o", "50\\r\\n\r\n"] +[283.691291, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981335 (current time 26.7985627)\r\n"] +[283.693595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.693821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.705595, "o", "3144484848486148\\r\\n\r\n"] +[283.70596, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499651 (current time 26.7989611825)\r\n"] +[283.708867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.708961, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.720832, "o", "513961323334ca36\\r\\n\r\n"] +[283.721081, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.721327, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497839 (current time 26.7989629945)\r\n"] +[283.724196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.736681, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[283.737033, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.737222, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[283.740233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.74029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.752579, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[283.752943, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[283.756298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.772768, "o", "015151\\r\\n\r\n"] +[283.773768, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.776681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.776804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.781869, "o", "015151\\r\\n\r\n"] +[283.782169, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.785015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.785279, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.790418, "o", "015151\\r\\n\r\n"] +[283.790636, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.790881, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.793218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.793339, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.798314, "o", "015151\\r\\n\r\n"] +[283.798678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.80126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.801362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.806596, "o", "015151\\r\\n\r\n"] +[283.806917, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[283.807086, "o", "[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.809391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.80958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.814542, "o", "015151\\r\\n\r\n"] +[283.814878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.817135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.822441, "o", "015151\\r\\n\r\n"] +[283.822803, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.825462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.825583, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.830639, "o", "015151\\r\\n\r\n"] +[283.830921, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.832919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.833041, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.838285, "o", "015151\\r\\n\r\n"] +[283.838575, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.841489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.841598, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.846664, "o", "015151\\r\\n\r\n"] +[283.846996, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.848913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.849129, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.854346, "o", "015151\\r\\n\r\n"] +[283.854645, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.857517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.862679, "o", "015151\\r\\n\r\n"] +[283.863116, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.86333, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[283.865119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.865217, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.870371, "o", "085151\\r\\n\r\n"] +[283.870736, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[283.87365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.886008, "o", "37ef31ff00672167\\r\\n\r\n"] +[283.886268, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.886472, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495293 (current time 26.7989655405)\r\n"] +[283.88987, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.889972, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.895181, "o", "018181\\r\\n\r\n"] +[283.895594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784444 (current time 26.7986763895)\r\n"] +[283.897717, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.90939, "o", "917575747541414d\\r\\n\r\n"] +[283.909849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949854 (current time 26.7989622935)\r\n"] +[283.91236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.912559, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.924123, "o", "6363636363636363\\r\\n\r\n"] +[283.924528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.92464, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997865 (current time 26.798961047)\r\n"] +[283.927246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.927413, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.937209, "o", "2100000e00bf\\r\\n\r\n"] +[283.937587, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.937706, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996110455 (current time 26.798849788)\r\n"] +[283.940686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.953415, "o", "ad8b323435363738\\r\\n\r\n"] +[283.953794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964945 (current time 26.798964339)\r\n"] +[283.957261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[283.957392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.970377, "o", "80acac30ceacacac\\r\\n\r\n"] +[283.970773, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994866995 (current time 26.798974134)\r\n"] +[283.973783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.973914, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[283.986632, "o", "f107c962c2ebfe0c\\r\\n\r\n"] +[283.986737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[283.987033, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490824 (current time 26.7989700095)\r\n"] +[283.990347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[283.990493, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.003273, "o", "696e6721ef7e01d2\\r\\n\r\n"] +[284.003652, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940035 (current time 26.79896683)\r\n"] +[284.007015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.007157, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.01936, "o", "664d65659a66664d\\r\\n\r\n"] +[284.019718, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960545 (current time 26.798964779)\r\n"] +[284.023028, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.023161, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.035286, "o", "393939393939b5b5\\r\\n\r\n"] +[284.035629, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971425 (current time 26.798963691)\r\n"] +[284.039045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.039179, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.043153, "o", "6637\\r\\n\r\n"] +[284.043453, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.043566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998410395 (current time 26.798619794)\r\n"] +[284.045768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.045867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.049629, "o", "5656\\r\\n\r\n"] +[284.049964, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998410475 (current time 26.798619786)\r\n"] +[284.053239, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.053456, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.065056, "o", "3031323334353839\\r\\n\r\n"] +[284.065302, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.0654, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950016 (current time 26.7989606735)\r\n"] +[284.068855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.069038, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.080868, "o", "01668a0001006721\\r\\n\r\n"] +[284.081255, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499439 (current time 26.7989613945)\r\n"] +[284.083932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.084013, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.096003, "o", "5151af1c51405151\\r\\n\r\n"] +[284.096304, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949694 (current time 26.7989638935)\r\n"] +[284.09869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.098843, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.104045, "o", "515251\\r\\n\r\n"] +[284.104379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784428 (current time 26.7986764055)\r\n"] +[284.107203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.10735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.119842, "o", "fa0000fa3280ffff\\r\\n\r\n"] +[284.120223, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.120418, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910655 (current time 26.798969768)\r\n"] +[284.123488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.123611, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.131617, "o", "01513f513f\\r\\n\r\n"] +[284.132006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668475 (current time 26.7987923585)\r\n"] +[284.135118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.146942, "o", "6263646567418f41\\r\\n\r\n"] +[284.147247, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498561 (current time 26.7989622725)\r\n"] +[284.149887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.16192, "o", "36373839fb669966\\r\\n\r\n"] +[284.162234, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497006 (current time 26.7989638275)\r\n"] +[284.164675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.176522, "o", "41414166757a7a69\\r\\n\r\n"] +[284.176816, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497506 (current time 26.7989633275)\r\n"] +[284.17957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.191314, "o", "6262626262626262\\r\\n\r\n"] +[284.191644, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999745 (current time 26.798960859)\r\n"] +[284.194288, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.206266, "o", "381d616235646566\\r\\n\r\n"] +[284.206543, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986385 (current time 26.798962195)\r\n"] +[284.209466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.221211, "o", "1f07636407070707\\r\\n\r\n"] +[284.221616, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498894 (current time 26.7989619395)\r\n"] +[284.224607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.236902, "o", "757a7a696e672152\\r\\n\r\n"] +[284.23723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961765 (current time 26.798964657)\r\n"] +[284.240384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.252334, "o", "010101010101ff01\\r\\n\r\n"] +[284.252753, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498747 (current time 26.7989620865)\r\n"] +[284.255942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.26815, "o", "356e6e6e3a313233\\r\\n\r\n"] +[284.268508, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.268667, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954395 (current time 26.798965394)\r\n"] +[284.271976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.272064, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.280024, "o", "0051015130\\r\\n\r\n"] +[284.280368, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671161 (current time 26.7987896725)\r\n"] +[284.282725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.294558, "o", "4140644641666969\\r\\n\r\n"] +[284.294987, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.295087, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499707 (current time 26.7989611265)\r\n"] +[284.297445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.302711, "o", "2f3132\\r\\n\r\n"] +[284.303078, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.303303, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783321 (current time 26.7986775125)\r\n"] +[284.306152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.306255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.311423, "o", "646667\\r\\n\r\n"] +[284.31188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997840615 (current time 26.798676772)\r\n"] +[284.313967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.314087, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.326104, "o", "7b7b7b3738396162\\r\\n\r\n"] +[284.326504, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.326657, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496245 (current time 26.7989645885)\r\n"] +[284.328924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.329027, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.336871, "o", "0166666666\\r\\n\r\n"] +[284.337256, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670382 (current time 26.7987904515)\r\n"] +[284.340255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.345643, "o", "6464ff\\r\\n\r\n"] +[284.34599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997818245 (current time 26.798679009)\r\n"] +[284.347886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.351729, "o", "3030\\r\\n\r\n"] +[284.352111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414345 (current time 26.798619399)\r\n"] +[284.354919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.366571, "o", "0159667501593031\\r\\n\r\n"] +[284.366968, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000455 (current time 26.798960788)\r\n"] +[284.370415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.370706, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.383364, "o", "7a697d6721f1f1f1\\r\\n\r\n"] +[284.3838, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940085 (current time 26.798966825)\r\n"] +[284.387485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.387778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.399712, "o", "3131313131a6a664\\r\\n\r\n"] +[284.400043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.400166, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498122 (current time 26.7989627115)\r\n"] +[284.404009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.404101, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.416016, "o", "507a808080808080\\r\\n\r\n"] +[284.416348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498953 (current time 26.7989618805)\r\n"] +[284.420081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.431942, "o", "5151515151515151\\r\\n\r\n"] +[284.432306, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003225 (current time 26.798960511)\r\n"] +[284.435782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.435991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.442593, "o", "00083031\\r\\n\r\n"] +[284.44303, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.443165, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997278755 (current time 26.798732958)\r\n"] +[284.445465, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.445627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.457828, "o", "10391dff7fff3233\\r\\n\r\n"] +[284.458195, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929845 (current time 26.798967849)\r\n"] +[284.460759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.472535, "o", "6567666630313230\\r\\n\r\n"] +[284.472765, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500003 (current time 26.7989608305)\r\n"] +[284.47572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.475949, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.479883, "o", "7c2f\\r\\n\r\n"] +[284.480181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388205 (current time 26.798622013)\r\n"] +[284.482089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.482296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.493999, "o", "015151515151af51\\r\\n\r\n"] +[284.494352, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498116 (current time 26.7989627175)\r\n"] +[284.496867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.497088, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.505185, "o", "2f3027272f\\r\\n\r\n"] +[284.50539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996683295 (current time 26.798792504)\r\n"] +[284.509227, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.509341, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[284.509449, "o", "[tsffs info] Resuming simulation\r\n"] +[284.521807, "o", "ff494a494a4a4a4a\\r\\n\r\n"] +[284.5222, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491921 (current time 26.7989689125)\r\n"] +[284.525395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.525547, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.537421, "o", "6162636365664141\\r\\n\r\n"] +[284.537742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499927 (current time 26.7989609065)\r\n"] +[284.540741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.552456, "o", "6466664141414141\\r\\n\r\n"] +[284.55278, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000965 (current time 26.798960737)\r\n"] +[284.556247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.55632, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.561741, "o", "01ff00\\r\\n\r\n"] +[284.561954, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782282 (current time 26.7986785515)\r\n"] +[284.564138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.569791, "o", "7f7fef\\r\\n\r\n"] +[284.570143, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779378 (current time 26.7986814555)\r\n"] +[284.572909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.585003, "o", "f5ff303132333435\\r\\n\r\n"] +[284.585322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496689 (current time 26.7989641445)\r\n"] +[284.588809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.588891, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[284.589015, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.601061, "o", "073662c2cd000000\\r\\n\r\n"] +[284.601398, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.601631, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972055 (current time 26.798963628)\r\n"] +[284.604956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.605071, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.613035, "o", "00f300f351\\r\\n\r\n"] +[284.613454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668665 (current time 26.7987921685)\r\n"] +[284.617032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.617185, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[284.617274, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.622523, "o", "515151\\r\\n\r\n"] +[284.622805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.623152, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978445 (current time 26.7986763835)\r\n"] +[284.626269, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.626513, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.638304, "o", "6364656641414141\\r\\n\r\n"] +[284.638652, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.638839, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[284.641918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.642063, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.653944, "o", "81d8666646666605\\r\\n\r\n"] +[284.654428, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983765 (current time 26.798962457)\r\n"] +[284.657236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.657309, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.668995, "o", "445d616161909090\\r\\n\r\n"] +[284.669391, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.669488, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988145 (current time 26.798962019)\r\n"] +[284.672641, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.672706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.679675, "o", "0bbf0bbf\\r\\n\r\n"] +[284.679991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[284.680082, "o", "[tsffs info] Cancelling event with next time 2.9997208365 (current time 26.798739997)\r\n"] +[284.68215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.682193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.694738, "o", "9e409f9e9e9e9e9e\\r\\n\r\n"] +[284.695182, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909665 (current time 26.798969867)\r\n"] +[284.697514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.710368, "o", "00b8bfbfbfbfbfbf\\r\\n\r\n"] +[284.710715, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994851505 (current time 26.798975683)\r\n"] +[284.713363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.71352, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.715761, "o", "52\\r\\n\r\n"] +[284.71614, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898079 (current time 26.7985627545)\r\n"] +[284.71943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.731032, "o", "1010101010101010\\r\\n\r\n"] +[284.731394, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[284.734215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.73432, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.745981, "o", "4966491515331515\\r\\n\r\n"] +[284.746277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.74657, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998675 (current time 26.798960966)\r\n"] +[284.748853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.749071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.753309, "o", "5dfe\\r\\n\r\n"] +[284.753641, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998376315 (current time 26.798623202)\r\n"] +[284.756563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.756779, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.768396, "o", "3738396162303132\\r\\n\r\n"] +[284.768704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.768936, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500061 (current time 26.7989607725)\r\n"] +[284.772175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.772344, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.785881, "o", "af04afafafafafaf\\r\\n\r\n"] +[284.786254, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.786448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484061 (current time 26.7989767725)\r\n"] +[284.789558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.789715, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.803037, "o", "8a8a8a8a8a9c9c9c\\r\\n\r\n"] +[284.803478, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903415 (current time 26.798970492)\r\n"] +[284.806448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.806658, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.813168, "o", "37015145\\r\\n\r\n"] +[284.813491, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997275865 (current time 26.798733247)\r\n"] +[284.815753, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.81592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.821128, "o", "303132\\r\\n\r\n"] +[284.821433, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.821684, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846015 (current time 26.798676232)\r\n"] +[284.824406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.824605, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.836624, "o", "0001343536373839\\r\\n\r\n"] +[284.837038, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.83728, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001255 (current time 26.798960708)\r\n"] +[284.840209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.852707, "o", "4c4e0134573aab7f\\r\\n\r\n"] +[284.853078, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932295 (current time 26.798967604)\r\n"] +[284.856536, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.868706, "o", "de2d103031323334\\r\\n\r\n"] +[284.869078, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970615 (current time 26.798963772)\r\n"] +[284.872421, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.872553, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.884528, "o", "01303132ed343536\\r\\n\r\n"] +[284.884901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498095 (current time 26.7989627385)\r\n"] +[284.888231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.888366, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.900813, "o", "5bf0f0f0f0f080f7\\r\\n\r\n"] +[284.901124, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492064 (current time 26.7989687695)\r\n"] +[284.904711, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.904852, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.910354, "o", "01af51\\r\\n\r\n"] +[284.910777, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822435 (current time 26.79867859)\r\n"] +[284.913208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.913247, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.926696, "o", "6f6f796f6f6f6f6f\\r\\n\r\n"] +[284.927035, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491033 (current time 26.7989698005)\r\n"] +[284.929887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.941974, "o", "f830313233343536\\r\\n\r\n"] +[284.942354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.942535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499007 (current time 26.7989618265)\r\n"] +[284.945617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.945974, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.957666, "o", "4f31323334353034\\r\\n\r\n"] +[284.95797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499147 (current time 26.7989616865)\r\n"] +[284.961107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[284.961409, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.966473, "o", "016301\\r\\n\r\n"] +[284.966906, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[284.967161, "o", "[tsffs info] Cancelling event with next time 2.999784633 (current time 26.7986762005)\r\n"] +[284.970236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.970546, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[284.970625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.982875, "o", "4166757a7a696e30\\r\\n\r\n"] +[284.983199, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[284.983488, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496264 (current time 26.7989645695)\r\n"] +[284.987537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[284.987765, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[284.999551, "o", "3576663738394362\\r\\n\r\n"] +[284.999847, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.000186, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995655 (current time 26.798961268)\r\n"] +[285.004041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.004173, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.009443, "o", "272727\\r\\n\r\n"] +[285.009834, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842295 (current time 26.798676604)\r\n"] +[285.012114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.012273, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.024142, "o", "326363631b1b4300\\r\\n\r\n"] +[285.024446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949813 (current time 26.7989627035)\r\n"] +[285.027023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.027245, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.029558, "o", "00\\r\\n\r\n"] +[285.030083, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998982585 (current time 26.798562575)\r\n"] +[285.031781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.031923, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.043759, "o", "6364656641414141\\r\\n\r\n"] +[285.043927, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.04424, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[285.046618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.046791, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.058451, "o", "0151503031323366\\r\\n\r\n"] +[285.058706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.059095, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004975 (current time 26.798960336)\r\n"] +[285.061531, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.061683, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.073486, "o", "9999999900414141\\r\\n\r\n"] +[285.073719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994335 (current time 26.7989614)\r\n"] +[285.076616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.088511, "o", "4137383961624141\\r\\n\r\n"] +[285.088831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499989 (current time 26.7989608445)\r\n"] +[285.091379, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.09154, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.103997, "o", "00bcff7f000040c1\\r\\n\r\n"] +[285.1042, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.104391, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936905 (current time 26.798967143)\r\n"] +[285.10755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.107681, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.120574, "o", "fe0cdb01f0f0a8cb\\r\\n\r\n"] +[285.120927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[285.121122, "o", "[tsffs info] Cancelling event with next time 2.9994888575 (current time 26.798971976)\r\n"] +[285.124138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.124348, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.129864, "o", "f1fe0c\\r\\n\r\n"] +[285.130184, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997797675 (current time 26.798681066)\r\n"] +[285.131974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.132122, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.136089, "o", "5151\\r\\n\r\n"] +[285.136387, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.136675, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[285.139446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.139573, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.151245, "o", "3031323334353637\\r\\n\r\n"] +[285.151461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.151854, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[285.155226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.155443, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.160587, "o", "018585\\r\\n\r\n"] +[285.160935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784259 (current time 26.7986765745)\r\n"] +[285.162932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.163138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.168236, "o", "013031\\r\\n\r\n"] +[285.168607, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.168843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847015 (current time 26.798676132)\r\n"] +[285.172078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.172184, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.172416, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.184746, "o", "d3d3d34d4d70ae72\\r\\n\r\n"] +[285.185153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492027 (current time 26.7989688065)\r\n"] +[285.188827, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.189059, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.202038, "o", "374a281c7a38e4a2\\r\\n\r\n"] +[285.202364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[285.202523, "o", "[tsffs info] Cancelling event with next time 2.9994942845 (current time 26.798966549)\r\n"] +[285.205938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.206066, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.215244, "o", "01e875335151\\r\\n\r\n"] +[285.215626, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996126435 (current time 26.79884819)\r\n"] +[285.219313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.219344, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.219638, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.231648, "o", "0100ff64646e6721\\r\\n\r\n"] +[285.23192, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.232005, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496616 (current time 26.7989642175)\r\n"] +[285.235774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.235935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.247909, "o", "bd51303132333435\\r\\n\r\n"] +[285.248146, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981155 (current time 26.798962718)\r\n"] +[285.251751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.251868, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.264142, "o", "3637383961513333\\r\\n\r\n"] +[285.264386, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[285.264554, "o", "[tsffs info] Cancelling event with next time 2.999499889 (current time 26.7989609445)\r\n"] +[285.267822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.267852, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.268116, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.272632, "o", "5a51\\r\\n\r\n"] +[285.272968, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840123 (current time 26.7986207105)\r\n"] +[285.275164, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.275437, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.275668, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.279381, "o", "12e9\\r\\n\r\n"] +[285.279698, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.279817, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400045 (current time 26.798620829)\r\n"] +[285.281765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.281784, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.282039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.287881, "o", "7a1de2\\r\\n\r\n"] +[285.28813, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.288226, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780944 (current time 26.7986798895)\r\n"] +[285.291119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.291393, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.301184, "o", "fe511ffe511f\\r\\n\r\n"] +[285.30168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996067635 (current time 26.79885407)\r\n"] +[285.305113, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.305499, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.31836, "o", "ffffffa86f2fe2de\\r\\n\r\n"] +[285.318691, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948571 (current time 26.7989751235)\r\n"] +[285.322121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.322231, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.326093, "o", "5140\\r\\n\r\n"] +[285.326403, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413345 (current time 26.798619499)\r\n"] +[285.328373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.34001, "o", "0174747474747474\\r\\n\r\n"] +[285.340451, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499625 (current time 26.7989612085)\r\n"] +[285.342817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.342891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.349405, "o", "01645151\\r\\n\r\n"] +[285.349931, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.350084, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727662 (current time 26.7987331715)\r\n"] +[285.353436, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.353607, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.353814, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.365444, "o", "5530313233343536\\r\\n\r\n"] +[285.365891, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002515 (current time 26.798960582)\r\n"] +[285.369918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.370054, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[285.37023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.382922, "o", "4b4b4a4b634b4b4b\\r\\n\r\n"] +[285.383357, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.383588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922685 (current time 26.798968565)\r\n"] +[285.387437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.387707, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.400184, "o", "d97fc2eb3334353e\\r\\n\r\n"] +[285.400576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.400824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929675 (current time 26.798967866)\r\n"] +[285.40448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.404596, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.416443, "o", "4343434343434343\\r\\n\r\n"] +[285.41679, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[285.417003, "o", "[tsffs info] Cancelling event with next time 2.9995001705 (current time 26.798960663)\r\n"] +[285.420798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.420899, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.433051, "o", "303132c7b03131c0\\r\\n\r\n"] +[285.433467, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.433727, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971915 (current time 26.798963642)\r\n"] +[285.437596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.437755, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.445707, "o", "d84d589459\\r\\n\r\n"] +[285.446069, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996678185 (current time 26.798793015)\r\n"] +[285.448287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.454043, "o", "feae51\\r\\n\r\n"] +[285.454419, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779717 (current time 26.7986811165)\r\n"] +[285.456933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.469651, "o", "a89ef1afaf51afaf\\r\\n\r\n"] +[285.47001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487258 (current time 26.7989735755)\r\n"] +[285.473044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.481217, "o", "1fc8d3c7d3\\r\\n\r\n"] +[285.481544, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664756 (current time 26.7987960775)\r\n"] +[285.484284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.497301, "o", "363031dedededede\\r\\n\r\n"] +[285.497612, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.497623, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994885195 (current time 26.798972314)\r\n"] +[285.500493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.500603, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.512636, "o", "7777007577777777\\r\\n\r\n"] +[285.512921, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.513067, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499163 (current time 26.7989616705)\r\n"] +[285.515504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.515575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.521041, "o", "01ae51\\r\\n\r\n"] +[285.521343, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[285.524335, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.530713, "o", "01435150\\r\\n\r\n"] +[285.531049, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727763 (current time 26.7987330705)\r\n"] +[285.533001, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.536965, "o", "0151\\r\\n\r\n"] +[285.537319, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[285.540111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.550888, "o", "f06f9a07013a33\\r\\n\r\n"] +[285.551318, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995524635 (current time 26.79890837)\r\n"] +[285.554606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.554882, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.566594, "o", "3031323031618074\\r\\n\r\n"] +[285.567002, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004285 (current time 26.798960405)\r\n"] +[285.570834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.570935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.583764, "o", "acacacac71303132\\r\\n\r\n"] +[285.584005, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913725 (current time 26.798969461)\r\n"] +[285.587798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.587915, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.600625, "o", "42419a727a7ad86e\\r\\n\r\n"] +[285.60092, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494073 (current time 26.7989667605)\r\n"] +[285.604775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.616812, "o", "413d41416675207a\\r\\n\r\n"] +[285.617107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978505 (current time 26.798962983)\r\n"] +[285.621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.633359, "o", "b8b7b8e96e100039\\r\\n\r\n"] +[285.633934, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941625 (current time 26.798966671)\r\n"] +[285.637777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.637913, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.64784, "o", "f3ff7fdbf30c\\r\\n\r\n"] +[285.648195, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999604378 (current time 26.7988564555)\r\n"] +[285.651048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.663277, "o", "757a7a69756c17de\\r\\n\r\n"] +[285.663612, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949377 (current time 26.7989670635)\r\n"] +[285.665967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.671203, "o", "020151\\r\\n\r\n"] +[285.671533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784678 (current time 26.7986761555)\r\n"] +[285.674343, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.68771, "o", "96d80bc0a5690064\\r\\n\r\n"] +[285.687903, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495417 (current time 26.7989654165)\r\n"] +[285.692739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.704462, "o", "3030313233303031\\r\\n\r\n"] +[285.704791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500761 (current time 26.7989600725)\r\n"] +[285.708175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.708358, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.72045, "o", "01624e7f6262627f\\r\\n\r\n"] +[285.720831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496407 (current time 26.7989644265)\r\n"] +[285.723813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.736907, "o", "0152f021c8dedede\\r\\n\r\n"] +[285.737242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490964 (current time 26.7989698695)\r\n"] +[285.740438, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.740528, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.746083, "o", "ff51af\\r\\n\r\n"] +[285.746417, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779668 (current time 26.7986811655)\r\n"] +[285.748326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.760762, "o", "5d80785d785d806e\\r\\n\r\n"] +[285.761022, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494915 (current time 26.7989659185)\r\n"] +[285.763641, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.76365, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.769379, "o", "d0d046\\r\\n\r\n"] +[285.769701, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821765 (current time 26.798678657)\r\n"] +[285.773033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.773215, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.785683, "o", "8d89000000008989\\r\\n\r\n"] +[285.785956, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[285.78624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989115 (current time 26.798961922)\r\n"] +[285.78947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.789584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.802693, "o", "2d2dbcbcbcbcbccb\\r\\n\r\n"] +[285.803026, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994843475 (current time 26.798976486)\r\n"] +[285.806289, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.806575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.810321, "o", "5151\\r\\n\r\n"] +[285.810723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[285.812804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.812926, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.824583, "o", "2030313233343536\\r\\n\r\n"] +[285.824818, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500447 (current time 26.7989603865)\r\n"] +[285.827654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.827797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.840764, "o", "a5a5a5a5a5f1fe0c\\r\\n\r\n"] +[285.841107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898775 (current time 26.798970956)\r\n"] +[285.843958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.844029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.849119, "o", "020030\\r\\n\r\n"] +[285.849449, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978479 (current time 26.7986760435)\r\n"] +[285.852735, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.852858, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.86472, "o", "61e2636565664141\\r\\n\r\n"] +[285.865063, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498747 (current time 26.7989620865)\r\n"] +[285.868516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[285.868641, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.878251, "o", "667533515151\\r\\n\r\n"] +[285.878571, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996136885 (current time 26.798847145)\r\n"] +[285.880958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.893581, "o", "9b329b5101525131\\r\\n\r\n"] +[285.893901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979685 (current time 26.798962865)\r\n"] +[285.896508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.908863, "o", "3030303030303030\\r\\n\r\n"] +[285.909171, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[285.911761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.924519, "o", "f3f7f7f73ef7f7f7\\r\\n\r\n"] +[285.924814, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948996 (current time 26.7989708735)\r\n"] +[285.927532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.931541, "o", "00ff\\r\\n\r\n"] +[285.931865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389825 (current time 26.798621851)\r\n"] +[285.934431, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.939716, "o", "515051\\r\\n\r\n"] +[285.940017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844825 (current time 26.798676351)\r\n"] +[285.942533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.954559, "o", "5a9ce25000303132\\r\\n\r\n"] +[285.954843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497038 (current time 26.7989637955)\r\n"] +[285.957897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.96972, "o", "f330143233343836\\r\\n\r\n"] +[285.970035, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990335 (current time 26.7989618)\r\n"] +[285.97317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[285.984928, "o", "6364656641413031\\r\\n\r\n"] +[285.985224, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500098 (current time 26.7989607355)\r\n"] +[285.988812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[285.98894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.00096, "o", "0000371b041b1b30\\r\\n\r\n"] +[286.001128, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.001362, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974465 (current time 26.798963387)\r\n"] +[286.004862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.005035, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.017057, "o", "646d661000008686\\r\\n\r\n"] +[286.017343, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498941 (current time 26.7989618925)\r\n"] +[286.021136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.021256, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.034091, "o", "42be6666666affff\\r\\n\r\n"] +[286.034386, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.034651, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491521 (current time 26.7989693125)\r\n"] +[286.038218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.038386, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.042487, "o", "55ae\\r\\n\r\n"] +[286.042825, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838876 (current time 26.7986219575)\r\n"] +[286.044971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.045109, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.050168, "o", "015155\\r\\n\r\n"] +[286.050541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.050695, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844825 (current time 26.798676351)\r\n"] +[286.054205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.054398, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.06724, "o", "e8e8e8e8e8f2e8e8\\r\\n\r\n"] +[286.067518, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.067738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489934 (current time 26.7989708995)\r\n"] +[286.071371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.071521, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[286.071654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.083805, "o", "fa013341217233ff\\r\\n\r\n"] +[286.084188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[286.084371, "o", "[tsffs info] Cancelling event with next time 2.999495692 (current time 26.7989651415)\r\n"] +[286.087961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.088085, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[286.088262, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.093697, "o", "f7504f\\r\\n\r\n"] +[286.09401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.094138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997819145 (current time 26.798678919)\r\n"] +[286.096291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.096417, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.102812, "o", "01015131\\r\\n\r\n"] +[286.103144, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997279215 (current time 26.798732912)\r\n"] +[286.106119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.106135, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[286.106211, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.115271, "o", "015152015152\\r\\n\r\n"] +[286.115758, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996141795 (current time 26.798846654)\r\n"] +[286.119157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.11924, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.131652, "o", "ff7ff5ff34353637\\r\\n\r\n"] +[286.131936, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925985 (current time 26.798968235)\r\n"] +[286.136038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.136205, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[286.136331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.140331, "o", "4141\\r\\n\r\n"] +[286.140687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413285 (current time 26.798619505)\r\n"] +[286.143102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.14326, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.154955, "o", "31303132333435c9\\r\\n\r\n"] +[286.15535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499161 (current time 26.7989616725)\r\n"] +[286.158081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.158235, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.170478, "o", "2f2f4b3832414141\\r\\n\r\n"] +[286.170798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967705 (current time 26.798964063)\r\n"] +[286.173976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.174139, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.178279, "o", "afaf\\r\\n\r\n"] +[286.17864, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998366125 (current time 26.798624221)\r\n"] +[286.18055, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.180671, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.184785, "o", "af51\\r\\n\r\n"] +[286.185117, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[286.185323, "o", "[tsffs info] Cancelling event with next time 2.999838944 (current time 26.7986218895)\r\n"] +[286.188591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.188675, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[286.188914, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.193045, "o", "feae\\r\\n\r\n"] +[286.193369, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998365425 (current time 26.798624291)\r\n"] +[286.195491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.195617, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.197901, "o", "64\\r\\n\r\n"] +[286.198331, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980135 (current time 26.79856282)\r\n"] +[286.200634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.205987, "o", "016e00\\r\\n\r\n"] +[286.206287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783464 (current time 26.7986773695)\r\n"] +[286.208664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.215104, "o", "1e135151\\r\\n\r\n"] +[286.215425, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726517 (current time 26.7987343165)\r\n"] +[286.218675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.218765, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.224331, "o", "6664fc\\r\\n\r\n"] +[286.224745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781842 (current time 26.7986789915)\r\n"] +[286.227279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.22747, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.23105, "o", "5401\\r\\n\r\n"] +[286.231394, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413345 (current time 26.798619499)\r\n"] +[286.233833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.234032, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.246432, "o", "929201a8ad92ffff\\r\\n\r\n"] +[286.246698, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.246843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491701 (current time 26.7989691325)\r\n"] +[286.249207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.249531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.254801, "o", "800051\\r\\n\r\n"] +[286.255059, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[286.255345, "o", "[tsffs info] Cancelling event with next time 2.9997845745 (current time 26.798676259)\r\n"] +[286.257847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.258071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.269694, "o", "6162636465664141\\r\\n\r\n"] +[286.270097, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999065 (current time 26.798960927)\r\n"] +[286.273133, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.273464, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.285893, "o", "a6ada6ad40a5a6e9\\r\\n\r\n"] +[286.286464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.286557, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898095 (current time 26.798971024)\r\n"] +[286.289579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.289767, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[286.289929, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.293632, "o", "4000\\r\\n\r\n"] +[286.293985, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.294113, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841492 (current time 26.7986193415)\r\n"] +[286.29595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.296198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.308633, "o", "d80b40a5e9616151\\r\\n\r\n"] +[286.309234, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495516 (current time 26.7989653175)\r\n"] +[286.311697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.31179, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.323431, "o", "0130313233343536\\r\\n\r\n"] +[286.323809, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[286.326521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.326643, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.338452, "o", "5130313233343536\\r\\n\r\n"] +[286.338811, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500344 (current time 26.7989604895)\r\n"] +[286.341621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.341778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.353465, "o", "7171717171717171\\r\\n\r\n"] +[286.353729, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999105 (current time 26.798960923)\r\n"] +[286.356848, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.356982, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.370191, "o", "9e9e9e9e9e9e9e9e\\r\\n\r\n"] +[286.37046, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.370742, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994895905 (current time 26.798971243)\r\n"] +[286.373633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.373775, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.38627, "o", "34b8b8b8b8b8b801\\r\\n\r\n"] +[286.386494, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.386741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930155 (current time 26.798967818)\r\n"] +[286.389764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.389896, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.402211, "o", "7a7ad9d900297056\\r\\n\r\n"] +[286.402608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.402784, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951975 (current time 26.798965636)\r\n"] +[286.406139, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.406241, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.415627, "o", "ff0001000036\\r\\n\r\n"] +[286.415805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.416177, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996120535 (current time 26.79884878)\r\n"] +[286.419631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.419916, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.425548, "o", "201eaf\\r\\n\r\n"] +[286.425963, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781067 (current time 26.7986797665)\r\n"] +[286.428087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.428323, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.441319, "o", "bbbb6d67217fffff\\r\\n\r\n"] +[286.441585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488269 (current time 26.7989725645)\r\n"] +[286.444357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.456458, "o", "80008282828282ca\\r\\n\r\n"] +[286.456685, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[286.456769, "o", "[tsffs info] Cancelling event with next time 2.999497747 (current time 26.7989630865)\r\n"] +[286.459546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.459698, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.464861, "o", "e25351\\r\\n\r\n"] +[286.465192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783228 (current time 26.7986776055)\r\n"] +[286.467997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.468095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.480353, "o", "c3a7c366757a7a69\\r\\n\r\n"] +[286.480634, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939115 (current time 26.798966922)\r\n"] +[286.483557, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.483659, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.495521, "o", "3064321f34353640\\r\\n\r\n"] +[286.495814, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499088 (current time 26.7989617455)\r\n"] +[286.498307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.498546, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.510131, "o", "0151010101010151\\r\\n\r\n"] +[286.510384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995010725 (current time 26.798959761)\r\n"] +[286.512938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.513065, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.524714, "o", "0202020238390000\\r\\n\r\n"] +[286.525003, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.525288, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007985 (current time 26.798960035)\r\n"] +[286.527801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.527924, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.540453, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.540746, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.54089, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.543544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.543804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.555924, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[286.5562, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[286.558844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.559006, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.571611, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.571937, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.572097, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.574925, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.575059, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.587386, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.587706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.591049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.591201, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.603916, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.60423, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.607371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.607474, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.619854, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.620179, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.623392, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.623588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.636273, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.636554, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.636703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.639935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.640066, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.640412, "o", "\\r\\n\r\n"] +[286.640859, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[286.642842, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.643145, "o", "\\r\\n\r\n"] +[286.643608, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[286.645239, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.64558, "o", "\\r\\n\r\n"] +[286.646042, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[286.647543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.659688, "o", "cbf107c962781b03\\r\\n\r\n"] +[286.660066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942965 (current time 26.798966537)\r\n"] +[286.662647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.662783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.675072, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[286.675379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[286.675613, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[286.67804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.678246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.690641, "o", "757a7ae2e2e2e2de\\r\\n\r\n"] +[286.69089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490692 (current time 26.7989701415)\r\n"] +[286.693464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.693601, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.70595, "o", "667a7ae2e2e2e2de\\r\\n\r\n"] +[286.706261, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490697 (current time 26.7989701365)\r\n"] +[286.708998, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.721435, "o", "66757ae2e2e2e2de\\r\\n\r\n"] +[286.721746, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.722026, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949175 (current time 26.7989690835)\r\n"] +[286.72482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.724963, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.737346, "o", "66757ae2e2e2e2de\\r\\n\r\n"] +[286.737649, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949175 (current time 26.7989690835)\r\n"] +[286.740801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.740932, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.753434, "o", "66757a7ae2e2e2de\\r\\n\r\n"] +[286.753642, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.753957, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491719 (current time 26.7989691145)\r\n"] +[286.756855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.756957, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.769589, "o", "66757a7ae2e2deaf\\r\\n\r\n"] +[286.769847, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.770018, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490564 (current time 26.7989702695)\r\n"] +[286.773228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.773353, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.786851, "o", "66757a7ae2deaffe\\r\\n\r\n"] +[286.787182, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893145 (current time 26.798971519)\r\n"] +[286.790156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.790212, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.803008, "o", "66757a7adeaffe78\\r\\n\r\n"] +[286.803377, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902815 (current time 26.798970552)\r\n"] +[286.806496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.806649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.819114, "o", "66757a7aaffe781b\\r\\n\r\n"] +[286.819396, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[286.819876, "o", "[tsffs info] Cancelling event with next time 2.9994915765 (current time 26.798969257)\r\n"] +[286.823183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.823302, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.835741, "o", "66757a7afe781bb8\\r\\n\r\n"] +[286.836006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.83632, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926725 (current time 26.798968161)\r\n"] +[286.839513, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.839761, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.852179, "o", "66757a7a781bb8b8\\r\\n\r\n"] +[286.852646, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.852798, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493863 (current time 26.7989669705)\r\n"] +[286.856072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.856299, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.868876, "o", "66757a7a1bb8b8b8\\r\\n\r\n"] +[286.869251, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492837 (current time 26.7989679965)\r\n"] +[286.872737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.872936, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.885531, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.886001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.889555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.889766, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.902559, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.90287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.906329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.906488, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.918917, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.919267, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.919485, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.922928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.923113, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.936291, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.936704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.936846, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.940043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[286.940102, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.952739, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.953033, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[286.953239, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.956672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.956821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.969822, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.970318, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.973517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[286.973811, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[286.986194, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[286.986653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[286.989975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.002596, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[287.002842, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.003105, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[287.00647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.006523, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[287.006714, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.019219, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[287.019579, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.019738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[287.023033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.023177, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.035864, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[287.03619, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.036255, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[287.039768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.039907, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.052516, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[287.052894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.053173, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[287.056439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.056528, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.068955, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[287.069233, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.06951, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[287.073034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.073162, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.085639, "o", "66757a7ab8b8b803\\r\\n\r\n"] +[287.085912, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.086231, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493994 (current time 26.7989668395)\r\n"] +[287.08956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.089693, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.102377, "o", "66757a7ab8b80340\\r\\n\r\n"] +[287.102633, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.103068, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952885 (current time 26.798965545)\r\n"] +[287.106538, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.106616, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.118654, "o", "66757a7ab8034000\\r\\n\r\n"] +[287.118882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.11918, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966815 (current time 26.798964152)\r\n"] +[287.122649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.122827, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.134975, "o", "66757a7a034000a8\\r\\n\r\n"] +[287.135248, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.135582, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496699 (current time 26.7989641345)\r\n"] +[287.139129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.139304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.149991, "o", "66757a7a4000a8\\r\\n\r\n"] +[287.15027, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.150446, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999553445 (current time 26.7989073885)\r\n"] +[287.154393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.154586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.163973, "o", "66757a7a00a8\\r\\n\r\n"] +[287.164323, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996102115 (current time 26.798850622)\r\n"] +[287.166959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.16705, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.175221, "o", "66757a7aa8\\r\\n\r\n"] +[287.175726, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996668795 (current time 26.798793954)\r\n"] +[287.178217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.17832, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.185053, "o", "66757a7a\\r\\n\r\n"] +[287.185365, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.185778, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724923 (current time 26.7987359105)\r\n"] +[287.189068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.189121, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.195819, "o", "66757a7a\\r\\n\r\n"] +[287.196127, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724923 (current time 26.7987359105)\r\n"] +[287.198185, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.198575, "o", "\\r\\n\r\n"] +[287.199069, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.201658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.202006, "o", "\\r\\n\r\n"] +[287.202548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.205307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.20566, "o", "\\r\\n\r\n"] +[287.206145, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.208171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.208491, "o", "\\r\\n\r\n"] +[287.208955, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.210657, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.210972, "o", "\\r\\n\r\n"] +[287.211438, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.212877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.213195, "o", "\\r\\n\r\n"] +[287.213654, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.215053, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.215384, "o", "\\r\\n\r\n"] +[287.215864, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[287.21795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.218207, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.261263, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.262262, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.26528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.277801, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.278246, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.280783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.293052, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.293391, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.295933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.308649, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.308948, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.311544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.323916, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.324166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.327027, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.339442, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.339687, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.339783, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.343196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.343336, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[287.343444, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.355848, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.356072, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.371622, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.371877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.372082, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.375236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.375289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.387707, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.388088, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.391257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.391427, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.404156, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.404574, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.407969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.40821, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.420614, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.420929, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.421176, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.424129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.424348, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.436975, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.437248, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.440464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.440577, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.453053, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.453175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.453496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.456849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.456914, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.46994, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.470233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.473533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.473668, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.486221, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.486426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.489997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.490181, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.502863, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.503045, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.503339, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.506541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.506725, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.51923, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.519585, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.519814, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.523333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.523507, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.53626, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.536659, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.540079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.540289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.552733, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.55303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.556416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.556603, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.569217, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.569489, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.569837, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.573198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.573433, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.585894, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.586161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.589778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.602536, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.602771, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.606433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.606572, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.619097, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.619241, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.623037, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.623132, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.635605, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.635929, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.639573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.639747, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.652155, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.652451, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.656117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.656271, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.669126, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.669437, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.669767, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.673217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.673368, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.685672, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.686004, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.686266, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.689646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.689868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.702713, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.703157, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.703418, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.706727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.706933, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.71938, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.719758, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.723247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.723437, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.737193, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.737594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.74073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.740799, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.753367, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.753618, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[287.753864, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.756794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.756935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.770169, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.770414, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.770549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.773642, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.773764, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.786203, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.786522, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.786779, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.789939, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.790114, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.802995, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.803313, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.80356, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.806645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.806849, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.820056, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.820385, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.820875, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.823839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.823891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.836999, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.837418, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.840595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.840739, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.853288, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.853568, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[287.853764, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.856961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.857102, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.870152, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.870502, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.870835, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.873664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.873823, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.886407, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.886691, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[287.886984, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.890048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.890149, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[287.890261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.902834, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.903089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[287.903221, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.90653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.906706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.919214, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.919501, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[287.919808, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.923315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.923416, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.936199, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.936456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.939918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.940155, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.952855, "o", "b8b8b8b8e2e2e2e2\\r\\n\r\n"] +[287.953069, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[287.95321, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906745 (current time 26.798970159)\r\n"] +[287.956752, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.957016, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.969439, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[287.96974, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[287.973208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[287.973343, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[287.985172, "o", "0001212121212b21\\r\\n\r\n"] +[287.985506, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[287.985795, "o", "[tsffs info] Cancelling event with next time 2.999499858 (current time 26.7989609755)\r\n"] +[287.989044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[287.989175, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.001329, "o", "363638fc30313233\\r\\n\r\n"] +[288.001483, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.001624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497849 (current time 26.7989629845)\r\n"] +[288.005122, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.005316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.017749, "o", "66757a80e2e2e2e2\\r\\n\r\n"] +[288.018134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940895 (current time 26.798966744)\r\n"] +[288.02189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.022022, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.035335, "o", "99757a7afe0cdbe2\\r\\n\r\n"] +[288.035624, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.035945, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905135 (current time 26.79897032)\r\n"] +[288.039265, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.039404, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.051854, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.052145, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[288.052305, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.055702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.055967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.068459, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.068768, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.068947, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.07241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.072684, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.085226, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.085439, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.085588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.089023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.089167, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.101065, "o", "3232323232323232\\r\\n\r\n"] +[288.101351, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.101559, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005225 (current time 26.798960311)\r\n"] +[288.104869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.104982, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.105179, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.117488, "o", "034000a8cbf107c9\\r\\n\r\n"] +[288.117798, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.117896, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946255 (current time 26.798966208)\r\n"] +[288.121565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.121686, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.134469, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.13482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.135015, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.138348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.138623, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.151135, "o", "95b8b8b8b8b8b7b8\\r\\n\r\n"] +[288.151511, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.151723, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491501 (current time 26.7989693325)\r\n"] +[288.154975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.155095, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.168348, "o", "31abc6c6c6c6e7c6\\r\\n\r\n"] +[288.168765, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490721 (current time 26.7989701125)\r\n"] +[288.17234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.172495, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.185257, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.185559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.185786, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.189354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.189382, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.189485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.201985, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.202364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.205806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.205936, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.206047, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.218869, "o", "f1fe0cf1fe0c3539\\r\\n\r\n"] +[288.219138, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.219377, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490772 (current time 26.7989700615)\r\n"] +[288.222864, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.222957, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.223101, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.235217, "o", "7a3031323334ff64\\r\\n\r\n"] +[288.235517, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.235642, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967145 (current time 26.798964119)\r\n"] +[288.23899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.239151, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.25102, "o", "8641414941414141\\r\\n\r\n"] +[288.251282, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.251455, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001415 (current time 26.798960692)\r\n"] +[288.255068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.255253, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.255408, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.268599, "o", "661b03d2f3a8cbf1\\r\\n\r\n"] +[288.269047, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921365 (current time 26.798968697)\r\n"] +[288.272823, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.272856, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.273041, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.285488, "o", "667566757a7ae3ef\\r\\n\r\n"] +[288.285796, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.285963, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937225 (current time 26.798967111)\r\n"] +[288.289511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.28953, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.289664, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.30261, "o", "b8b8b8b8b8b80340\\r\\n\r\n"] +[288.303043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.303251, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493048 (current time 26.7989677855)\r\n"] +[288.306518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.306717, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.306883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.318625, "o", "323230423030303e\\r\\n\r\n"] +[288.318878, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.3192, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499495 (current time 26.7989613385)\r\n"] +[288.322588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.322821, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.322923, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.336163, "o", "661ee2e2e2deaffe\\r\\n\r\n"] +[288.336526, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.336703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883695 (current time 26.798972464)\r\n"] +[288.339968, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.340199, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.340382, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.352878, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.35315, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.353308, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.35665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.356772, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.356885, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.36911, "o", "bcbc303114333435\\r\\n\r\n"] +[288.36937, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.36957, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958525 (current time 26.798964981)\r\n"] +[288.373125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.373204, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.373331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.385714, "o", "66757a85e2e2e2e2\\r\\n\r\n"] +[288.386004, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.386233, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939645 (current time 26.798966869)\r\n"] +[288.389498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.389687, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.38989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.402351, "o", "5f5f5f5f5f5f5f48\\r\\n\r\n"] +[288.402699, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.402897, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912905 (current time 26.798969543)\r\n"] +[288.40633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.406528, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.406674, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.415868, "o", "46e44746e646\\r\\n\r\n"] +[288.416193, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.41641, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996111045 (current time 26.798849729)\r\n"] +[288.420106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.420202, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.420318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.432992, "o", "cb0f07c962c2ebfe\\r\\n\r\n"] +[288.433333, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.433524, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489654 (current time 26.7989711795)\r\n"] +[288.437304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.437417, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.4375, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.449885, "o", "66757a7ae2e2e230\\r\\n\r\n"] +[288.450259, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.450441, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494171 (current time 26.7989666625)\r\n"] +[288.454231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.454408, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.454531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.466129, "o", "6641414141414141\\r\\n\r\n"] +[288.466469, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.46668, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500369 (current time 26.7989604645)\r\n"] +[288.470339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.470501, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.470627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.483002, "o", "a1a1a1a1a1a1a1a1\\r\\n\r\n"] +[288.483314, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.483501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918425 (current time 26.798968991)\r\n"] +[288.487291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.487404, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.48751, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.499776, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.500103, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.500406, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.504025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.50416, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.504211, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.515969, "o", "363637d465662736\\r\\n\r\n"] +[288.516296, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.51646, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949851 (current time 26.7989623235)\r\n"] +[288.52018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.520357, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.520491, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.533148, "o", "66757a7ae264e2e2\\r\\n\r\n"] +[288.533477, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.533533, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494004 (current time 26.7989668295)\r\n"] +[288.537322, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.537423, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.550086, "o", "e2e2e2e2e2e2e2e2\\r\\n\r\n"] +[288.550411, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.550609, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909105 (current time 26.798969923)\r\n"] +[288.554374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.554485, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.554631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.566316, "o", "3233293536373839\\r\\n\r\n"] +[288.56661, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.56683, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499772 (current time 26.7989610615)\r\n"] +[288.570446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.570523, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.570793, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.583132, "o", "c2c8fec96266757a\\r\\n\r\n"] +[288.583365, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.583543, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926725 (current time 26.798968161)\r\n"] +[288.587362, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.587431, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.587676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.600191, "o", "6675677ab8b8e2e2\\r\\n\r\n"] +[288.600447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.600563, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938425 (current time 26.798966991)\r\n"] +[288.604224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.604412, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.604632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.617094, "o", "c9db78bbbb1266bb\\r\\n\r\n"] +[288.617383, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.617617, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489713 (current time 26.7989711205)\r\n"] +[288.62133, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.621469, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.621498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.634373, "o", "0cdb4f4f417a6464\\r\\n\r\n"] +[288.634771, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.63494, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493107 (current time 26.7989677265)\r\n"] +[288.638354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.638625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.650587, "o", "6969694169696969\\r\\n\r\n"] +[288.650978, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988895 (current time 26.798961944)\r\n"] +[288.654669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.654879, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.667449, "o", "65757a7ae2e2e2e2\\r\\n\r\n"] +[288.667778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.667961, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929505 (current time 26.798967883)\r\n"] +[288.671524, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.671589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.683937, "o", "0e000010a5a5a5a5\\r\\n\r\n"] +[288.684155, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.684379, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950305 (current time 26.798965803)\r\n"] +[288.68803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.688156, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.70083, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.701198, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.701259, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.704804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.704908, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.705099, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.716987, "o", "31313131313131fb\\r\\n\r\n"] +[288.717215, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.717503, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983025 (current time 26.798962531)\r\n"] +[288.721006, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.721097, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.721254, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.73365, "o", "66757ae2e2e2e2de\\r\\n\r\n"] +[288.733986, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.73401, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949175 (current time 26.7989690835)\r\n"] +[288.737751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.737914, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.749807, "o", "f2253617e8171717\\r\\n\r\n"] +[288.750187, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.750372, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497514 (current time 26.7989633195)\r\n"] +[288.753974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.754161, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.754197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.766839, "o", "66757a7ac2c2abc2\\r\\n\r\n"] +[288.767231, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.767462, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491995 (current time 26.7989688385)\r\n"] +[288.770995, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.771174, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.771243, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.783548, "o", "7979797979e2e2e2\\r\\n\r\n"] +[288.783916, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.784117, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956005 (current time 26.798965233)\r\n"] +[288.78762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.787715, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.78786, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.800548, "o", "66757a7a4000a8cb\\r\\n\r\n"] +[288.800917, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.80108, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943395 (current time 26.798966494)\r\n"] +[288.804716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.804862, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.805014, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.817374, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.817624, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.817833, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.821316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.821499, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.821607, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.833838, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[288.834101, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.834404, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[288.83793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.838091, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.838185, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.849241, "o", "c962c2ebfe0cdb\\r\\n\r\n"] +[288.849623, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.84975, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999546552 (current time 26.7989142815)\r\n"] +[288.853474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.853605, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.853756, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.865365, "o", "0000000030315033\\r\\n\r\n"] +[288.865709, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.865934, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501113 (current time 26.7989597205)\r\n"] +[288.869367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[288.869543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.881918, "o", "6e6721696e67101b\\r\\n\r\n"] +[288.88223, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.882423, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496364 (current time 26.7989644695)\r\n"] +[288.885742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.885939, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.886068, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.898778, "o", "a8cbf107c962781b\\r\\n\r\n"] +[288.899073, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.899086, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492999 (current time 26.7989678345)\r\n"] +[288.902835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.903009, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.903245, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.915814, "o", "ac4141034000a8cb\\r\\n\r\n"] +[288.916069, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.916267, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494911 (current time 26.7989659225)\r\n"] +[288.920009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.920126, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.932558, "o", "8c8c8c959595954f\\r\\n\r\n"] +[288.932925, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.932971, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945255 (current time 26.798966308)\r\n"] +[288.936868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.936982, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.949579, "o", "10401b1b1b1b1b10\\r\\n\r\n"] +[288.949962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495244 (current time 26.7989655895)\r\n"] +[288.953937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.954112, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.966892, "o", "30ff4000ffffffff\\r\\n\r\n"] +[288.967407, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488366 (current time 26.7989724675)\r\n"] +[288.971051, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.971185, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[288.971318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[288.983335, "o", "7a7a7a4545303132\\r\\n\r\n"] +[288.983627, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[288.983838, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949673 (current time 26.7989641035)\r\n"] +[288.987802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[288.987936, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.000221, "o", "e1e14141e1e14141\\r\\n\r\n"] +[289.000523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958105 (current time 26.798965023)\r\n"] +[289.004406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.004542, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.004663, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.017405, "o", "86e2e2e2e2deaffe\\r\\n\r\n"] +[289.017734, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488307 (current time 26.7989725265)\r\n"] +[289.021525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.02174, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.034337, "o", "fd000000643c4b4b\\r\\n\r\n"] +[289.034599, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.034929, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494868 (current time 26.7989659655)\r\n"] +[289.038465, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.038596, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.038708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.051432, "o", "66757a7ae2deaffe\\r\\n\r\n"] +[289.051805, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893145 (current time 26.798971519)\r\n"] +[289.055254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.055408, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.055549, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.067806, "o", "ffff000095959595\\r\\n\r\n"] +[289.068092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.068315, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949885 (current time 26.798965845)\r\n"] +[289.071819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.072039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.084475, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.084751, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.084977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.088467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.088628, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.088728, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.101458, "o", "7a7ae2e2e2e2deaf\\r\\n\r\n"] +[289.101688, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.101904, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994885045 (current time 26.798972329)\r\n"] +[289.105502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.105529, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.105692, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.118216, "o", "66757a7ad2e2e2e2\\r\\n\r\n"] +[289.11871, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.118917, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492944 (current time 26.7989678895)\r\n"] +[289.122246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.122523, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.135147, "o", "b807c962c2ebfe0c\\r\\n\r\n"] +[289.135368, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.135477, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907675 (current time 26.798970066)\r\n"] +[289.138886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.139041, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.139245, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.152248, "o", "dbdbdbdbdbdbd0d0\\r\\n\r\n"] +[289.152506, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.152781, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994843635 (current time 26.79897647)\r\n"] +[289.156083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.156179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.156338, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.168748, "o", "75757a7ae2e2e2e2\\r\\n\r\n"] +[289.16912, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.169313, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929205 (current time 26.798967913)\r\n"] +[289.172539, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.172764, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.172878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.184936, "o", "4141696e67214a8f\\r\\n\r\n"] +[289.185179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.185434, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963405 (current time 26.798964493)\r\n"] +[289.188682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.188889, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.189091, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.20137, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.201833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.202012, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.205332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.205548, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.205797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.217484, "o", "3435343536373839\\r\\n\r\n"] +[289.21773, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.217914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997785 (current time 26.798961055)\r\n"] +[289.221565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.221721, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.221811, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.234449, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.234704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.234999, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.238393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.238586, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.250386, "o", "0000000000000000\\r\\n\r\n"] +[289.250737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.25091, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[289.25452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.254711, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.266476, "o", "2626262626262626\\r\\n\r\n"] +[289.266671, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.267186, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999745 (current time 26.798960859)\r\n"] +[289.270526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.270688, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.270933, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.282763, "o", "30cf322b34303132\\r\\n\r\n"] +[289.283361, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970785 (current time 26.798963755)\r\n"] +[289.286882, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.287125, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.287281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.299041, "o", "9494949494949494\\r\\n\r\n"] +[289.299324, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.299509, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990385 (current time 26.798961795)\r\n"] +[289.303189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.303354, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.303566, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.315956, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.316217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.3167, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.32027, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.320341, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.320682, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.333041, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.33349, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.333668, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.337359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.337509, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.337692, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.349307, "o", "45154c4545457915\\r\\n\r\n"] +[289.349734, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498644 (current time 26.7989621895)\r\n"] +[289.353495, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.353731, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.366147, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.366526, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.366751, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.370442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.370581, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.370779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.382508, "o", "3031323334353677\\r\\n\r\n"] +[289.382913, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001485 (current time 26.798960685)\r\n"] +[289.386737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.386933, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.399192, "o", "66a5e9781b626262\\r\\n\r\n"] +[289.399714, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496272 (current time 26.7989645615)\r\n"] +[289.403479, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.4037, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.416534, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.416947, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.417244, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.421067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.434007, "o", "66757abcbcbcbcbc\\r\\n\r\n"] +[289.43422, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.43457, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994874285 (current time 26.798973405)\r\n"] +[289.438263, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.438327, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.450791, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.451168, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.451421, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.454974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.455106, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.466848, "o", "5555993031323334\\r\\n\r\n"] +[289.46744, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949999 (current time 26.7989608435)\r\n"] +[289.471165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.471256, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.482922, "o", "0141000000000000\\r\\n\r\n"] +[289.483387, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501419 (current time 26.7989594145)\r\n"] +[289.48716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.487243, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.499708, "o", "781b03d20073cbce\\r\\n\r\n"] +[289.500073, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.500275, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493391 (current time 26.7989674425)\r\n"] +[289.503954, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.504144, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.5043, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.516178, "o", "e8e8303132333435\\r\\n\r\n"] +[289.516677, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497786 (current time 26.7989630475)\r\n"] +[289.520268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.520372, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.520673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.531512, "o", "54ff54545454fe\\r\\n\r\n"] +[289.531727, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.532147, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995519415 (current time 26.798908892)\r\n"] +[289.535279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.535351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.547497, "o", "07070707e2e2e2e2\\r\\n\r\n"] +[289.547774, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955405 (current time 26.798965293)\r\n"] +[289.550596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.562538, "o", "b810034000a80000\\r\\n\r\n"] +[289.56287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498605 (current time 26.7989622285)\r\n"] +[289.565165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.577854, "o", "ff757a7ae2e2efe2\\r\\n\r\n"] +[289.578165, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893645 (current time 26.798971469)\r\n"] +[289.580425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.593084, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.593628, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.596161, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.607889, "o", "2501252525252000\\r\\n\r\n"] +[289.608172, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.608423, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500598 (current time 26.7989602355)\r\n"] +[289.610707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.610847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.623196, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.623724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[289.623877, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.626179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.626359, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.63005, "o", "0001\\r\\n\r\n"] +[289.630324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[289.632321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.632453, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.644496, "o", "a8a8b5e718989801\\r\\n\r\n"] +[289.644799, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.644905, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949725 (current time 26.798965861)\r\n"] +[289.64732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.647512, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.659023, "o", "0100639191919191\\r\\n\r\n"] +[289.659298, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.65958, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000655 (current time 26.798960768)\r\n"] +[289.661933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.662146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.673989, "o", "63645d3938393031\\r\\n\r\n"] +[289.674188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986855 (current time 26.798962148)\r\n"] +[289.676897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.688911, "o", "5757576a57575757\\r\\n\r\n"] +[289.689198, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981405 (current time 26.798962693)\r\n"] +[289.691957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.703939, "o", "da30313233346163\\r\\n\r\n"] +[289.704199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949809 (current time 26.7989627435)\r\n"] +[289.707023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.719724, "o", "e2e2e2deaffe781b\\r\\n\r\n"] +[289.71999, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488376 (current time 26.7989724575)\r\n"] +[289.7232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.727323, "o", "8dff\\r\\n\r\n"] +[289.727641, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998375415 (current time 26.798623292)\r\n"] +[289.729558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.742087, "o", "c962781b03d2f3a8\\r\\n\r\n"] +[289.742307, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.742464, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941845 (current time 26.798966649)\r\n"] +[289.745014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.745207, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.757223, "o", "7ae2828243434343\\r\\n\r\n"] +[289.757426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497691 (current time 26.7989631425)\r\n"] +[289.760056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.760186, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.771844, "o", "3031323333353637\\r\\n\r\n"] +[289.772111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002675 (current time 26.798960566)\r\n"] +[289.775152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.786951, "o", "3031323334353637\\r\\n\r\n"] +[289.787189, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.787512, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[289.790442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.80289, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.803183, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.803381, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.806506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.806627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.819087, "o", "6675d2d2d2d2e2e2\\r\\n\r\n"] +[289.819316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.819535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493093 (current time 26.7989677405)\r\n"] +[289.822932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.823003, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.823071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.835593, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.835851, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.836191, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.839537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.839668, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.852305, "o", "e2deaffe781bb848\\r\\n\r\n"] +[289.852581, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.852927, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489362 (current time 26.7989714715)\r\n"] +[289.856044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.856279, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.868119, "o", "3536373536373835\\r\\n\r\n"] +[289.868388, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.868519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499747 (current time 26.7989610865)\r\n"] +[289.871985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.87207, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.872203, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.884025, "o", "4164a0a080181818\\r\\n\r\n"] +[289.884469, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.88464, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497977 (current time 26.7989628565)\r\n"] +[289.888119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.888374, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.900242, "o", "6666757a7a699191\\r\\n\r\n"] +[289.900581, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.900901, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970985 (current time 26.798963735)\r\n"] +[289.904781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.904896, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.904951, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.91718, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[289.917614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.917891, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[289.921519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.92166, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[289.921788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.934348, "o", "66757aa57ae2e27f\\r\\n\r\n"] +[289.934607, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.934918, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492796 (current time 26.7989680375)\r\n"] +[289.938469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[289.938675, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.944598, "o", "a2fffd\\r\\n\r\n"] +[289.94488, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.94492, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997785205 (current time 26.798682313)\r\n"] +[289.947664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.960268, "o", "b8b8b8b8b8b8b8b8\\r\\n\r\n"] +[289.960618, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.960926, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904385 (current time 26.798970395)\r\n"] +[289.963449, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.963693, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.976407, "o", "8888888888bfa5e9\\r\\n\r\n"] +[289.976814, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.977002, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494362 (current time 26.7989664715)\r\n"] +[289.98008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.980217, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[289.992705, "o", "b469b4f07f00f00e\\r\\n\r\n"] +[289.993204, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[289.993394, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932465 (current time 26.798967587)\r\n"] +[289.995728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[289.995833, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.007621, "o", "41404640a5e94645\\r\\n\r\n"] +[290.008004, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.008328, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497732 (current time 26.7989631015)\r\n"] +[290.010435, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.010649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.022299, "o", "3334353637383961\\r\\n\r\n"] +[290.02265, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[290.022835, "o", "[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[290.025107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.025254, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.038075, "o", "66757a7ae2e2e266\\r\\n\r\n"] +[290.038394, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.03866, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493956 (current time 26.7989668775)\r\n"] +[290.041283, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.041463, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.053901, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.05437, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.054536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.057346, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.057463, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.069746, "o", "4141757e7a1ee2e2\\r\\n\r\n"] +[290.070134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942215 (current time 26.798966612)\r\n"] +[290.073373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.073679, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.084679, "o", "66751bcb1b1bc9\\r\\n\r\n"] +[290.084974, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.085327, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999550052 (current time 26.7989107815)\r\n"] +[290.088783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.088919, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.10153, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.101798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.105549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.105825, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.119187, "o", "ffffffffffffffff\\r\\n\r\n"] +[290.119451, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.119659, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994807185 (current time 26.798980115)\r\n"] +[290.123036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.123126, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.136554, "o", "e264e2c8deaffe78\\r\\n\r\n"] +[290.136942, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.137163, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994892745 (current time 26.798971559)\r\n"] +[290.140115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.14021, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.152829, "o", "66b8b8b8b8b8b8a0\\r\\n\r\n"] +[290.153104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.153399, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491743 (current time 26.7989690905)\r\n"] +[290.156596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.156802, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.170109, "o", "66757a7ae2eae266\\r\\n\r\n"] +[290.170494, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928255 (current time 26.798968008)\r\n"] +[290.173572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.17368, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.185432, "o", "3032323334353637\\r\\n\r\n"] +[290.185829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500225 (current time 26.7989606085)\r\n"] +[290.18913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.189343, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.202442, "o", "e9e9e9e9e9db0b0b\\r\\n\r\n"] +[290.202872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994892295 (current time 26.798971604)\r\n"] +[290.206272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.206423, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.218989, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.219212, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.219481, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.222776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.235567, "o", "51b8727bddafdf66\\r\\n\r\n"] +[290.235995, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.236147, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905845 (current time 26.798970249)\r\n"] +[290.239593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.239685, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.251576, "o", "6e6721323340036e\\r\\n\r\n"] +[290.251945, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[290.252149, "o", "[tsffs info] Cancelling event with next time 2.9994978555 (current time 26.798962978)\r\n"] +[290.255323, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.25545, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.26794, "o", "01ffff005c666666\\r\\n\r\n"] +[290.268033, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.268298, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494095 (current time 26.7989667385)\r\n"] +[290.271776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.271937, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.283744, "o", "303132333b353637\\r\\n\r\n"] +[290.284165, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.28436, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499143 (current time 26.7989616905)\r\n"] +[290.28774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.287889, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.28808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.299973, "o", "977e979797979796\\r\\n\r\n"] +[290.30034, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.300479, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973845 (current time 26.798963449)\r\n"] +[290.30402, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.304096, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.304147, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.316741, "o", "66757a7ae2e2e2f6\\r\\n\r\n"] +[290.317089, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.317128, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927985 (current time 26.798968035)\r\n"] +[290.32099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.321112, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.321298, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.333873, "o", "cbf107b8b8b8b8b8\\r\\n\r\n"] +[290.334444, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490667 (current time 26.7989701665)\r\n"] +[290.337897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.338028, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.338137, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.350751, "o", "e2e21ee2e2e2e2ee\\r\\n\r\n"] +[290.350904, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.351062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[290.35138, "o", "[tsffs info] Cancelling event with next time 2.9994897075 (current time 26.798971126)\r\n"] +[290.354736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.354902, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.366842, "o", "1000034000b6b6b6\\r\\n\r\n"] +[290.36715, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.367502, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973265 (current time 26.798963507)\r\n"] +[290.371165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.371198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.379127, "o", "1616b116b0\\r\\n\r\n"] +[290.379449, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.379713, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668612 (current time 26.7987922215)\r\n"] +[290.381916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.381988, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.394366, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.39455, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.394685, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[290.394857, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.397311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.397508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.409229, "o", "f1f1333435363738\\r\\n\r\n"] +[290.409489, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.409616, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976265 (current time 26.798963207)\r\n"] +[290.412002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.412167, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.42485, "o", "b8b8b8b8b8b8b8b8\\r\\n\r\n"] +[290.42503, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.425116, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904385 (current time 26.798970395)\r\n"] +[290.427457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.42762, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.44056, "o", "00a8cb781bd8b8b8\\r\\n\r\n"] +[290.44077, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.440862, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919405 (current time 26.798968893)\r\n"] +[290.443425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.443495, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.44369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.455504, "o", "40404040406b8000\\r\\n\r\n"] +[290.455967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995505 (current time 26.798961283)\r\n"] +[290.458461, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.45865, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.47147, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.471854, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.472032, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.474791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.475003, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.487421, "o", "66757a7ab8b8b8b8\\r\\n\r\n"] +[290.487833, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492679 (current time 26.7989681545)\r\n"] +[290.490698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.49082, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.491074, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.502837, "o", "6430313739613001\\r\\n\r\n"] +[290.502959, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.503133, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[290.503166, "o", "[tsffs info] Cancelling event with next time 2.9995003075 (current time 26.798960526)\r\n"] +[290.506286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.506442, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.518197, "o", "3435363738396162\\r\\n\r\n"] +[290.518408, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.518554, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499778 (current time 26.7989610555)\r\n"] +[290.521763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.521852, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.522094, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.533749, "o", "6630313233343536\\r\\n\r\n"] +[290.534005, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.534392, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500205 (current time 26.7989606285)\r\n"] +[290.537718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.537849, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.538015, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.549764, "o", "9461620029704166\\r\\n\r\n"] +[290.55003, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.550232, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950001 (current time 26.7989608235)\r\n"] +[290.553862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.554136, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.554196, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.566606, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.566894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.567026, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.570863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.571049, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.571194, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.578249, "o", "b8d5b8d5\\r\\n\r\n"] +[290.578537, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.578663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997227175 (current time 26.798738116)\r\n"] +[290.580688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.580823, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.592919, "o", "cbf107c962667598\\r\\n\r\n"] +[290.593289, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494972 (current time 26.7989658615)\r\n"] +[290.595836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.59611, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.608369, "o", "f107c99dc2ebfe30\\r\\n\r\n"] +[290.608742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490712 (current time 26.7989701215)\r\n"] +[290.611126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.611351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.62324, "o", "53412341bf414766\\r\\n\r\n"] +[290.623556, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.623694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977795 (current time 26.798963054)\r\n"] +[290.626057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.626414, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.639525, "o", "dbdbfe781bb8b8b8\\r\\n\r\n"] +[290.639753, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.639993, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488312 (current time 26.7989725215)\r\n"] +[290.642546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.642706, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.642724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.655205, "o", "b4b4b4b4b4b4b4b4\\r\\n\r\n"] +[290.655444, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.65573, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911745 (current time 26.798969659)\r\n"] +[290.658502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.658621, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.658773, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.672071, "o", "d9d9f0f0f0f87a69\\r\\n\r\n"] +[290.672245, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.67261, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915085 (current time 26.798969325)\r\n"] +[290.675178, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.675357, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.688453, "o", "bf8cc7bfbfbfbfbf\\r\\n\r\n"] +[290.688788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.689112, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994837065 (current time 26.798977127)\r\n"] +[290.69202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.692247, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.704499, "o", "66757a7ae2e27a7a\\r\\n\r\n"] +[290.705023, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949286 (current time 26.7989679735)\r\n"] +[290.708199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.708378, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.708685, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.720881, "o", "66757a7ae2006480\\r\\n\r\n"] +[290.721069, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.721206, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964815 (current time 26.798964352)\r\n"] +[290.724331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.724393, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.737335, "o", "fe6f6f6f6f6f6f6f\\r\\n\r\n"] +[290.737713, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.737898, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994888455 (current time 26.798971988)\r\n"] +[290.740881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.740957, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.753691, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.754152, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.757018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.757136, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.769619, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.769972, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.770122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.773385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.773556, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.786346, "o", "ebfe6a7a6674fadb\\r\\n\r\n"] +[290.786638, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.787135, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488314 (current time 26.7989725195)\r\n"] +[290.789903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.790289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.802714, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.803351, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.806703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.80678, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.806858, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.819282, "o", "66757a62e2e2e2e2\\r\\n\r\n"] +[290.819524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.819635, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494079 (current time 26.7989667545)\r\n"] +[290.822996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.835535, "o", "66757a7ae1e2e2e2\\r\\n\r\n"] +[290.835819, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.835937, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492937 (current time 26.7989678965)\r\n"] +[290.83935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.839518, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.852097, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.852332, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.852512, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.85591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.855998, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.868592, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.86874, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.868899, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.87247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.872572, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.884426, "o", "4141413031323334\\r\\n\r\n"] +[290.884745, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.884968, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[290.888324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.888499, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.901066, "o", "5d5d5d5d5d313233\\r\\n\r\n"] +[290.9015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494306 (current time 26.7989665275)\r\n"] +[290.90625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.906341, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.918522, "o", "6e67213937383961\\r\\n\r\n"] +[290.918704, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[290.918763, "o", "[tsffs info] Cancelling event with next time 2.9994984495 (current time 26.798962384)\r\n"] +[290.922383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[290.922716, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[290.922738, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.938011, "o", "66757a66757a7a75\\r\\n\r\n"] +[290.938224, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495997 (current time 26.7989648365)\r\n"] +[290.941283, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.941444, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.954521, "o", "b847b8b8d0d0d0d0\\r\\n\r\n"] +[290.954839, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.955029, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921265 (current time 26.798968707)\r\n"] +[290.957992, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.958165, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.971202, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[290.971522, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.971883, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[290.9746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.974865, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.981698, "o", "70db70db\\r\\n\r\n"] +[290.981996, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997229955 (current time 26.798737838)\r\n"] +[290.984746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[290.984852, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[290.997411, "o", "66757a7a1de2e2fb\\r\\n\r\n"] +[290.997702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[290.997846, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917935 (current time 26.79896904)\r\n"] +[291.000788, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.000958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.01366, "o", "b8b8b8b8b8b8b8b8\\r\\n\r\n"] +[291.013897, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.014019, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904385 (current time 26.798970395)\r\n"] +[291.01654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.016783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.020916, "o", "01c8\\r\\n\r\n"] +[291.021276, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.021539, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401325 (current time 26.798620701)\r\n"] +[291.024374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.024501, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.036389, "o", "6666666666666670\\r\\n\r\n"] +[291.036937, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.036996, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993515 (current time 26.798961482)\r\n"] +[291.039999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.040035, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.052213, "o", "66757a7a30313233\\r\\n\r\n"] +[291.052495, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.052679, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497774 (current time 26.7989630595)\r\n"] +[291.055985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.056057, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.068922, "o", "3321dcdcdc3321dc\\r\\n\r\n"] +[291.069339, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911545 (current time 26.798969679)\r\n"] +[291.072898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.072964, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.085406, "o", "2121212121212121\\r\\n\r\n"] +[291.085934, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.086114, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[291.089488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.089737, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.089894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.108425, "o", "cfcfcfcfcfcfcfcf\\r\\n\r\n"] +[291.108826, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994812705 (current time 26.798979563)\r\n"] +[291.111576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.123762, "o", "7f0038781b03a8a8\\r\\n\r\n"] +[291.124199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954025 (current time 26.798965431)\r\n"] +[291.12694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.139669, "o", "66757a7ae1e2e2e3\\r\\n\r\n"] +[291.139925, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929135 (current time 26.79896792)\r\n"] +[291.142518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.154529, "o", "3031323334353637\\r\\n\r\n[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[291.15775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.170265, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[291.170548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[291.173624, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.18598, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[291.186272, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.186357, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[291.189728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.189804, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.206286, "o", "015151\\r\\n\r\n"] +[291.207414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.212317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.217701, "o", "065151\\r\\n\r\n"] +[291.218032, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784461 (current time 26.7986763725)\r\n"] +[291.221388, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.221591, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.226663, "o", "015151\\r\\n\r\n"] +[291.226991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.229092, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.234246, "o", "015151\\r\\n\r\n"] +[291.23467, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.237863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.243119, "o", "015151\\r\\n\r\n"] +[291.243365, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.2455, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.250719, "o", "015151\\r\\n\r\n"] +[291.25121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.254416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.259741, "o", "085151\\r\\n\r\n"] +[291.259988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[291.262031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.267132, "o", "015151\\r\\n\r\n"] +[291.267587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.270939, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.271073, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.276209, "o", "085151\\r\\n\r\n"] +[291.276563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[291.278662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.28381, "o", "015151\\r\\n\r\n"] +[291.284245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.287613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.287744, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.292909, "o", "015151\\r\\n\r\n"] +[291.29322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.29534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.300471, "o", "015151\\r\\n\r\n"] +[291.30086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[291.304215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.304358, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.30981, "o", "ff5119\\r\\n\r\n"] +[291.310094, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781905 (current time 26.7986789285)\r\n"] +[291.312205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.317397, "o", "015112\\r\\n\r\n"] +[291.317737, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846455 (current time 26.798676188)\r\n"] +[291.3211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.321258, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.333981, "o", "80623738bebebebf\\r\\n\r\n"] +[291.334399, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907155 (current time 26.798970118)\r\n"] +[291.338309, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.351535, "o", "ffffff00ffffffff\\r\\n\r\n"] +[291.351849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994833265 (current time 26.798977507)\r\n"] +[291.355458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.367257, "o", "015130374c333435\\r\\n\r\n"] +[291.367403, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499191 (current time 26.7989616425)\r\n"] +[291.371121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.371267, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.383172, "o", "3333332172333961\\r\\n\r\n"] +[291.383522, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500164 (current time 26.7989606695)\r\n"] +[291.387363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.387506, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.399324, "o", "3031323334353637\\r\\n\r\n"] +[291.399706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[291.403492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.40369, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.4156, "o", "00410bd841414100\\r\\n\r\n"] +[291.416098, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498415 (current time 26.7989624185)\r\n"] +[291.41944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.419552, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.43149, "o", "3f0c240130323031\\r\\n\r\n"] +[291.431794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498381 (current time 26.7989624525)\r\n"] +[291.435166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.440473, "o", "012000\\r\\n\r\n"] +[291.441039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997848355 (current time 26.798675998)\r\n"] +[291.44325, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.455426, "o", "3e3e3e6030313233\\r\\n\r\n"] +[291.455809, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968865 (current time 26.798963947)\r\n"] +[291.458363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.470223, "o", "3233343536370151\\r\\n\r\n"] +[291.47042, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002455 (current time 26.798960588)\r\n"] +[291.473616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.485577, "o", "312f333435363738\\r\\n\r\n"] +[291.485882, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988305 (current time 26.798962003)\r\n"] +[291.489256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.501848, "o", "ae4364a543ecec30\\r\\n\r\n"] +[291.502104, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492103 (current time 26.7989687305)\r\n"] +[291.505666, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.50589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.509638, "o", "0040\\r\\n\r\n"] +[291.509926, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841492 (current time 26.7986193415)\r\n"] +[291.51218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.524262, "o", "ffff303132330b40\\r\\n\r\n"] +[291.524704, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945885 (current time 26.798966245)\r\n"] +[291.527412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.539071, "o", "0130313233343536\\r\\n\r\n"] +[291.539425, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[291.542097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.554597, "o", "01ad51f7f7f7f7f7\\r\\n\r\n"] +[291.55508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915545 (current time 26.798969279)\r\n"] +[291.558081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.563173, "o", "2d3232\\r\\n\r\n"] +[291.563569, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833525 (current time 26.798677481)\r\n"] +[291.565475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.569454, "o", "0001\\r\\n\r\n"] +[291.56987, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[291.572813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.585188, "o", "64109e9e9e8e9292\\r\\n\r\n"] +[291.585512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949479 (current time 26.7989660435)\r\n"] +[291.58917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.601131, "o", "0368979797979797\\r\\n\r\n"] +[291.601567, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987915 (current time 26.798962042)\r\n"] +[291.60526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.617924, "o", "ff33333330cccccc\\r\\n\r\n"] +[291.618171, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910185 (current time 26.798969815)\r\n"] +[291.621889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.633983, "o", "4134343434cb3434\\r\\n\r\n"] +[291.634401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.634586, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497955 (current time 26.7989628785)\r\n"] +[291.63817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.650872, "o", "01bfa5e999a8cbf1\\r\\n\r\n"] +[291.651346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490646 (current time 26.7989701875)\r\n"] +[291.654917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.655041, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.663188, "o", "bb0080ff68\\r\\n\r\n"] +[291.663583, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666046 (current time 26.7987947875)\r\n"] +[291.667578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.667953, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.679747, "o", "4141414141414141\\r\\n\r\n"] +[291.680181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[291.684028, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.68421, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.684438, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.696502, "o", "97979766757a6e67\\r\\n\r\n"] +[291.696823, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.696899, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966895 (current time 26.798964144)\r\n"] +[291.701023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.701274, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.701505, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.706853, "o", "30313a\\r\\n\r\n"] +[291.707172, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783471 (current time 26.7986773625)\r\n"] +[291.710921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.711125, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.711332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.722798, "o", "5266303132333435\\r\\n\r\n"] +[291.723182, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002535 (current time 26.79896058)\r\n"] +[291.725742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.726014, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.728466, "o", "43\\r\\n\r\n"] +[291.728826, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.729144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898082 (current time 26.7985627515)\r\n"] +[291.730944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.744008, "o", "f5f5f5f5f5f5f5f5\\r\\n\r\n"] +[291.744245, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.744598, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901505 (current time 26.798970683)\r\n"] +[291.747063, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.747143, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.747235, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.751491, "o", "1201\\r\\n\r\n"] +[291.75181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.752032, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841471 (current time 26.7986193625)\r\n"] +[291.755384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.755443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.768428, "o", "0ef207514000a8cb\\r\\n\r\n"] +[291.768911, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.769092, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494699 (current time 26.7989661345)\r\n"] +[291.772419, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.772631, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.784509, "o", "3031323334353637\\r\\n\r\n"] +[291.784856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.784936, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[291.788475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.788593, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.788692, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.801573, "o", "64513b3b3b3b3b3b\\r\\n\r\n"] +[291.801828, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493497 (current time 26.7989673365)\r\n"] +[291.805508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.80566, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.805778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.814929, "o", "919191008032\\r\\n\r\n"] +[291.81529, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996138395 (current time 26.798846994)\r\n"] +[291.818744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.818827, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.819054, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.821712, "o", "40\\r\\n\r\n"] +[291.822088, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.822144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99989816 (current time 26.7985626735)\r\n"] +[291.824761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.8249, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.828822, "o", "503e\\r\\n\r\n"] +[291.829254, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.829337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840108 (current time 26.7986207255)\r\n"] +[291.831152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.831385, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.843061, "o", "6161616161616261\\r\\n\r\n"] +[291.843404, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.84346, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001285 (current time 26.798960705)\r\n"] +[291.846176, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.846204, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.858314, "o", "3130315c5c66666b\\r\\n\r\n"] +[291.858621, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966285 (current time 26.798964205)\r\n"] +[291.861651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.861808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.87139, "o", "1851510010b7\\r\\n\r\n"] +[291.871792, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612969 (current time 26.7988478645)\r\n"] +[291.874635, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.874767, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.885399, "o", "c5013102000000\\r\\n\r\n"] +[291.885815, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.885935, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999556693 (current time 26.7989041405)\r\n"] +[291.889228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.889303, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.894773, "o", "0010a5\\r\\n\r\n"] +[291.89516, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[291.895386, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978358 (current time 26.7986772535)\r\n"] +[291.897394, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.910243, "o", "ffff600bbfbfbf30\\r\\n\r\n"] +[291.910621, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948742 (current time 26.7989734135)\r\n"] +[291.913255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.913313, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.92515, "o", "0151303132333435\\r\\n\r\n"] +[291.925639, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[291.928424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.928535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.932345, "o", "0130\\r\\n\r\n"] +[291.932713, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984148 (current time 26.7986193535)\r\n"] +[291.935951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.936014, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.947824, "o", "3031323334353637\\r\\n\r\n"] +[291.948203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[291.951937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[291.952006, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[291.952109, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.964032, "o", "6767313233343536\\r\\n\r\n"] +[291.964723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999335 (current time 26.7989609)\r\n"] +[291.967718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.967884, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.979972, "o", "4166757a7a696e67\\r\\n\r\n"] +[291.980327, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496019 (current time 26.7989648145)\r\n"] +[291.982919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[291.986962, "o", "6767\\r\\n\r\n"] +[291.987382, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998409445 (current time 26.798619889)\r\n"] +[291.990171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[291.990348, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.001932, "o", "3030313233340036\\r\\n\r\n"] +[292.002305, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006265 (current time 26.798960207)\r\n"] +[292.005626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.005854, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.01777, "o", "0b70566600000000\\r\\n\r\n"] +[292.018181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499639 (current time 26.7989611945)\r\n"] +[292.021736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.021816, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.033763, "o", "3031006666796600\\r\\n\r\n"] +[292.034168, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.03442, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500119 (current time 26.7989607145)\r\n"] +[292.037896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.038047, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.038265, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.042211, "o", "e670\\r\\n\r\n"] +[292.042616, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839988 (current time 26.7986208455)\r\n"] +[292.045112, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.045249, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.057883, "o", "667a486e715f5f5f\\r\\n\r\n"] +[292.05837, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.058545, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937135 (current time 26.79896712)\r\n"] +[292.0611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.061255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.073319, "o", "c8317efe7f006721\\r\\n\r\n"] +[292.073684, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.073897, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941165 (current time 26.798966717)\r\n"] +[292.076418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.076591, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.081625, "o", "340c30\\r\\n\r\n"] +[292.082025, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783433 (current time 26.7986774005)\r\n"] +[292.084951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.08507, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.085126, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.090359, "o", "015159\\r\\n\r\n"] +[292.090879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784388 (current time 26.7986764455)\r\n"] +[292.09333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.093443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.105601, "o", "34affe781b034000\\r\\n\r\n"] +[292.105918, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.106118, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494555 (current time 26.7989662785)\r\n"] +[292.108811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.108917, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.115547, "o", "63cd21cb\\r\\n\r\n"] +[292.115802, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.116152, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972302 (current time 26.7987378135)\r\n"] +[292.119277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.11973, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.131527, "o", "fe30313233343536\\r\\n\r\n"] +[292.131927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497918 (current time 26.7989629155)\r\n"] +[292.135373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.135589, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.148372, "o", "9f9f9f9f9f9f9f9f\\r\\n\r\n"] +[292.148766, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893945 (current time 26.798971439)\r\n"] +[292.152255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.15251, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.164526, "o", "000000ff51303132\\r\\n\r\n"] +[292.165024, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.165122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498496 (current time 26.7989623375)\r\n"] +[292.168459, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.168528, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.180415, "o", "1232303132333435\\r\\n\r\n"] +[292.180957, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.181133, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005065 (current time 26.798960327)\r\n"] +[292.183952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.184031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.195842, "o", "5151510daf515151\\r\\n\r\n"] +[292.196479, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496898 (current time 26.7989639355)\r\n"] +[292.198936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.199117, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.211525, "o", "fafa33d7d721007f\\r\\n\r\n"] +[292.211938, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492027 (current time 26.7989688065)\r\n"] +[292.214629, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.214808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.226632, "o", "3132331e35363738\\r\\n\r\n"] +[292.227075, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498921 (current time 26.7989619125)\r\n"] +[292.229568, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.229733, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.241669, "o", "0101010101010101\\r\\n\r\n"] +[292.242149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[292.24489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.244926, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.257644, "o", "01a8cbf1fe0ce651\\r\\n\r\n"] +[292.257939, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.258149, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909985 (current time 26.798969835)\r\n"] +[292.260766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.260779, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.260981, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.273107, "o", "36363636366587ff\\r\\n\r\n"] +[292.273578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972135 (current time 26.79896362)\r\n"] +[292.276386, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.276563, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.284286, "o", "0180000000\\r\\n\r\n"] +[292.284634, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.284796, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996713635 (current time 26.79878947)\r\n"] +[292.288157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.288362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.3005, "o", "b8b8b80341010000\\r\\n\r\n"] +[292.300701, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.301008, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497162 (current time 26.7989636715)\r\n"] +[292.30441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.304616, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.304734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.317572, "o", "c1c1c1c1c1c13536\\r\\n\r\n"] +[292.317955, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949355 (current time 26.7989672835)\r\n"] +[292.321579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.321633, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.321759, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.32594, "o", "ef41\\r\\n\r\n"] +[292.326382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.326497, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838876 (current time 26.7986219575)\r\n"] +[292.32867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.328781, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.334096, "o", "01da51\\r\\n\r\n"] +[292.3345, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.334726, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782297 (current time 26.7986785365)\r\n"] +[292.337841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.338006, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.338134, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.35113, "o", "01eaeaeaeaeaeaea\\r\\n\r\n"] +[292.351518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994842985 (current time 26.798976535)\r\n"] +[292.355079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.355228, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.367112, "o", "4141414141415f41\\r\\n\r\n"] +[292.367464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.367626, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992365 (current time 26.798961597)\r\n"] +[292.371226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.371368, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.38341, "o", "4050339191fd4091\\r\\n\r\n"] +[292.383835, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497794 (current time 26.7989630395)\r\n"] +[292.387613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.387707, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.391812, "o", "1f80\\r\\n\r\n"] +[292.392271, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400635 (current time 26.79862077)\r\n"] +[292.39468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.394764, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.39722, "o", "b9\\r\\n\r\n"] +[292.397794, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.397933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968365 (current time 26.798563997)\r\n"] +[292.399897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.400042, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.41182, "o", "4141414141414141\\r\\n\r\n"] +[292.412228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[292.414496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.414652, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.427194, "o", "7a8569727bdeaffe\\r\\n\r\n"] +[292.427545, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490327 (current time 26.7989705065)\r\n"] +[292.430307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.430522, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.443023, "o", "c3c3c3c3c3c3c3c3\\r\\n\r\n"] +[292.443398, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910785 (current time 26.798969755)\r\n"] +[292.445935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.446055, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.45831, "o", "0051515551af3750\\r\\n\r\n"] +[292.458723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979915 (current time 26.798962842)\r\n"] +[292.461725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.465569, "o", "0001\\r\\n\r\n"] +[292.466015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[292.469387, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.469452, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.469596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.481193, "o", "3030313233343536\\r\\n\r\n"] +[292.481567, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[292.485163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.48536, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.488013, "o", "51\\r\\n\r\n"] +[292.488178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[292.491073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.496231, "o", "065151\\r\\n\r\n"] +[292.496565, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784461 (current time 26.7986763725)\r\n"] +[292.498578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.502751, "o", "1a7f\\r\\n\r\n"] +[292.502945, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.50303, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388925 (current time 26.798621941)\r\n"] +[292.506017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.518174, "o", "d0d0d0d051515151\\r\\n\r\n"] +[292.518576, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959505 (current time 26.798964883)\r\n"] +[292.521846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.522007, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.53386, "o", "5151515151145151\\r\\n\r\n"] +[292.534282, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500349 (current time 26.7989604845)\r\n"] +[292.53791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.549884, "o", "3961626364656632\\r\\n\r\n"] +[292.550289, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997385 (current time 26.798961095)\r\n"] +[292.554089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.554172, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.554259, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.566853, "o", "9a9a9a9a00f0f0f3\\r\\n\r\n"] +[292.567261, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919745 (current time 26.798968859)\r\n"] +[292.571291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.571399, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.571505, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.582927, "o", "3031323334353637\\r\\n\r\n"] +[292.583375, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.583551, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[292.587325, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.587426, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.594129, "o", "0151513b\\r\\n\r\n"] +[292.594482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997266265 (current time 26.798734207)\r\n"] +[292.596921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.60956, "o", "1111111111dfe0e5\\r\\n\r\n"] +[292.609904, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[292.609995, "o", "[tsffs info] Cancelling event with next time 2.999496019 (current time 26.7989648145)\r\n"] +[292.612632, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.61276, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.619784, "o", "ff515151\\r\\n\r\n"] +[292.620121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725174 (current time 26.7987356595)\r\n"] +[292.623259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.635512, "o", "0130313233343536\\r\\n\r\n"] +[292.635979, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[292.636192, "o", "[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[292.639485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.639665, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.651539, "o", "0151333464520101\\r\\n\r\n"] +[292.651857, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005705 (current time 26.798960263)\r\n"] +[292.655453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.65558, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.668056, "o", "7535383031667533\\r\\n\r\n"] +[292.668408, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998705 (current time 26.798960963)\r\n"] +[292.672354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.672435, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.684559, "o", "52f8223e31085208\\r\\n\r\n"] +[292.684881, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.685134, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497771 (current time 26.7989630625)\r\n"] +[292.688635, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.688786, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.701071, "o", "363031328b7a3838\\r\\n\r\n"] +[292.701546, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.701694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977455 (current time 26.798963088)\r\n"] +[292.705218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.705264, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.716369, "o", "40ff1a92926d92\\r\\n\r\n"] +[292.716888, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995521075 (current time 26.798908726)\r\n"] +[292.720822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.720899, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.732181, "o", "ff00007fff7fff\\r\\n\r\n"] +[292.732392, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995474655 (current time 26.798913368)\r\n"] +[292.736368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.736525, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.748075, "o", "ffd80bffffd80b\\r\\n\r\n"] +[292.748401, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995451395 (current time 26.798915694)\r\n"] +[292.751835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.751923, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.763738, "o", "2222222222223072\\r\\n\r\n"] +[292.764062, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006195 (current time 26.798960214)\r\n"] +[292.766825, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.766902, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.778949, "o", "3030003c38666666\\r\\n\r\n"] +[292.779349, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498966 (current time 26.7989618675)\r\n"] +[292.781756, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.781854, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.793789, "o", "9a757a0021303132\\r\\n\r\n"] +[292.794168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498107 (current time 26.7989627265)\r\n"] +[292.796778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.796874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.802139, "o", "304332\\r\\n\r\n"] +[292.80233, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.802405, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845355 (current time 26.798676298)\r\n"] +[292.805948, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.80611, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.818281, "o", "df36ec000002003b\\r\\n\r\n"] +[292.818615, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.818938, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494954 (current time 26.7989658795)\r\n"] +[292.822364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.822603, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.834812, "o", "1130318a8a8a3133\\r\\n\r\n"] +[292.835023, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.835182, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496936 (current time 26.7989638975)\r\n"] +[292.838699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.838756, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.851231, "o", "1b034000a837db58\\r\\n\r\n"] +[292.851717, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957725 (current time 26.798965061)\r\n"] +[292.855212, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.85529, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.867527, "o", "1f9d9d3031323334\\r\\n\r\n"] +[292.867715, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.867995, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966525 (current time 26.798964181)\r\n"] +[292.871488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.871668, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.871739, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.884014, "o", "5151515151515101\\r\\n\r\n"] +[292.884562, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004475 (current time 26.798960386)\r\n"] +[292.888011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.888032, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.8882, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.8977, "o", "fe5151fe5151\\r\\n\r\n"] +[292.897977, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.898008, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[292.898021, "o", "[tsffs info] Cancelling event with next time 2.9996091215 (current time 26.798851712)\r\n"] +[292.901414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.901476, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.914334, "o", "d80bd9d8d9d9d9d9\\r\\n\r\n"] +[292.914794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490148 (current time 26.7989706855)\r\n"] +[292.918085, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[292.918197, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[292.918392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.93045, "o", "781b649b41668620\\r\\n\r\n"] +[292.930726, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.930847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497498 (current time 26.7989633355)\r\n"] +[292.933815, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.934127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.93932, "o", "010051\\r\\n\r\n"] +[292.939517, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.939912, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847325 (current time 26.798676101)\r\n"] +[292.942319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.944763, "o", "30\\r\\n\r\n"] +[292.945131, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981805 (current time 26.798562653)\r\n"] +[292.94718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.947457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.951413, "o", "0152\\r\\n\r\n"] +[292.951734, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.952063, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413785 (current time 26.798619455)\r\n"] +[292.955125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.95515, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.967869, "o", "32cd8f8f8f8f8fa5\\r\\n\r\n"] +[292.968468, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.96859, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490182 (current time 26.7989706515)\r\n"] +[292.971748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.971994, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[292.984144, "o", "595959597a4141bf\\r\\n\r\n"] +[292.984584, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[292.984688, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960745 (current time 26.798964759)\r\n"] +[292.988143, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[292.988405, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.0018, "o", "aa0131c47a7a7a7a\\r\\n\r\n"] +[293.00247, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949229 (current time 26.7989685435)\r\n"] +[293.005804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.006141, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.01808, "o", "b137230004167909\\r\\n\r\n"] +[293.018375, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.018671, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990675 (current time 26.798961766)\r\n"] +[293.021973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.02204, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.022145, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.027496, "o", "0151f2\\r\\n\r\n"] +[293.027991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783374 (current time 26.7986774595)\r\n"] +[293.030181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.030299, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.03842, "o", "7f47ff0000\\r\\n\r\n"] +[293.038818, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.039017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667223 (current time 26.7987936105)\r\n"] +[293.041701, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.041844, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.05383, "o", "58002970052f00fa\\r\\n\r\n"] +[293.054327, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496844 (current time 26.7989639895)\r\n"] +[293.057179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.06229, "o", "015164\\r\\n\r\n"] +[293.062689, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844875 (current time 26.798676346)\r\n"] +[293.064553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.076771, "o", "66757a7a696e6c17\\r\\n\r\n"] +[293.077259, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[293.079782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.079859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.091986, "o", "a8a8c430313233ff\\r\\n\r\n"] +[293.092421, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494413 (current time 26.7989664205)\r\n"] +[293.09507, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.095197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.106976, "o", "7f51403031323334\\r\\n\r\n"] +[293.107228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991925 (current time 26.798961641)\r\n"] +[293.109821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.109952, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.121725, "o", "01cd010101010101\\r\\n\r\n"] +[293.122055, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988695 (current time 26.798961964)\r\n"] +[293.124971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.137559, "o", "66666600ff6464de\\r\\n\r\n"] +[293.137823, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.137914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495072 (current time 26.7989657615)\r\n"] +[293.140951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.144889, "o", "513e\\r\\n\r\n"] +[293.1452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400755 (current time 26.798620758)\r\n"] +[293.147341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.159057, "o", "3032323334353637\\r\\n\r\n"] +[293.159424, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500225 (current time 26.7989606085)\r\n"] +[293.163005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.163281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.167395, "o", "e5f1\\r\\n\r\n"] +[293.167668, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.167879, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388495 (current time 26.798621984)\r\n"] +[293.172175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.172255, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.172414, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.184626, "o", "0051d200a5e951d2\\r\\n\r\n"] +[293.184923, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.185019, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958485 (current time 26.798964985)\r\n"] +[293.189074, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.189203, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.194676, "o", "015155\\r\\n\r\n"] +[293.195051, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844825 (current time 26.798676351)\r\n"] +[293.197161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.197188, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.201171, "o", "5151\\r\\n\r\n"] +[293.201241, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[293.204373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.204638, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.209775, "o", "02510f\\r\\n\r\n"] +[293.210237, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997834065 (current time 26.798677427)\r\n"] +[293.212389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.216308, "o", "5158\\r\\n\r\n"] +[293.216696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411175 (current time 26.798619716)\r\n"] +[293.220006, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.220283, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.232045, "o", "e200000000000000\\r\\n\r\n"] +[293.232389, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002485 (current time 26.798960585)\r\n"] +[293.235837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.235991, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.241531, "o", "30ce32\\r\\n\r\n"] +[293.241935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821975 (current time 26.798678636)\r\n"] +[293.244384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.256152, "o", "0b80000001003334\\r\\n\r\n"] +[293.256529, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998245 (current time 26.798961009)\r\n"] +[293.259146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.265924, "o", "000c0c0c\\r\\n\r\n"] +[293.266367, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997245495 (current time 26.798736284)\r\n"] +[293.269755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.269933, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.28216, "o", "6e6721303132a8a8\\r\\n\r\n"] +[293.282611, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.282794, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966745 (current time 26.798964159)\r\n"] +[293.286305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.286454, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.286634, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.299484, "o", "5f5f5f5f5f5f5f48\\r\\n\r\n"] +[293.299858, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.300065, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912905 (current time 26.798969543)\r\n"] +[293.303942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.30403, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.310793, "o", "52515251\\r\\n\r\n"] +[293.311177, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997275805 (current time 26.798733253)\r\n"] +[293.313536, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.313648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.325964, "o", "221b1b1b1b1b1b1b\\r\\n\r\n"] +[293.326365, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.326549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928285 (current time 26.798968005)\r\n"] +[293.329126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.329281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.341656, "o", "07c962781b05d2f3\\r\\n\r\n"] +[293.342064, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.342232, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953365 (current time 26.798965497)\r\n"] +[293.344944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.356869, "o", "fe30313233343536\\r\\n\r\n"] +[293.357253, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497918 (current time 26.7989629155)\r\n"] +[293.359966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.371841, "o", "030303a8030303a8\\r\\n\r\n"] +[293.372186, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983635 (current time 26.79896247)\r\n"] +[293.375122, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.38166, "o", "ae015151\\r\\n\r\n"] +[293.381954, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997254425 (current time 26.798735391)\r\n"] +[293.384547, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.388871, "o", "7fff\\r\\n\r\n"] +[293.389231, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[293.391713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.404763, "o", "00007fffef270002\\r\\n\r\n"] +[293.40512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494625 (current time 26.7989662085)\r\n"] +[293.408061, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.413732, "o", "b0efda\\r\\n\r\n"] +[293.414098, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999778701 (current time 26.7986821325)\r\n"] +[293.416016, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.426851, "o", "fdfd5000805050\\r\\n\r\n"] +[293.427371, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999552576 (current time 26.7989082575)\r\n"] +[293.429696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.441488, "o", "3233343536373839\\r\\n\r\n"] +[293.441916, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998695 (current time 26.798960964)\r\n"] +[293.44471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.456914, "o", "5253d3d3d3d35374\\r\\n\r\n"] +[293.457203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495408 (current time 26.7989654255)\r\n"] +[293.459739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.472445, "o", "01a5a5a5a5b5fdfd\\r\\n\r\n"] +[293.472607, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.472712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898735 (current time 26.79897096)\r\n"] +[293.475547, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.479482, "o", "e352\\r\\n\r\n"] +[293.479727, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400535 (current time 26.79862078)\r\n"] +[293.481646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.494013, "o", "417f0000e8e2e2e2\\r\\n\r\n"] +[293.494372, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.494479, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494499 (current time 26.7989663345)\r\n"] +[293.496752, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.508485, "o", "4141414141414141\\r\\n\r\n"] +[293.508798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[293.511544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.515352, "o", "3076\\r\\n\r\n"] +[293.515662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411895 (current time 26.798619644)\r\n"] +[293.518319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.523704, "o", "e35151\\r\\n\r\n"] +[293.524014, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978325 (current time 26.7986775835)\r\n"] +[293.526352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.52648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.530244, "o", "0251\\r\\n\r\n"] +[293.530578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413785 (current time 26.798619455)\r\n"] +[293.532569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.532674, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.544621, "o", "6575667a30312d33\\r\\n\r\n"] +[293.544969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977055 (current time 26.798963128)\r\n"] +[293.547458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.547523, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.559772, "o", "6666666666666666\\r\\n\r\n"] +[293.56012, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[293.560145, "o", "[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[293.562824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.562948, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.574809, "o", "3031313334363637\\r\\n\r\n"] +[293.575124, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002475 (current time 26.798960586)\r\n"] +[293.57801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.578136, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.590176, "o", "d8290bd700010101\\r\\n\r\n"] +[293.590477, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.590587, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971405 (current time 26.798963693)\r\n"] +[293.593127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.593213, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.593486, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.605923, "o", "f107c962211b03d2\\r\\n\r\n"] +[293.606274, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495709 (current time 26.7989651245)\r\n"] +[293.609062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.617654, "o", "ffff7f0001\\r\\n\r\n"] +[293.617824, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996648575 (current time 26.798795976)\r\n"] +[293.621389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.625505, "o", "00ff\\r\\n\r\n"] +[293.625753, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389825 (current time 26.798621851)\r\n"] +[293.628012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.639774, "o", "3031323334353637\\r\\n\r\n"] +[293.640025, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[293.64257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.646384, "o", "6675\\r\\n\r\n"] +[293.646785, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840989 (current time 26.7986198445)\r\n"] +[293.648634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.653019, "o", "8fff\\r\\n\r\n"] +[293.653254, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837488 (current time 26.7986233455)\r\n"] +[293.656221, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.660044, "o", "0150\\r\\n\r\n"] +[293.660398, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841433 (current time 26.7986194005)\r\n"] +[293.662412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.674573, "o", "654165bc6561d80a\\r\\n\r\n"] +[293.67488, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953945 (current time 26.798965439)\r\n"] +[293.677521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.689353, "o", "4646464646467230\\r\\n\r\n"] +[293.689662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998035 (current time 26.79896103)\r\n"] +[293.692501, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.692788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.69933, "o", "d80b4051\\r\\n\r\n"] +[293.699674, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725355 (current time 26.7987354785)\r\n"] +[293.703421, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.703613, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.716652, "o", "e2e2e2e2deafaffe\\r\\n\r\n"] +[293.716877, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486155 (current time 26.7989746785)\r\n"] +[293.720891, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.721037, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.732806, "o", "3031323334353637\\r\\n\r\n"] +[293.733205, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[293.737163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.737273, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.737502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.750457, "o", "ff4eaee9e9e9d863\\r\\n\r\n"] +[293.750813, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.751042, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994889695 (current time 26.798971864)\r\n"] +[293.754619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.754746, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.766553, "o", "3839616263646507\\r\\n\r\n"] +[293.767047, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499719 (current time 26.7989611145)\r\n"] +[293.770831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.770965, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.777693, "o", "0c010c01\\r\\n\r\n"] +[293.77802, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.7783, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997257195 (current time 26.798735114)\r\n"] +[293.780575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.780763, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.793265, "o", "01bf6a01bf6a6a62\\r\\n\r\n"] +[293.793502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492309 (current time 26.7989685245)\r\n"] +[293.796114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.796304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.8087, "o", "511b03d2f3a8cbf1\\r\\n\r\n"] +[293.808914, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922755 (current time 26.798968558)\r\n"] +[293.811765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.824012, "o", "517a7a7a7a7a7a01\\r\\n\r\n"] +[293.824332, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932235 (current time 26.79896761)\r\n"] +[293.82691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.836146, "o", "666666666666\\r\\n\r\n"] +[293.836475, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999613157 (current time 26.7988476765)\r\n"] +[293.839521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.839602, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.852019, "o", "d393fa00ff0c6c6b\\r\\n\r\n"] +[293.852364, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.852543, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490894 (current time 26.7989699395)\r\n"] +[293.85597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.856108, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.86815, "o", "05807f3031323334\\r\\n\r\n"] +[293.868452, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.868643, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499133 (current time 26.7989617005)\r\n"] +[293.872162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.872366, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.884689, "o", "c66900c7000000c6\\r\\n\r\n"] +[293.884969, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.885141, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497042 (current time 26.7989637915)\r\n"] +[293.888515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.88864, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.901088, "o", "7a7a1b0333d80b03\\r\\n\r\n"] +[293.901382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.901716, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494669 (current time 26.7989661645)\r\n"] +[293.905088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.905211, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.905281, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.917481, "o", "ffe8030000313131\\r\\n\r\n"] +[293.917805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.917959, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497095 (current time 26.7989637385)\r\n"] +[293.921436, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.921591, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.921686, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.934594, "o", "9e9e9e9e9e9e9680\\r\\n\r\n"] +[293.934841, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.935185, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492032 (current time 26.7989688015)\r\n"] +[293.938838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.938928, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.951883, "o", "40d8ebeb04eceb00\\r\\n\r\n"] +[293.952175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.952397, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489984 (current time 26.7989708495)\r\n"] +[293.956016, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[293.956249, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[293.956397, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.961581, "o", "0020f0\\r\\n\r\n"] +[293.962017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783564 (current time 26.7986772695)\r\n"] +[293.964302, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.97605, "o", "3031323334353637\\r\\n\r\n"] +[293.976373, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.976562, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[293.97903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.979168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[293.988287, "o", "486675775151\\r\\n\r\n"] +[293.988804, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[293.988877, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999613367 (current time 26.7988474665)\r\n"] +[293.9917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[293.991891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.00495, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[294.005416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.005628, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[294.008634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.008817, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.02128, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[294.021841, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[294.025021, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.0251, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.037348, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.037843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.041029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.041233, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.0533, "o", "0123785266003ff4\\r\\n\r\n"] +[294.053706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977935 (current time 26.79896304)\r\n"] +[294.056869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.056953, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.06967, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.069829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.073462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.085632, "o", "0123785266003ff4\\r\\n\r\n"] +[294.085935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977935 (current time 26.79896304)\r\n"] +[294.089504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.101624, "o", "0123785266003ff4\\r\\n\r\n"] +[294.101709, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977935 (current time 26.79896304)\r\n"] +[294.105153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.105356, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.117839, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.11815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[294.118238, "o", "[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.12179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.12187, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.133975, "o", "0029705666003ff4\\r\\n\r\n"] +[294.134331, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497783 (current time 26.7989630505)\r\n"] +[294.138093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.138321, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.150949, "o", "0123785266ff3a8b\\r\\n\r\n"] +[294.15142, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.151656, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495314 (current time 26.7989655195)\r\n"] +[294.155046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.155275, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.167264, "o", "0029705666003ff4\\r\\n\r\n"] +[294.16762, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497783 (current time 26.7989630505)\r\n"] +[294.17157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.171648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.183951, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.184314, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.184474, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.188027, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.188221, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.200569, "o", "0029785266ff3a8b\\r\\n\r\n"] +[294.201036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495205 (current time 26.7989656285)\r\n"] +[294.204848, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.204951, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.217403, "o", "0123705666ff3a8b\\r\\n\r\n"] +[294.217758, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.217908, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954125 (current time 26.798965421)\r\n"] +[294.222575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.222696, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.235359, "o", "0029705666ff3ff4\\r\\n\r\n"] +[294.235548, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.235809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495175 (current time 26.7989656585)\r\n"] +[294.240311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.240375, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.252799, "o", "0029705266ff3a8b\\r\\n\r\n"] +[294.253119, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953955 (current time 26.798965438)\r\n"] +[294.256556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.268591, "o", "0029705666003a8b\\r\\n\r\n"] +[294.268943, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979115 (current time 26.798962922)\r\n"] +[294.272488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.284838, "o", "0029705666ff3f8b\\r\\n\r\n"] +[294.28523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951845 (current time 26.798965649)\r\n"] +[294.288724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.288795, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.301179, "o", "0029705266ff3a8b\\r\\n\r\n"] +[294.301666, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.301813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953955 (current time 26.798965438)\r\n"] +[294.305449, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.317787, "o", "0029705666ff3af4\\r\\n\r\n"] +[294.318183, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495294 (current time 26.7989655395)\r\n"] +[294.321674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.321707, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.334096, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.334481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.33863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.351015, "o", "0023705666ff3a8b\\r\\n\r\n"] +[294.351463, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.351624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495445 (current time 26.7989653885)\r\n"] +[294.354947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.355152, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.367422, "o", "0129705666ff3a8b\\r\\n\r\n"] +[294.367801, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.368008, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495271 (current time 26.7989655625)\r\n"] +[294.371543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.371706, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.371869, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.384412, "o", "0029785666ff3a8b\\r\\n\r\n"] +[294.384817, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495113 (current time 26.7989657205)\r\n"] +[294.38838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.388517, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.430589, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.431449, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.435461, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.43557, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.477733, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.478775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.483256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[294.483483, "o", "[tsffs info] Resuming simulation\r\n"] +[294.525558, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.526508, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.526542, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.529412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.529502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.541932, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.5423, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.545296, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.545403, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.557492, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.557845, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.560813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.560894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.573073, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.573412, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.573732, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.575881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.57598, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.588389, "o", "b8034000a8cbf1a8\\r\\n\r\n"] +[294.588758, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.588847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493488 (current time 26.7989673455)\r\n"] +[294.591918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.604568, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.605011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.607889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.607936, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.620038, "o", "b449494949294949\\r\\n\r\n"] +[294.620516, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.620588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980995 (current time 26.798962734)\r\n"] +[294.623465, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.623646, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.63585, "o", "0200703a3a8b9ee4\\r\\n\r\n"] +[294.636352, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.636518, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945555 (current time 26.798966278)\r\n"] +[294.639798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.639897, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.651779, "o", "3430313233340bbf\\r\\n\r\n"] +[294.652202, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.652388, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970435 (current time 26.79896379)\r\n"] +[294.655556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.655687, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.655895, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.667889, "o", "c7c7346458626364\\r\\n\r\n"] +[294.668379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497352 (current time 26.7989634815)\r\n"] +[294.671773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.671972, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.684043, "o", "0029705666003a8b\\r\\n\r\n"] +[294.684335, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979115 (current time 26.798962922)\r\n"] +[294.687941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.688032, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.700709, "o", "d2f3a8cbf107c962\\r\\n\r\n"] +[294.701037, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.70126, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491914 (current time 26.7989689195)\r\n"] +[294.704874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.705149, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.717648, "o", "ff0303fe0cda7700\\r\\n\r\n"] +[294.717945, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.718132, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[294.718537, "o", "[tsffs info] Cancelling event with next time 2.9994922115 (current time 26.798968622)\r\n"] +[294.721496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.721693, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.721733, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.734287, "o", "0029705666ff3a8b\\r\\n\r\n"] +[294.734675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[294.738205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.738424, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.750712, "o", "29703f66ff3a2970\\r\\n\r\n"] +[294.751167, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951355 (current time 26.798965698)\r\n"] +[294.754871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.754996, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.767268, "o", "001070705681ffb8\\r\\n\r\n"] +[294.767575, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.767786, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967015 (current time 26.798964132)\r\n"] +[294.771192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.771285, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.771437, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.775343, "o", "0077\\r\\n\r\n"] +[294.775734, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412375 (current time 26.798619596)\r\n"] +[294.77823, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.778358, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.791131, "o", "fe0cdcfae5e5e530\\r\\n\r\n"] +[294.791466, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.79162, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488498 (current time 26.7989723355)\r\n"] +[294.794266, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.79442, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.806801, "o", "c214fe0cffff4000\\r\\n\r\n"] +[294.807166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491029 (current time 26.7989698045)\r\n"] +[294.809597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.809744, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.822631, "o", "eaea05ebea40eaea\\r\\n\r\n"] +[294.823107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.823288, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994865545 (current time 26.798974279)\r\n"] +[294.825475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.825672, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.837836, "o", "0000005666ff3af1\\r\\n\r\n"] +[294.838386, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.8385, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958105 (current time 26.798965023)\r\n"] +[294.841446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.841473, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.853799, "o", "3839f0107a66757a\\r\\n\r\n"] +[294.854172, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[294.854296, "o", "[tsffs info] Cancelling event with next time 2.9994963625 (current time 26.798964471)\r\n"] +[294.85715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.857343, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.869781, "o", "2970566e673a8b9e\\r\\n\r\n"] +[294.870244, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.870325, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949565 (current time 26.798965877)\r\n"] +[294.873237, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.873309, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.873642, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.886169, "o", "ededed5666ff38b5\\r\\n\r\n"] +[294.886494, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.886513, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[294.886787, "o", "[tsffs info] Cancelling event with next time 2.999489224 (current time 26.7989716095)\r\n"] +[294.890141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.89024, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.890441, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.903205, "o", "3ad2d2fed2dbfafb\\r\\n\r\n"] +[294.903617, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994863725 (current time 26.798974461)\r\n"] +[294.90658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.906702, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.918882, "o", "66ff3a3233363636\\r\\n\r\n"] +[294.919198, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.919524, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496453 (current time 26.7989643805)\r\n"] +[294.923697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[294.923885, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.933127, "o", "014424244026\\r\\n\r\n"] +[294.933434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.933687, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996140835 (current time 26.79884675)\r\n"] +[294.937628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.937781, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.938023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[294.938052, "o", "[tsffs info] Resuming simulation\r\n"] +[294.950594, "o", "3030303030303030\\r\\n\r\n"] +[294.950922, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.951115, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[294.954859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.954883, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.955237, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.968444, "o", "a805e8ae727bfe00\\r\\n\r\n"] +[294.968859, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.969072, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491954 (current time 26.7989688795)\r\n"] +[294.972039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.972111, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.972291, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[294.984421, "o", "3333000001003a8b\\r\\n\r\n"] +[294.984754, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[294.984951, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498582 (current time 26.7989622515)\r\n"] +[294.988566, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[294.988686, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[294.988823, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.001145, "o", "0000298f5666ff3a\\r\\n\r\n"] +[295.001567, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953785 (current time 26.798965455)\r\n"] +[295.004979, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.005108, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[295.005264, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.017572, "o", "bdbd4141414141d0\\r\\n\r\n"] +[295.018027, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.01817, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494771 (current time 26.7989660625)\r\n"] +[295.021633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.021725, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[295.021917, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.034037, "o", "223e31146f3a1760\\r\\n\r\n"] +[295.034446, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.03448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968055 (current time 26.798964028)\r\n"] +[295.038011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.03824, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.050946, "o", "002a705666ff3a8b\\r\\n\r\n"] +[295.051312, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.051683, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494338 (current time 26.7989664955)\r\n"] +[295.055243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.055513, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.067694, "o", "3132333c353665ff\\r\\n\r\n"] +[295.068086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965635 (current time 26.79896427)\r\n"] +[295.07144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.071529, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[295.071844, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.083782, "o", "46464646464646a1\\r\\n\r\n"] +[295.084192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949865 (current time 26.7989621835)\r\n"] +[295.087979, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.088045, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.100819, "o", "7af1f1f1f1f1f1f1\\r\\n\r\n"] +[295.100975, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.101129, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908655 (current time 26.798969968)\r\n"] +[295.105018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.105212, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[295.10538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.118746, "o", "6465669a0ddbfafb\\r\\n\r\n"] +[295.11904, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.119343, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906695 (current time 26.798970164)\r\n"] +[295.12265, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.122742, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.130647, "o", "51000000ae\\r\\n\r\n"] +[295.131299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996689645 (current time 26.798791869)\r\n"] +[295.133912, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.146014, "o", "0010705666ff3a8b\\r\\n\r\n"] +[295.146416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.146552, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495545 (current time 26.7989652885)\r\n"] +[295.148742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.161478, "o", "66753318deaffe78\\r\\n\r\n"] +[295.161794, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.161966, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926325 (current time 26.798968201)\r\n"] +[295.164462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.176354, "o", "0c34303112333435\\r\\n\r\n"] +[295.17671, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949936 (current time 26.7989614735)\r\n"] +[295.179172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.179327, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.190928, "o", "3132333435363738\\r\\n\r\n"] +[295.191332, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[295.1941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.205877, "o", "00000000000000ff\\r\\n\r\n"] +[295.206295, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989745 (current time 26.798961859)\r\n"] +[295.208791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.221152, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.221387, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.221738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.224353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.237614, "o", "ff3a8b9e66e59e20\\r\\n\r\n"] +[295.237882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.238003, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915685 (current time 26.798969265)\r\n"] +[295.241129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.241317, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.254706, "o", "8213ffff7fff3876\\r\\n\r\n"] +[295.254936, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.255246, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491331 (current time 26.7989695025)\r\n"] +[295.257952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.270491, "o", "f8007f3031cd3334\\r\\n\r\n"] +[295.270757, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.271095, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495601 (current time 26.7989652325)\r\n"] +[295.274202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.27428, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.286648, "o", "ce1bb8b813131313\\r\\n\r\n"] +[295.286953, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494605 (current time 26.7989662285)\r\n"] +[295.290308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.295619, "o", "2d6666\\r\\n\r\n"] +[295.295988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997830315 (current time 26.798677802)\r\n"] +[295.297921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.298059, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.310165, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.310489, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.313089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.325446, "o", "72569a62781b03d2\\r\\n\r\n"] +[295.32572, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.325921, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964895 (current time 26.798964344)\r\n"] +[295.328623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.341137, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.341513, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[295.341522, "o", "[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.344403, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.344611, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.356742, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.357006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.357394, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.359716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.359868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.372073, "o", "3e311e6f1c176064\\r\\n\r\n"] +[295.372315, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.372603, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495484 (current time 26.7989653495)\r\n"] +[295.375032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.387, "o", "f130313233343536\\r\\n\r\n"] +[295.387299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499165 (current time 26.7989616685)\r\n"] +[295.390442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.390655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.403308, "o", "0029705666fffbf8\\r\\n\r\n"] +[295.403611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939585 (current time 26.798966875)\r\n"] +[295.406759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.40688, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.419143, "o", "2200020000db14fe\\r\\n\r\n"] +[295.419406, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.419482, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962515 (current time 26.798964582)\r\n"] +[295.42298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.435746, "o", "7a0001ff207a7a7a\\r\\n\r\n"] +[295.436051, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934415 (current time 26.798967392)\r\n"] +[295.439591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.452353, "o", "affc781b03d2f3a8\\r\\n\r\n"] +[295.452645, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490812 (current time 26.7989700215)\r\n"] +[295.456173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.456394, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.469578, "o", "03d3f3a8cbc35a70\\r\\n\r\n"] +[295.469899, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921815 (current time 26.798968652)\r\n"] +[295.472978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.473076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.485081, "o", "606060f8223e3120\\r\\n\r\n"] +[295.485365, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498017 (current time 26.7989628165)\r\n"] +[295.488963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.489016, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.500952, "o", "0029705699303132\\r\\n\r\n"] +[295.501346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001005 (current time 26.798960733)\r\n"] +[295.505254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.517457, "o", "1b03d2f336353830\\r\\n\r\n"] +[295.517759, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968085 (current time 26.798964025)\r\n"] +[295.521525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.52161, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.534522, "o", "003f705666ff3a8b\\r\\n\r\n"] +[295.534837, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941955 (current time 26.798966638)\r\n"] +[295.538924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.538991, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.551384, "o", "0029705666fe3a8b\\r\\n\r\n"] +[295.551697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495328 (current time 26.7989655055)\r\n"] +[295.555669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.555747, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.567823, "o", "0029706e67002970\\r\\n\r\n"] +[295.568053, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989325 (current time 26.798961901)\r\n"] +[295.572045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.572111, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.584266, "o", "5353007f35535353\\r\\n\r\n"] +[295.584455, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.584649, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498884 (current time 26.7989619495)\r\n"] +[295.58843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.588497, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.601142, "o", "6552417a7a7a7a7a\\r\\n\r\n"] +[295.601482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494193 (current time 26.7989666405)\r\n"] +[295.605333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.605369, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.610714, "o", "306640\\r\\n\r\n"] +[295.611024, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784453 (current time 26.7986763805)\r\n"] +[295.613141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.624825, "o", "4141414141416675\\r\\n\r\n"] +[295.62514, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500202 (current time 26.7989606315)\r\n"] +[295.628109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.64032, "o", "0029705600000080\\r\\n\r\n"] +[295.640665, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950067 (current time 26.7989601635)\r\n"] +[295.643332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.656145, "o", "b8b8705666deaffe\\r\\n\r\n"] +[295.656422, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490453 (current time 26.7989703805)\r\n"] +[295.658972, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.671679, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.672023, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.674772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.687496, "o", "8a8a8a8a8a8a8a8a\\r\\n\r\n"] +[295.68782, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[295.691188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.691308, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.704009, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.70431, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.704406, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.708589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.708714, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[295.70886, "o", "[tsffs info] Resuming simulation\r\n"] +[295.714223, "o", "c6c664\\r\\n\r\n"] +[295.714559, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997819145 (current time 26.798678919)\r\n"] +[295.717, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.717076, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[295.717183, "o", "[tsffs info] Resuming simulation\r\n"] +[295.729328, "o", "4141705666ff3aa4\\r\\n\r\n"] +[295.729819, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495425 (current time 26.7989654085)\r\n"] +[295.732153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.744082, "o", "664141413e414141\\r\\n\r\n"] +[295.744433, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991425 (current time 26.798961691)\r\n"] +[295.74811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.748248, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.760341, "o", "2180252f25b1b1b1\\r\\n\r\n"] +[295.760683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958825 (current time 26.798964951)\r\n"] +[295.762966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.774737, "o", "0029303132333435\\r\\n\r\n"] +[295.775052, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500452 (current time 26.7989603815)\r\n"] +[295.777801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.790199, "o", "62ffa7a800a857a8\\r\\n\r\n"] +[295.790562, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492984 (current time 26.7989678495)\r\n"] +[295.793342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.80545, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.805794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.80829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.820493, "o", "002970d2d2d26675\\r\\n\r\n"] +[295.820769, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.820979, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966225 (current time 26.798964211)\r\n"] +[295.824086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.824197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.837456, "o", "ae727bdeaf1efe0c\\r\\n\r\n"] +[295.837797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994873585 (current time 26.798973475)\r\n"] +[295.841081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.841176, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.853041, "o", "3361616161616161\\r\\n\r\n"] +[295.853417, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001735 (current time 26.79896066)\r\n"] +[295.856689, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.86863, "o", "db00000000805100\\r\\n\r\n"] +[295.86885, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987815 (current time 26.798962052)\r\n"] +[295.872434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.872549, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.880534, "o", "7a698f0205\\r\\n\r\n"] +[295.880878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668185 (current time 26.7987926485)\r\n"] +[295.883254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.895412, "o", "9bae414141423031\\r\\n\r\n"] +[295.895696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969615 (current time 26.798963872)\r\n"] +[295.898026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.910253, "o", "0029705666ff3a8b\\r\\n\r\n"] +[295.910575, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[295.913228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[295.913328, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.918866, "o", "0fbd32\\r\\n\r\n"] +[295.919306, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[295.91945, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781033 (current time 26.7986798005)\r\n"] +[295.922635, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.922764, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.935077, "o", "0ca8cb4444444344\\r\\n\r\n"] +[295.935314, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949557 (current time 26.7989652635)\r\n"] +[295.939203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.939352, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.951816, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[295.952144, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[295.956036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.956116, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.968654, "o", "5666ff3a41414166\\r\\n\r\n"] +[295.969085, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496461 (current time 26.7989643725)\r\n"] +[295.972663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.972744, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[295.984909, "o", "e59e30313266757a\\r\\n\r\n"] +[295.985323, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496402 (current time 26.7989644315)\r\n"] +[295.988943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[295.989031, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[295.98913, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.000997, "o", "396162623939e935\\r\\n\r\n"] +[296.001415, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498407 (current time 26.7989624265)\r\n"] +[296.005039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.005095, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.018087, "o", "d1eb2c0cf6f6000c\\r\\n\r\n"] +[296.018384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491157 (current time 26.7989696765)\r\n"] +[296.02204, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.022118, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.034006, "o", "0029705666666600\\r\\n\r\n"] +[296.034359, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999815 (current time 26.798960852)\r\n"] +[296.038037, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.038121, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.050695, "o", "b8b8b8b8b8b8412c\\r\\n\r\n"] +[296.051032, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.051334, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491804 (current time 26.7989690295)\r\n"] +[296.05481, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.054865, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.067032, "o", "647f6464647e6440\\r\\n\r\n"] +[296.067337, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.067438, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973225 (current time 26.798963511)\r\n"] +[296.070988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.071155, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.082996, "o", "27000027272700a3\\r\\n\r\n"] +[296.083342, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.083504, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993955 (current time 26.798961438)\r\n"] +[296.087488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.087633, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.100035, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.100243, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.10437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.104551, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.117094, "o", "80fff02030ce3233\\r\\n\r\n"] +[296.117379, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.1176, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945445 (current time 26.798966289)\r\n"] +[296.121234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.121433, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[296.121587, "o", "[tsffs info] Resuming simulation\r\n"] +[296.133668, "o", "002970c962c21456\\r\\n\r\n"] +[296.13397, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.134247, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977845 (current time 26.798963049)\r\n"] +[296.137784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.137992, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.149896, "o", "3031323334353637\\r\\n\r\n"] +[296.150197, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.150421, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[296.154186, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.154389, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.158323, "o", "0010\\r\\n\r\n"] +[296.158727, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[296.161017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.161175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.173696, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.173922, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.174013, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.176743, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.176852, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.176894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.188831, "o", "000065214b659a65\\r\\n\r\n"] +[296.189104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.189263, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979755 (current time 26.798962858)\r\n"] +[296.191714, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.191759, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.191869, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.204104, "o", "00fd0031316f3a80\\r\\n\r\n"] +[296.204346, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.204481, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[296.204582, "o", "[tsffs info] Cancelling event with next time 2.999495903 (current time 26.7989649305)\r\n"] +[296.207532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.207577, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.207653, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.221035, "o", "9ee7ae727b0b0b0b\\r\\n\r\n"] +[296.221326, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.22143, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909455 (current time 26.798969888)\r\n"] +[296.224379, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.224462, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.22465, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.236731, "o", "757a6e6711393738\\r\\n\r\n"] +[296.23701, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497285 (current time 26.7989635485)\r\n"] +[296.240113, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.252627, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.252911, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.253116, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.256492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.256705, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.269028, "o", "66757a7a696e6c17\\r\\n\r\n"] +[296.269265, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.26943, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[296.272957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.273179, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.286221, "o", "02abaca847474747\\r\\n\r\n"] +[296.286719, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.286775, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494245 (current time 26.7989665885)\r\n"] +[296.289894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.28997, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.290173, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.302535, "o", "0028705666ff3a8b\\r\\n\r\n"] +[296.302766, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.302857, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953325 (current time 26.798965501)\r\n"] +[296.306318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.306437, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.306733, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.318431, "o", "40a5e90029700066\\r\\n\r\n"] +[296.318797, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.318836, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979315 (current time 26.798962902)\r\n"] +[296.322385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.322488, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[296.322573, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.335125, "o", "e7ae34646866ff3a\\r\\n\r\n"] +[296.335402, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.33562, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927395 (current time 26.798968094)\r\n"] +[296.339596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.339658, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.351507, "o", "3600000000363636\\r\\n\r\n"] +[296.351714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.351896, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006845 (current time 26.798960149)\r\n"] +[296.355523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.355596, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.368424, "o", "002970a5e9ff3a8b\\r\\n\r\n"] +[296.368763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493059 (current time 26.7989677745)\r\n"] +[296.372467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.372614, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.384587, "o", "eb64720029705666\\r\\n\r\n"] +[296.384866, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976095 (current time 26.798963224)\r\n"] +[296.388484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.393702, "o", "733031\\r\\n\r\n"] +[296.394036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844795 (current time 26.798676354)\r\n"] +[296.396121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.408304, "o", "14fe0029705666ff\\r\\n\r\n"] +[296.408661, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495245 (current time 26.7989655885)\r\n"] +[296.411462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.423107, "o", "3132333423232323\\r\\n\r\n"] +[296.42342, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500477 (current time 26.7989603565)\r\n"] +[296.426004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.426253, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.438532, "o", "1229705666ffa83a\\r\\n\r\n"] +[296.438751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495234 (current time 26.7989655995)\r\n"] +[296.441512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.441632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.453873, "o", "626243d241bfbf67\\r\\n\r\n"] +[296.454238, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494232 (current time 26.7989666015)\r\n"] +[296.457195, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.469878, "o", "00297056dcdcdcdc\\r\\n\r\n"] +[296.47018, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909185 (current time 26.798969915)\r\n"] +[296.473324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.485227, "o", "3527373839613131\\r\\n\r\n"] +[296.485499, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499928 (current time 26.7989609055)\r\n"] +[296.488944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.489115, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.49604, "o", "fe01fe01\\r\\n\r\n"] +[296.496373, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.496501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997230225 (current time 26.798737811)\r\n"] +[296.498562, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.498728, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.511261, "o", "66ff3a8b9ee59ee7\\r\\n\r\n"] +[296.511537, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.51172, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901635 (current time 26.79897067)\r\n"] +[296.514135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.514353, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.526907, "o", "ff3a019ee59ee7ae\\r\\n\r\n"] +[296.527181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.52747, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489356 (current time 26.7989714775)\r\n"] +[296.529802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.529955, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.542417, "o", "e7aefe781b03d2f3\\r\\n\r\n"] +[296.542725, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.54294, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907115 (current time 26.798970122)\r\n"] +[296.545537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.545579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.558011, "o", "156f6f6f6fe9a76f\\r\\n\r\n"] +[296.558281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491312 (current time 26.7989695215)\r\n"] +[296.561118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.561188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.564797, "o", "3535\\r\\n\r\n"] +[296.565175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.565496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411845 (current time 26.798619649)\r\n"] +[296.568405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.568482, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.580796, "o", "003e3e3eff7f0000\\r\\n\r\n"] +[296.58107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.581324, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934215 (current time 26.798967412)\r\n"] +[296.584197, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.584362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.596594, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.597008, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.597108, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.599414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.599634, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.611863, "o", "40ee521a1a1a1a19\\r\\n\r\n"] +[296.612239, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.612478, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936235 (current time 26.79896721)\r\n"] +[296.614678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.615031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.626623, "o", "0715151515151530\\r\\n\r\n"] +[296.627002, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500383 (current time 26.7989604505)\r\n"] +[296.629484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.629639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.642414, "o", "f3f3f3f3f3f3f3f3\\r\\n\r\n"] +[296.642696, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.64297, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905265 (current time 26.798970307)\r\n"] +[296.645809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.645982, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.658182, "o", "56660cdb34643535\\r\\n\r\n"] +[296.658531, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965025 (current time 26.798964331)\r\n"] +[296.661207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.661374, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.673432, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.673677, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.673954, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.677663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.677858, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.69024, "o", "bdbd4330383961f0\\r\\n\r\n"] +[296.690418, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494373 (current time 26.7989664605)\r\n"] +[296.693436, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.705053, "o", "3031323334353638\\r\\n\r\n"] +[296.705512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500233 (current time 26.7989606005)\r\n"] +[296.707865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.707931, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.719854, "o", "1b03d20029705666\\r\\n\r\n"] +[296.72011, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.720257, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979495 (current time 26.798962884)\r\n"] +[296.723205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.735579, "o", "009ee7ae29705666\\r\\n\r\n"] +[296.735842, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.736014, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495148 (current time 26.7989656855)\r\n"] +[296.739446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.739597, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.751962, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.752214, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.752447, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.756078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.756334, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.769036, "o", "002970ffffff3a8b\\r\\n\r\n"] +[296.769201, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490652 (current time 26.7989701815)\r\n"] +[296.77285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.772937, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.786032, "o", "62c214fdf3e5fafb\\r\\n\r\n"] +[296.78634, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.78637, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896245 (current time 26.798971209)\r\n"] +[296.789794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.789884, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.8021, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.802438, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.805997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.806123, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.818452, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.81881, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.822434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.822786, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.835488, "o", "52d9e751fafafafa\\r\\n\r\n"] +[296.835757, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.835958, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883635 (current time 26.79897247)\r\n"] +[296.83944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.839636, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.851824, "o", "0029705666ff3a8b\\r\\n\r\n"] +[296.852212, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[296.855898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.856175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.870223, "o", "e7ae727bdeaffe00\\r\\n\r\n"] +[296.87055, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994884495 (current time 26.798972384)\r\n"] +[296.873703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.873871, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.885963, "o", "696969d630313200\\r\\n\r\n"] +[296.886316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.886569, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987665 (current time 26.798962067)\r\n"] +[296.889777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.890043, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.903196, "o", "8b9ee59ee7ae727b\\r\\n\r\n"] +[296.903567, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902565 (current time 26.798970577)\r\n"] +[296.906689, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[296.906855, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.92064, "o", "cbf107c962c214fe\\r\\n\r\n"] +[296.920935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919725 (current time 26.798968861)\r\n"] +[296.924404, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.930027, "o", "e95151\\r\\n\r\n"] +[296.93029, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831085 (current time 26.798677725)\r\n"] +[296.93248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.932793, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.946068, "o", "fdfdfdfdfd303132\\r\\n\r\n"] +[296.946443, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488489 (current time 26.7989723445)\r\n"] +[296.948946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.949113, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.962253, "o", "78ffff9090909090\\r\\n\r\n"] +[296.96246, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.962655, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494902 (current time 26.7989659315)\r\n"] +[296.965092, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.965329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.978377, "o", "29705666ff3a8b9e\\r\\n\r\n"] +[296.978671, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[296.978922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938045 (current time 26.798967029)\r\n"] +[296.981448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.981649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[296.994505, "o", "00fafafafafa2a70\\r\\n\r\n"] +[296.994839, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994877215 (current time 26.798973112)\r\n"] +[296.997546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[296.997613, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.009645, "o", "69454545317a7a69\\r\\n\r\n"] +[297.01007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973465 (current time 26.798963487)\r\n"] +[297.012829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.013051, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.02529, "o", "00ff00ce32646464\\r\\n\r\n"] +[297.025463, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.025729, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955925 (current time 26.798965241)\r\n"] +[297.028559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.028661, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.040574, "o", "0030cf3233343536\\r\\n\r\n"] +[297.040948, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498073 (current time 26.7989627605)\r\n"] +[297.043802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.043894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.056728, "o", "f0f0f0f0f00ff0f0\\r\\n\r\n"] +[297.057018, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[297.059966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.060087, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.072367, "o", "0029705666002970\\r\\n\r\n"] +[297.07281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500117 (current time 26.7989607165)\r\n"] +[297.075552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.07566, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.088324, "o", "000000316666667a\\r\\n\r\n"] +[297.088622, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992315 (current time 26.798961602)\r\n"] +[297.091509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.104012, "o", "0b0b6e8081808080\\r\\n\r\n"] +[297.104429, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967665 (current time 26.798964067)\r\n"] +[297.107433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.107535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.121234, "o", "00c7c7c7c7297038\\r\\n\r\n"] +[297.121714, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[297.121807, "o", "[tsffs info] Cancelling event with next time 2.9994952175 (current time 26.798965616)\r\n"] +[297.124702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.124822, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.137232, "o", "757a98696e672180\\r\\n\r\n"] +[297.137579, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.137712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497117 (current time 26.7989637165)\r\n"] +[297.140739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.140833, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.153662, "o", "cc5151fa510000fa\\r\\n\r\n"] +[297.153955, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.154161, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493662 (current time 26.7989671715)\r\n"] +[297.157382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.157593, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.170319, "o", "7d29705666ff3a8b\\r\\n\r\n"] +[297.170602, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938765 (current time 26.798966957)\r\n"] +[297.173972, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.186692, "o", "66fafcf8223eff3a\\r\\n\r\n"] +[297.186981, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489426 (current time 26.7989714075)\r\n"] +[297.190349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.1905, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.203158, "o", "0029715666ff3a8b\\r\\n\r\n"] +[297.203495, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.203697, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495271 (current time 26.7989655625)\r\n"] +[297.206894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.207148, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.220243, "o", "520029709e9e9e9e\\r\\n\r\n"] +[297.220531, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.220709, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949565 (current time 26.798965877)\r\n"] +[297.223825, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.22403, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.224166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.23673, "o", "00294b5666ff3a8b\\r\\n\r\n"] +[297.237179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.237266, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494179 (current time 26.7989666545)\r\n"] +[297.240337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.240486, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.25315, "o", "6566414141ffffff\\r\\n\r\n"] +[297.253528, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492801 (current time 26.7989680325)\r\n"] +[297.256688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.256837, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.26915, "o", "0029745659008000\\r\\n\r\n"] +[297.269525, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500227 (current time 26.7989606065)\r\n"] +[297.273054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.273181, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.28628, "o", "00d7705666ff3a8b\\r\\n\r\n"] +[297.286564, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.286941, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941505 (current time 26.798966683)\r\n"] +[297.291037, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.291101, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[297.291234, "o", "[tsffs info] Resuming simulation\r\n"] +[297.303144, "o", "6541ff0500412665\\r\\n\r\n"] +[297.303526, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.303743, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978435 (current time 26.79896299)\r\n"] +[297.30768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.307801, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.307956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.319946, "o", "54545454545420df\\r\\n\r\n"] +[297.320182, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.320363, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976325 (current time 26.798963201)\r\n"] +[297.32432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.324425, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.324553, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.337296, "o", "affe781b03d2f3a8\\r\\n\r\n"] +[297.337693, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907675 (current time 26.798970066)\r\n"] +[297.341273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.341425, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.353666, "o", "00296fc2c2c2c231\\r\\n\r\n"] +[297.354007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945895 (current time 26.798966244)\r\n"] +[297.357081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.370359, "o", "6f6f6f6f6f6f6f24\\r\\n\r\n"] +[297.370655, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491276 (current time 26.7989695575)\r\n"] +[297.373731, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.385767, "o", "29625f6262626262\\r\\n\r\n"] +[297.386099, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986735 (current time 26.79896216)\r\n"] +[297.389521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.389658, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.402073, "o", "301051eff0f03031\\r\\n\r\n"] +[297.402463, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959345 (current time 26.798964899)\r\n"] +[297.406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.406179, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.418824, "o", "79797903ff303132\\r\\n\r\n"] +[297.419093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973875 (current time 26.798963446)\r\n"] +[297.422928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.422973, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.435555, "o", "a3a3fff4660b6671\\r\\n\r\n"] +[297.435932, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[297.436092, "o", "[tsffs info] Cancelling event with next time 2.9994930485 (current time 26.798967785)\r\n"] +[297.439696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.439802, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.452495, "o", "0029705666ff3a8b\\r\\n\r\n"] +[297.4527, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.452743, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[297.456312, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.456405, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.456579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.468352, "o", "0029705666303132\\r\\n\r\n"] +[297.468521, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.468853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002465 (current time 26.798960587)\r\n"] +[297.472462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.472544, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.48515, "o", "013a8b9ee5e7e79e\\r\\n\r\n"] +[297.48532, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.485656, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915795 (current time 26.798969254)\r\n"] +[297.489138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.489404, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.489504, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.501441, "o", "14140c0c0c313233\\r\\n\r\n"] +[297.501609, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.50191, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972165 (current time 26.798963617)\r\n"] +[297.505471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.505614, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.505735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.517968, "o", "0029705666ff3a8b\\r\\n\r\n"] +[297.518375, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[297.521991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.522071, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.522397, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.532719, "o", "63641b00005719\\r\\n\r\n"] +[297.533147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995559925 (current time 26.798904841)\r\n"] +[297.537167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.537472, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.537585, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.549787, "o", "0029705666ff3a8b\\r\\n\r\n"] +[297.550131, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.550512, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[297.554248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.554458, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.566763, "o", "0029705666ff3a8b\\r\\n\r\n"] +[297.56717, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.567342, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[297.571223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.571422, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.571546, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.583836, "o", "0029705666ff3a8b\\r\\n\r\n"] +[297.584056, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.584252, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[297.587948, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.588154, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.588286, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.600859, "o", "31cd07c962c2ebfe\\r\\n\r\n"] +[297.601107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.601413, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907995 (current time 26.798970034)\r\n"] +[297.604884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.605145, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.616923, "o", "0101010101010101\\r\\n\r\n"] +[297.617266, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.617561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[297.621153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.621392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.633627, "o", "390303e9fff90367\\r\\n\r\n"] +[297.634061, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.634329, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950975 (current time 26.798965736)\r\n"] +[297.63796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.638183, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.640948, "o", "ff\\r\\n\r\n"] +[297.64138, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.641549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998956505 (current time 26.798565183)\r\n"] +[297.643838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.644111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.65651, "o", "c9c9c9c9c9c964c9\\r\\n\r\n"] +[297.656828, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.65702, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491156 (current time 26.7989696775)\r\n"] +[297.659774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.660104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.672331, "o", "1c29705666ff3a8b\\r\\n\r\n"] +[297.67267, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.673019, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494036 (current time 26.7989667975)\r\n"] +[297.675541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.675694, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.687601, "o", "34343434012300d8\\r\\n\r\n"] +[297.688176, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992705 (current time 26.798961563)\r\n"] +[297.69127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.691491, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.703563, "o", "0029705666ff3a8b\\r\\n\r\n"] +[297.703914, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[297.707108, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.707379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.719865, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[297.720058, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.720202, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[297.723442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.723807, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.736267, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.736593, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.736819, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.740058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.740261, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.752832, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.753168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.756634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.756907, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.769431, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.769863, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.773216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.773318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.785899, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.786072, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.786395, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.789753, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.789883, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.802363, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.802836, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.806369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.819009, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.819123, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.819355, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.822804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.822987, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.823147, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.823432, "o", "\\r\\n\r\n"] +[297.823989, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.824196, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[297.826028, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.826181, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.826491, "o", "\\r\\n\r\n"] +[297.826987, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[297.828736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.829081, "o", "\\r\\n\r\n"] +[297.829646, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[297.831249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.831565, "o", "\\r\\n\r\n"] +[297.832027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[297.834311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.846852, "o", "757a7a69a8a8a8a8\\r\\n\r\n"] +[297.847139, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949269 (current time 26.7989681435)\r\n"] +[297.8497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.849766, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.862381, "o", "667a7a69a8a8a8a8\\r\\n\r\n"] +[297.862775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492695 (current time 26.7989681385)\r\n"] +[297.865259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.865403, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.877671, "o", "66757a69a8a8a8a8\\r\\n\r\n"] +[297.877996, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493748 (current time 26.7989670855)\r\n"] +[297.880535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.880812, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.893184, "o", "66757a69a8a8a8a8\\r\\n\r\n"] +[297.893507, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493748 (current time 26.7989670855)\r\n"] +[297.89608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.896286, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.908462, "o", "66757a7aa8a8a8a8\\r\\n\r\n"] +[297.908769, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.908926, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492749 (current time 26.7989680845)\r\n"] +[297.911792, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.912238, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.924352, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.9247, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.9249, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.927568, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.939898, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.940269, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.940484, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.943208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.943386, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.95578, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.956194, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.960106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.960232, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.960476, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.972757, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.97319, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.973384, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.976718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[297.9769, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[297.977029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[297.989363, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[297.989665, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[297.989829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[297.992331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[297.992544, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.004703, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.005119, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.005143, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.008313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.008489, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.020938, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.021252, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.024588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.024747, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.037266, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.037591, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.037786, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.040761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.040933, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.053639, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.053922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.057146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.069808, "o", "66757a7a69a8a8cb\\r\\n\r\n"] +[298.070027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492693 (current time 26.7989681405)\r\n"] +[298.073441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.073534, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.086258, "o", "66757a7a69a8cbf1\\r\\n\r\n"] +[298.086752, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492732 (current time 26.7989681015)\r\n"] +[298.090109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.090199, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.102843, "o", "66757a7a69cbf1fe\\r\\n\r\n"] +[298.103114, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.103343, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491524 (current time 26.7989693095)\r\n"] +[298.106821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.106884, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.119578, "o", "66757a7a69f1fe0c\\r\\n\r\n"] +[298.119782, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.119953, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927265 (current time 26.798968107)\r\n"] +[298.123408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.123488, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.136904, "o", "66757a7a69fe0cdb\\r\\n\r\n"] +[298.137344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949161 (current time 26.7989692235)\r\n"] +[298.140607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.140725, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.152948, "o", "66757a7a690cdb\\r\\n\r\n"] +[298.153284, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995508615 (current time 26.798909972)\r\n"] +[298.156799, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.156882, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.166531, "o", "66757a7a69db\\r\\n\r\n"] +[298.166728, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.167026, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996087645 (current time 26.798852069)\r\n"] +[298.17093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.171133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.179178, "o", "66757a7a69\\r\\n\r\n"] +[298.17963, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.17981, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996678855 (current time 26.798792948)\r\n"] +[298.181995, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.182093, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.18242, "o", "\\r\\n\r\n"] +[298.182903, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.183058, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.186053, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.186146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.186553, "o", "\\r\\n\r\n"] +[298.187062, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.189579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.18966, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.189988, "o", "\\r\\n\r\n"] +[298.190493, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.190525, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.192485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.19276, "o", "\\r\\n\r\n"] +[298.193239, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.193352, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.195119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.195161, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.195454, "o", "\\r\\n\r\n"] +[298.195928, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.196036, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.197652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.197689, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.197986, "o", "\\r\\n\r\n"] +[298.198447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.19856, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.200464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.200814, "o", "\\r\\n\r\n"] +[298.201366, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.201466, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[298.20444, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.204475, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.204664, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.247575, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.248508, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.24855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.251475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.263399, "o", "8080808080808051\\r\\n\r\n"] +[298.263655, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.263729, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000915 (current time 26.798960742)\r\n"] +[298.266462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.266592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.278978, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.279256, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.279334, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.281915, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.282009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.293994, "o", "41414141e8616161\\r\\n\r\n"] +[298.294143, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.294388, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990515 (current time 26.798961782)\r\n"] +[298.297156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.297208, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.308974, "o", "8686868686868680\\r\\n\r\n"] +[298.309284, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.309557, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499033 (current time 26.7989618005)\r\n"] +[298.311954, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.312063, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.324326, "o", "82757a7a69a8a8a8\\r\\n\r\n"] +[298.324534, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.324665, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938205 (current time 26.798967013)\r\n"] +[298.327402, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.327556, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.327713, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.34008, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.340441, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.340732, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.343222, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.343262, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.343366, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.355701, "o", "66757a7969a8a8a8\\r\\n\r\n"] +[298.356227, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.356305, "o", "[tsffs info] Cancelling event with next time 2.9994947275 (current time 26.798966106)\r\n"] +[298.35853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.358657, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.370369, "o", "5050506431323334\\r\\n\r\n"] +[298.370603, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.370876, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500387 (current time 26.7989604465)\r\n"] +[298.3737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.373797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.385928, "o", "66757a7a69303132\\r\\n\r\n"] +[298.386131, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.386207, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.386279, "o", "[tsffs info] Cancelling event with next time 2.9994975605 (current time 26.798963273)\r\n"] +[298.389469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.389724, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.402254, "o", "6675797a6980ffa8\\r\\n\r\n"] +[298.402659, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.402766, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946835 (current time 26.79896615)\r\n"] +[298.40601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.406082, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.406205, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.418852, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[298.419268, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.419503, "o", "[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[298.422706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.422776, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.422852, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.435764, "o", "f6f6f6f6f6cbf1fe\\r\\n\r\n"] +[298.436088, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.436206, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994879725 (current time 26.798972861)\r\n"] +[298.439555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.439648, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.439726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.452141, "o", "66757a69a8a8a8a8\\r\\n\r\n"] +[298.452391, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.452545, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.452564, "o", "[tsffs info] Cancelling event with next time 2.999493748 (current time 26.7989670855)\r\n"] +[298.456007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.456328, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.456458, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.468212, "o", "3031323334353637\\r\\n\r\n"] +[298.468671, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[298.472086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.472195, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.472282, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.484611, "o", "8181813031323334\\r\\n\r\n"] +[298.484985, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.485127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950026 (current time 26.7989605735)\r\n"] +[298.48863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.488874, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.488966, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.501364, "o", "757a7ae2e2e23233\\r\\n\r\n"] +[298.501689, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.501791, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942675 (current time 26.798966566)\r\n"] +[298.50548, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.505592, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.51793, "o", "66757a7a69a8a8e8\\r\\n\r\n"] +[298.518336, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.518582, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936605 (current time 26.798967173)\r\n"] +[298.522066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.522103, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.522255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.534686, "o", "01517a7a69a8a8a8\\r\\n\r\n"] +[298.534831, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.53496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494177 (current time 26.7989666565)\r\n"] +[298.538415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.538564, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.551214, "o", "a8a8a8a8b3b3b34d\\r\\n\r\n"] +[298.551352, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.551558, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.551613, "o", "[tsffs info] Cancelling event with next time 2.99949089 (current time 26.7989699435)\r\n"] +[298.555011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.555184, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.555523, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.568111, "o", "a8a8a8a8a8a8ff7f\\r\\n\r\n"] +[298.568512, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.568619, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489241 (current time 26.7989715925)\r\n"] +[298.571936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.572232, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.57232, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.584193, "o", "414141416e672100\\r\\n\r\n"] +[298.584346, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.584524, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.584543, "o", "[tsffs info] Cancelling event with next time 2.9994992225 (current time 26.798961611)\r\n"] +[298.588255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.588395, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.588673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.595429, "o", "6721cbf1\\r\\n\r\n"] +[298.595694, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.59602, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997240705 (current time 26.798736763)\r\n"] +[298.598161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.598351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.610151, "o", "3334353637667533\\r\\n\r\n"] +[298.610564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998175 (current time 26.798961016)\r\n"] +[298.613035, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.613098, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.613377, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.62597, "o", "a8a8a8e90cf1fea8\\r\\n\r\n"] +[298.626421, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994894265 (current time 26.798971407)\r\n"] +[298.628941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.628968, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.640965, "o", "d941356101656565\\r\\n\r\n"] +[298.641193, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[298.641536, "o", "[tsffs info] Cancelling event with next time 2.9994987525 (current time 26.798962081)\r\n"] +[298.644011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.644239, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.656706, "o", "66197a7a69a8a8a8\\r\\n\r\n"] +[298.65697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938185 (current time 26.798967015)\r\n"] +[298.65961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.659634, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.672079, "o", "6666a8a8a8696969\\r\\n\r\n"] +[298.672304, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.672626, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957685 (current time 26.798965065)\r\n"] +[298.67495, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.67512, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.675222, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.68741, "o", "75414120be4164bf\\r\\n\r\n"] +[298.687746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956 (current time 26.7989652335)\r\n"] +[298.6908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.690966, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.703319, "o", "28705666ff3a8b9e\\r\\n\r\n"] +[298.703795, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938335 (current time 26.798967)\r\n"] +[298.706663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.706782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.719505, "o", "0d010d0d616263ff\\r\\n\r\n"] +[298.719881, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494586 (current time 26.7989662475)\r\n"] +[298.723351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.73597, "o", "667568a8a8a8a8a8\\r\\n\r\n"] +[298.73625, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.736425, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937665 (current time 26.798967067)\r\n"] +[298.739949, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.740067, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.740103, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.752643, "o", "0e40000300cbf107\\r\\n\r\n"] +[298.752852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496176 (current time 26.7989646575)\r\n"] +[298.756502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.756562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.768566, "o", "3232323233a5e936\\r\\n\r\n"] +[298.768832, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.769044, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497863 (current time 26.7989629705)\r\n"] +[298.77268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.772868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.785132, "o", "668bff000100a8a8\\r\\n\r\n"] +[298.785438, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945015 (current time 26.798966332)\r\n"] +[298.789078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.789224, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.789378, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.801354, "o", "0b606520b9336520\\r\\n\r\n"] +[298.801695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980035 (current time 26.79896283)\r\n"] +[298.805377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.805539, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.818265, "o", "66757a7aa8a8a8a8\\r\\n\r\n"] +[298.818663, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492749 (current time 26.7989680845)\r\n"] +[298.822348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.822481, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.822726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.835252, "o", "adadadadad303132\\r\\n\r\n"] +[298.835681, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489084 (current time 26.7989717495)\r\n"] +[298.839325, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.839506, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.851535, "o", "c298989898989898\\r\\n\r\n"] +[298.85191, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.852015, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497423 (current time 26.7989634105)\r\n"] +[298.855784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.85588, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.855985, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.868584, "o", "66757a7a69a83b3b\\r\\n\r\n"] +[298.869092, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493945 (current time 26.7989668885)\r\n"] +[298.87269, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.872804, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.873107, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.885406, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.88576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.88609, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.889572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.889816, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.902137, "o", "fe017a7a696e6769\\r\\n\r\n"] +[298.902434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.902642, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937625 (current time 26.798967071)\r\n"] +[298.905884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.90598, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[298.906144, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.91807, "o", "8080808080808080\\r\\n\r\n"] +[298.918403, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.918639, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000585 (current time 26.798960775)\r\n"] +[298.922155, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.92239, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.93413, "o", "3031323334353637\\r\\n\r\n"] +[298.934435, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.93448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[298.938233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[298.938347, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.951064, "o", "30313233a8a8a8a8\\r\\n\r\n"] +[298.951465, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.951585, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956035 (current time 26.79896523)\r\n"] +[298.955246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.955448, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.967996, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[298.968225, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.96846, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[298.972241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.972359, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[298.985525, "o", "69a8a8a8a8a8a8a8\\r\\n\r\n"] +[298.985815, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[298.986049, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491588 (current time 26.7989692455)\r\n"] +[298.989595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[298.989705, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.002604, "o", "66757a7a69cbcbcb\\r\\n\r\n"] +[299.002934, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490569 (current time 26.7989702645)\r\n"] +[299.006319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.00653, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.019136, "o", "9c9c9c9cfbe90040\\r\\n\r\n"] +[299.019373, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.019611, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916605 (current time 26.798969173)\r\n"] +[299.022951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.023143, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.035808, "o", "414166757a7a696e\\r\\n\r\n"] +[299.036187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496211 (current time 26.7989646225)\r\n"] +[299.039593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.039751, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.053175, "o", "b33c3c3cc33c303c\\r\\n\r\n"] +[299.053456, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.053622, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492346 (current time 26.7989684875)\r\n"] +[299.056583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.056735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.06859, "o", "3839616263646566\\r\\n\r\n"] +[299.068859, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.068973, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996025 (current time 26.798961231)\r\n"] +[299.072414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.072457, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.082151, "o", "ff00001cc6ff\\r\\n\r\n"] +[299.082471, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996070535 (current time 26.79885378)\r\n"] +[299.086171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.086393, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.098911, "o", "66f2f2f2f2f2f28d\\r\\n\r\n"] +[299.099196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491694 (current time 26.7989691395)\r\n"] +[299.103186, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.103307, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.114454, "o", "0b480080ffff01\\r\\n\r\n"] +[299.114805, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99955132 (current time 26.7989095135)\r\n"] +[299.117971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.118041, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.130275, "o", "7a69a8a8a8383838\\r\\n\r\n"] +[299.130799, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494923 (current time 26.7989659105)\r\n"] +[299.133217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.133363, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.145634, "o", "a8a8a8a886868686\\r\\n\r\n"] +[299.145925, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994947325 (current time 26.798966101)\r\n"] +[299.148282, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.148331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.160417, "o", "80ff303132333435\\r\\n\r\n"] +[299.1607, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979275 (current time 26.798962906)\r\n"] +[299.163098, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.163435, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.17517, "o", "6640007a69a83031\\r\\n\r\n"] +[299.175494, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.175692, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497896 (current time 26.7989629375)\r\n"] +[299.178511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.178661, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.190924, "o", "6654867a69a8a8a8\\r\\n\r\n"] +[299.191216, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.191421, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948715 (current time 26.798965962)\r\n"] +[299.194134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.194388, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.206739, "o", "66757a7a80fefefe\\r\\n\r\n"] +[299.207068, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.207158, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949031 (current time 26.7989705235)\r\n"] +[299.209903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.221753, "o", "676767677b353132\\r\\n\r\n"] +[299.2222, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984655 (current time 26.798962368)\r\n"] +[299.224654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.224849, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.236598, "o", "00803164006e3132\\r\\n\r\n"] +[299.23691, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993675 (current time 26.798961466)\r\n"] +[299.239971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.252889, "o", "66757a7adbdbdbdb\\r\\n\r\n"] +[299.253151, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[299.253391, "o", "[tsffs info] Cancelling event with next time 2.999488439 (current time 26.7989723945)\r\n"] +[299.256506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.256645, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.269191, "o", "a8a8a869a8a8a8a8\\r\\n\r\n"] +[299.269533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491588 (current time 26.7989692455)\r\n"] +[299.272798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.273056, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.284763, "o", "3637383961626364\\r\\n\r\n"] +[299.285043, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499688 (current time 26.7989611455)\r\n"] +[299.288619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.288733, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.288938, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.30112, "o", "4141414141ffff41\\r\\n\r\n"] +[299.301479, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.301824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955805 (current time 26.798965253)\r\n"] +[299.305412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.305584, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.317486, "o", "9a66304141414166\\r\\n\r\n"] +[299.317737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.318005, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949899 (current time 26.7989618435)\r\n"] +[299.32154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.321655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.334454, "o", "a8a8a8a8a8afa8a8\\r\\n\r\n"] +[299.334718, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.335009, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489465 (current time 26.7989713685)\r\n"] +[299.338471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.338549, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.338837, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.35111, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.351398, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.351559, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.355032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.3551, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.355213, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.36706, "o", "32331c3536040039\\r\\n\r\n"] +[299.367409, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.367497, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499203 (current time 26.7989616305)\r\n"] +[299.371198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.371297, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.371516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.383979, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.384174, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.384405, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.387938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.388065, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.388191, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.400574, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.400891, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.400994, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[299.401033, "o", "[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.404602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.40471, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.404807, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.417275, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.417611, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.417894, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.421278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.421516, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.421858, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.433635, "o", "3233343544313233\\r\\n\r\n"] +[299.433854, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.434413, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003185 (current time 26.798960515)\r\n"] +[299.437796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.438072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.45108, "o", "efefefefefefefef\\r\\n\r\n"] +[299.451476, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.45178, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994809145 (current time 26.798979919)\r\n"] +[299.455101, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.455166, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.468277, "o", "667a7a6975a8a8a8\\r\\n\r\n"] +[299.468815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493769 (current time 26.7989670645)\r\n"] +[299.472099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.472295, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.484923, "o", "66661b0332e9e9e9\\r\\n\r\n"] +[299.485297, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.48557, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950505 (current time 26.798965783)\r\n"] +[299.489018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.489168, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.489378, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.501445, "o", "a88000000000f7a8\\r\\n\r\n"] +[299.502001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971605 (current time 26.798963673)\r\n"] +[299.505553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.505633, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.505822, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.518415, "o", "7c191919b8b8b819\\r\\n\r\n"] +[299.518991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494984 (current time 26.7989658495)\r\n"] +[299.522562, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.522792, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.534525, "o", "6666666666666666\\r\\n\r\n"] +[299.534833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.535445, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[299.538578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.538735, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.538809, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.550776, "o", "d234153031323334\\r\\n\r\n"] +[299.55112, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.55129, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949929 (current time 26.7989615435)\r\n"] +[299.554656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.554833, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.555152, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.566937, "o", "0202020230310f0f\\r\\n\r\n"] +[299.567446, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.56785, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498568 (current time 26.7989622655)\r\n"] +[299.571046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.571289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.583304, "o", "a53839616230360b\\r\\n\r\n"] +[299.583759, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.584022, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978215 (current time 26.798963012)\r\n"] +[299.587636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.587864, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.588002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.599699, "o", "6364303132333435\\r\\n\r\n"] +[299.600151, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[299.600413, "o", "[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[299.604211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.604331, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.604535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.617001, "o", "65b9b9b9b9f1fd0c\\r\\n\r\n"] +[299.61731, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.617607, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490497 (current time 26.7989703365)\r\n"] +[299.621047, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.621334, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.634178, "o", "781b03d2f4a80ccb\\r\\n\r\n"] +[299.634495, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.634818, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492147 (current time 26.7989686865)\r\n"] +[299.638302, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.638466, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.650484, "o", "3233343558a75866\\r\\n\r\n"] +[299.650935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498629 (current time 26.7989622045)\r\n"] +[299.654418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.654491, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.65472, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.667065, "o", "0a0a0a0a0a0a3637\\r\\n\r\n"] +[299.667469, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.667753, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939935 (current time 26.79896684)\r\n"] +[299.671181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.671436, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.671612, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.68395, "o", "7fa8a8a866857a69\\r\\n\r\n"] +[299.684207, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.684487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936395 (current time 26.798967194)\r\n"] +[299.687881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.688013, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.688151, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.700559, "o", "66757a7a69a87a7a\\r\\n\r\n"] +[299.700778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.701169, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493783 (current time 26.7989670505)\r\n"] +[299.704723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.704841, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.716978, "o", "66757a7a69002970\\r\\n\r\n"] +[299.717189, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.71752, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497431 (current time 26.7989634025)\r\n"] +[299.720947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.721099, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.721423, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.733954, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.734124, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.734342, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.737867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.738164, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.750047, "o", "8787878787878787\\r\\n\r\n"] +[299.750375, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.750646, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986465 (current time 26.798962187)\r\n"] +[299.754315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.754609, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.754734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.767308, "o", "e80505fb0213a8a8\\r\\n\r\n"] +[299.767604, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.767853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949444 (current time 26.7989663935)\r\n"] +[299.771295, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.771519, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.771755, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.784244, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.784611, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.784854, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.788228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.78825, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.800243, "o", "4848480151626262\\r\\n\r\n"] +[299.800523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999225 (current time 26.798960911)\r\n"] +[299.804236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.804451, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.816907, "o", "6651e9517a6aa8a8\\r\\n\r\n"] +[299.817216, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494028 (current time 26.7989668055)\r\n"] +[299.821017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.821308, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.834661, "o", "01a87a7a7a7adbdb\\r\\n\r\n"] +[299.834897, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.834933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898225 (current time 26.798971011)\r\n"] +[299.838985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.839013, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.839129, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.848537, "o", "393065e96561\\r\\n\r\n"] +[299.848953, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612322 (current time 26.7988485115)\r\n"] +[299.852957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.853129, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.865615, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.866141, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.866469, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.870448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.870496, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.882231, "o", "222222665252524b\\r\\n\r\n"] +[299.882853, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499123 (current time 26.7989617105)\r\n"] +[299.88685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.886959, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.889804, "o", "db\\r\\n\r\n"] +[299.890262, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998958055 (current time 26.798565028)\r\n"] +[299.892634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.892782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.905366, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[299.905662, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.905914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[299.908659, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.909002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.921391, "o", "1b03d2f3a8cbf107\\r\\n\r\n"] +[299.921597, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[299.921857, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922565 (current time 26.798968577)\r\n"] +[299.925359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.925542, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[299.925689, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.938155, "o", "348f8f8f8fd4d4d4\\r\\n\r\n"] +[299.938614, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491381 (current time 26.7989694525)\r\n"] +[299.941619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.941747, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.954288, "o", "1d1de21d1d1d1d1c\\r\\n\r\n"] +[299.954712, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491283 (current time 26.7989695505)\r\n"] +[299.957813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[299.957993, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.970207, "o", "26757a7a69a8a8a8\\r\\n\r\n"] +[299.970563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938645 (current time 26.798966969)\r\n"] +[299.97413, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.974238, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[299.98704, "o", "ffff7fff002001f9\\r\\n\r\n"] +[299.987405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906675 (current time 26.798970166)\r\n"] +[299.990696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[299.990815, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.003279, "o", "a8a8a800a8a8a8a8\\r\\n\r\n"] +[300.003694, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491954 (current time 26.7989688795)\r\n"] +[300.006757, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.006856, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.01951, "o", "66757a7a7a7a7a7a\\r\\n\r\n"] +[300.019784, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492805 (current time 26.7989680285)\r\n"] +[300.02311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.023239, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.035235, "o", "66666666666666a9\\r\\n\r\n"] +[300.035599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981235 (current time 26.79896271)\r\n"] +[300.039249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.039297, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.051933, "o", "727b695b7a5b5b72\\r\\n\r\n"] +[300.052161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940315 (current time 26.798966802)\r\n"] +[300.055888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.068372, "o", "66757a7a0080a8a7\\r\\n\r\n"] +[300.068844, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.0689, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953235 (current time 26.79896551)\r\n"] +[300.072605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.072861, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.085319, "o", "66757a7a69a8a880\\r\\n\r\n"] +[300.085662, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.085763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949494 (current time 26.7989658935)\r\n"] +[300.089503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.08963, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.101989, "o", "ff66757a7a303132\\r\\n\r\n"] +[300.102281, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.102515, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495336 (current time 26.7989654975)\r\n"] +[300.106142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.106332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.118865, "o", "9b9b7a7a65a80c0c\\r\\n\r\n"] +[300.119135, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.119261, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918985 (current time 26.798968935)\r\n"] +[300.122898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.123039, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.135565, "o", "66757a7a692d2d2d\\r\\n\r\n"] +[300.1358, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.135922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939665 (current time 26.798966867)\r\n"] +[300.13969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.139852, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.145202, "o", "0000ff\\r\\n\r\n"] +[300.145474, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823145 (current time 26.798678519)\r\n"] +[300.147581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.147804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.159599, "o", "363738390b406139\\r\\n\r\n"] +[300.159858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949876 (current time 26.7989620735)\r\n"] +[300.162654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.162907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.174535, "o", "2222320010000037\\r\\n\r\n"] +[300.174716, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.174871, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500945 (current time 26.7989598885)\r\n"] +[300.177705, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.177812, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.190658, "o", "bfa5e97a66757ab8\\r\\n\r\n"] +[300.1909, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.191247, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915565 (current time 26.798969277)\r\n"] +[300.194023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.194152, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.205439, "o", "ffff7fff828282\\r\\n\r\n"] +[300.205748, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[300.205972, "o", "[tsffs info] Cancelling event with next time 2.999548211 (current time 26.7989126225)\r\n"] +[300.208494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.208658, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.222125, "o", "ff727bddaffe781b\\r\\n\r\n"] +[300.222401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.222605, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488189 (current time 26.7989726445)\r\n"] +[300.225385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.22559, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.237957, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[300.238297, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.23863, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[300.241574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.241665, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.25492, "o", "66757a8569a8a8a8\\r\\n\r\n"] +[300.255222, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.255451, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494808 (current time 26.7989660255)\r\n"] +[300.258387, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.25857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.271209, "o", "7a7a69a8a8a8a8a8\\r\\n\r\n"] +[300.271534, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.271866, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491616 (current time 26.7989692175)\r\n"] +[300.274934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.275146, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.287047, "o", "69a8a83031323334\\r\\n\r\n"] +[300.287363, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.287549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497812 (current time 26.7989630215)\r\n"] +[300.290939, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.29097, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.302999, "o", "3961629d64656641\\r\\n\r\n"] +[300.303334, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.303564, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984945 (current time 26.798962339)\r\n"] +[300.306482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.306575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.318316, "o", "4545454545454545\\r\\n\r\n"] +[300.31863, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997945 (current time 26.798961039)\r\n"] +[300.322291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.322414, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.332306, "o", "c2ebfe0cf669\\r\\n\r\n"] +[300.33265, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999605512 (current time 26.7988553215)\r\n"] +[300.336511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.336716, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.349188, "o", "66a8a8a8a8a8a8a8\\r\\n\r\n"] +[300.349614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.349758, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916575 (current time 26.798969176)\r\n"] +[300.353969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.353999, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.354169, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.366694, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[300.36704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.367361, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[300.371163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.371366, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.383451, "o", "303132ea34353637\\r\\n\r\n"] +[300.383849, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.384122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979385 (current time 26.798962895)\r\n"] +[300.387703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.387987, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.400075, "o", "6161616161a8a8a8\\r\\n\r\n"] +[300.40038, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.400635, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496561 (current time 26.7989642725)\r\n"] +[300.404398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.404511, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.416265, "o", "0808080808080808\\r\\n\r\n"] +[300.416618, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.416911, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000585 (current time 26.798960775)\r\n"] +[300.42079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.420942, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.43341, "o", "66757aec69a8a8a8\\r\\n\r\n"] +[300.433841, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492609 (current time 26.7989682245)\r\n"] +[300.437857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.437988, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.450551, "o", "667a7a6a6a6a6a6a\\r\\n\r\n"] +[300.450788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.451056, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919055 (current time 26.798968928)\r\n"] +[300.454817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.454928, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.455051, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.466957, "o", "660000010039391e\\r\\n\r\n"] +[300.467207, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.467416, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993465 (current time 26.798961487)\r\n"] +[300.471134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.471277, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.483767, "o", "2c3e026466c962c2\\r\\n\r\n"] +[300.484086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495398 (current time 26.7989654355)\r\n"] +[300.488051, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.488185, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.500313, "o", "6403d24141572c41\\r\\n\r\n"] +[300.500671, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.50088, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979705 (current time 26.798962863)\r\n"] +[300.504712, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.504755, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.504875, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.517236, "o", "66757a7a69a8a830\\r\\n\r\n"] +[300.517566, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.517676, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950525 (current time 26.798965781)\r\n"] +[300.521493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.521662, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.521701, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.534325, "o", "a7a8a8a8a8a86675\\r\\n\r\n"] +[300.534707, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.534892, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492749 (current time 26.7989680845)\r\n"] +[300.538583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.545528, "o", "7f0004ff\\r\\n\r\n"] +[300.545904, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997240675 (current time 26.798736766)\r\n"] +[300.54828, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.560374, "o", "141450508a6f8a8a\\r\\n\r\n"] +[300.560722, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954935 (current time 26.79896534)\r\n"] +[300.563849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.576223, "o", "66757a7a69a8a8a7\\r\\n\r\n"] +[300.576626, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493769 (current time 26.7989670645)\r\n"] +[300.57907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.589876, "o", "ec122cf2149412\\r\\n\r\n"] +[300.590195, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999552465 (current time 26.7989083685)\r\n"] +[300.592776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.604637, "o", "663362353693a830\\r\\n\r\n"] +[300.604953, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.605071, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987505 (current time 26.798962083)\r\n"] +[300.608093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.608286, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.620557, "o", "66757a7a6958a8a8\\r\\n\r\n"] +[300.620942, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494815 (current time 26.7989660185)\r\n"] +[300.624183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.624399, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.636962, "o", "a3a3a3a3a3a37a7a\\r\\n\r\n"] +[300.637307, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912815 (current time 26.798969552)\r\n"] +[300.640542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.640664, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.652594, "o", "3031323334353637\\r\\n\r\n"] +[300.652805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.653011, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[300.656512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.656634, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.669338, "o", "66757aa83e31146f\\r\\n\r\n"] +[300.669692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495191 (current time 26.7989656425)\r\n"] +[300.673235, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.673362, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.685427, "o", "be41414003030303\\r\\n\r\n"] +[300.685834, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498428 (current time 26.7989624055)\r\n"] +[300.689477, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.689592, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.702034, "o", "66f5387a69a8a8a8\\r\\n\r\n"] +[300.702259, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.702444, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937345 (current time 26.798967099)\r\n"] +[300.70615, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.706257, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.718907, "o", "667fa8a8a80080f1\\r\\n\r\n"] +[300.719113, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.719493, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494152 (current time 26.7989666815)\r\n"] +[300.723604, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.723866, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.724046, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.736411, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[300.736793, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.736841, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[300.740231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.74027, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.753455, "o", "76ffff0569a8a8a8\\r\\n\r\n"] +[300.753761, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491426 (current time 26.7989694075)\r\n"] +[300.756815, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.756962, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.769547, "o", "66a8a8a8a8a8a8a8\\r\\n\r\n"] +[300.769857, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.770159, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916575 (current time 26.798969176)\r\n"] +[300.7732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.773394, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.786021, "o", "a8a8a8a8a858a8a8\\r\\n\r\n"] +[300.786288, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.786595, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916385 (current time 26.798969195)\r\n"] +[300.789751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.790001, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.802416, "o", "7a7a69017a7a7a7a\\r\\n\r\n"] +[300.802859, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493015 (current time 26.7989678185)\r\n"] +[300.806345, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.80655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.818724, "o", "66757a0200a8a8a8\\r\\n\r\n"] +[300.819171, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.819324, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495435 (current time 26.7989653985)\r\n"] +[300.822888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.823193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.835731, "o", "757af1a8a8afa8f1\\r\\n\r\n"] +[300.835974, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.836273, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490631 (current time 26.7989702025)\r\n"] +[300.83959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.852904, "o", "7a7aa8a8a8cbf1fe\\r\\n\r\n"] +[300.853198, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.853498, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883755 (current time 26.798972458)\r\n"] +[300.856449, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.856587, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.856727, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.868568, "o", "6464646464646464\\r\\n\r\n"] +[300.86905, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996225 (current time 26.798961211)\r\n"] +[300.872821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.872949, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.877987, "o", "333435\\r\\n\r\n"] +[300.878362, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.878533, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784387 (current time 26.7986764465)\r\n"] +[300.880563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.880723, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.893353, "o", "66ffffff7fa8a8a8\\r\\n\r\n"] +[300.893727, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.893964, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487855 (current time 26.7989729785)\r\n"] +[300.896671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.8969, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.908712, "o", "666666666666a8a8\\r\\n\r\n"] +[300.909133, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.909409, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949707 (current time 26.7989637635)\r\n"] +[300.912092, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[300.912218, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.919031, "o", "1fdd0109\\r\\n\r\n"] +[300.919439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[300.919653, "o", "[tsffs info] Cancelling event with next time 2.999724165 (current time 26.7987366685)\r\n"] +[300.922695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.922883, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.935694, "o", "e1e1e1e1e1e1e11f\\r\\n\r\n"] +[300.936196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491062 (current time 26.7989697715)\r\n"] +[300.939748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.939906, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.95292, "o", "a8a8a835f1fe0cdb\\r\\n\r\n"] +[300.953277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[300.953496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489645 (current time 26.7989711885)\r\n"] +[300.956681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.956836, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.969429, "o", "66757a7a96a8a8a8\\r\\n\r\n"] +[300.969853, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937585 (current time 26.798967075)\r\n"] +[300.973279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.973465, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[300.986165, "o", "4141414141327fff\\r\\n\r\n"] +[300.986536, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967065 (current time 26.798964127)\r\n"] +[300.989758, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[300.989863, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[300.989996, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.003011, "o", "7ffdfdfd7f7f7f7f\\r\\n\r\n"] +[301.003061, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.003244, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994865165 (current time 26.798974317)\r\n"] +[301.006819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.006879, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.019486, "o", "61ecfff5c0383838\\r\\n\r\n"] +[301.019724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928115 (current time 26.798968022)\r\n"] +[301.023128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.02339, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.035411, "o", "3031323334353637\\r\\n\r\n"] +[301.035488, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[301.039206, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.039392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.051194, "o", "8888888888888888\\r\\n\r\n"] +[301.051704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.051833, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985345 (current time 26.798962299)\r\n"] +[301.055467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.055605, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.067969, "o", "6675d7d769a8a8a8\\r\\n\r\n"] +[301.068333, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936345 (current time 26.798967199)\r\n"] +[301.072004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.072254, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.08502, "o", "ffff00ff003cfff9\\r\\n\r\n"] +[301.085393, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.085516, "o", "[tsffs info] Cancelling event with next time 2.999488314 (current time 26.7989725195)\r\n"] +[301.089054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.089252, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.101793, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[301.102153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.102319, "o", "[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[301.105998, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.106141, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.11961, "o", "6675e8eae9e8e9e9\\r\\n\r\n"] +[301.120127, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.120321, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910795 (current time 26.798969754)\r\n"] +[301.123135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.123256, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.123299, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.136018, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[301.136214, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.136517, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[301.139829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.13999, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.152009, "o", "02008c6549652172\\r\\n\r\n"] +[301.152128, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.152249, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.152349, "o", "[tsffs info] Cancelling event with next time 2.9994989235 (current time 26.79896191)\r\n"] +[301.15583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.155992, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.156117, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.161575, "o", "a8a8a8\\r\\n\r\n"] +[301.161896, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.162101, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780796 (current time 26.7986800375)\r\n"] +[301.164043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.164186, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.176688, "o", "66757a7a69a8a830\\r\\n\r\n"] +[301.176979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.177175, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950525 (current time 26.798965781)\r\n"] +[301.179678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.179818, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.1801, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.192567, "o", "a8a8a8fa0000faa8\\r\\n\r\n"] +[301.192751, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.193144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911025 (current time 26.798969731)\r\n"] +[301.195493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.195691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.207456, "o", "3031323334cb3637\\r\\n\r\n"] +[301.207727, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.207881, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980125 (current time 26.798962821)\r\n"] +[301.210571, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.210819, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.223316, "o", "668b7a7a69a8a8a8\\r\\n\r\n"] +[301.223775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926775 (current time 26.798968156)\r\n"] +[301.226306, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.226507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.238777, "o", "2424247a69a8a8db\\r\\n\r\n"] +[301.239198, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.239535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494192 (current time 26.7989666415)\r\n"] +[301.24172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.241874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.253645, "o", "663031323334351a\\r\\n\r\n"] +[301.253928, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.254001, "o", "[tsffs info] Cancelling event with next time 2.999499212 (current time 26.7989616215)\r\n"] +[301.25679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.25701, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.26954, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[301.269765, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.26997, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[301.273361, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.273481, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.273748, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.285626, "o", "79fd414223414166\\r\\n\r\n"] +[301.285921, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.286133, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976605 (current time 26.798963173)\r\n"] +[301.289428, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.289677, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.289901, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.301871, "o", "6666666666a8a857\\r\\n\r\n"] +[301.302064, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.302286, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970615 (current time 26.798963772)\r\n"] +[301.305812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[301.305912, "o", "[tsffs info] Resuming simulation\r\n"] +[301.317721, "o", "7575757575757575\\r\\n\r\n"] +[301.318023, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991705 (current time 26.798961663)\r\n"] +[301.321581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.321675, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.33417, "o", "69a8a8a8a8a820a8\\r\\n\r\n"] +[301.334513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.334838, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492909 (current time 26.7989679245)\r\n"] +[301.338344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.33846, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.351113, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[301.351475, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.351655, "o", "[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[301.355134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.355352, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.367891, "o", "668a7a7a6930d030\\r\\n\r\n"] +[301.36812, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.368283, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495415 (current time 26.7989654185)\r\n"] +[301.371824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.371889, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.372109, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.378859, "o", "b8b89c36\\r\\n\r\n"] +[301.379266, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.379467, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997237895 (current time 26.798737044)\r\n"] +[301.381439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.3817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.393695, "o", "60ffff8030313233\\r\\n\r\n"] +[301.394029, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.394111, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955525 (current time 26.798965281)\r\n"] +[301.396558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.396821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.408546, "o", "3536373839616263\\r\\n\r\n"] +[301.408921, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[301.411539, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.411664, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.411836, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.424897, "o", "669ee7ae727bdeaf\\r\\n\r\n"] +[301.425461, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994892375 (current time 26.798971596)\r\n"] +[301.428165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.4284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.44047, "o", "00a8ff0030313233\\r\\n\r\n"] +[301.440817, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497122 (current time 26.7989637115)\r\n"] +[301.443843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.443915, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.456166, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[301.456495, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.456697, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[301.459256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.459521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.471669, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[301.471996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.47239, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[301.475073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.491755, "o", "015151\\r\\n\r\n"] +[301.49296, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.493002, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[301.497646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n"] +[301.497664, "o", "[tsffs info] Resuming simulation\r\n"] +[301.497683, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.497963, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.503282, "o", "015151\\r\\n\r\n"] +[301.50354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.503688, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[301.506516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.506711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.513174, "o", "01e50101\\r\\n\r\n"] +[301.513477, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.51367, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997267525 (current time 26.798734081)\r\n"] +[301.515774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.515968, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.527765, "o", "5265664141414141\\r\\n\r\n"] +[301.528201, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.528448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001835 (current time 26.79896065)\r\n"] +[301.530868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.531039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.536235, "o", "015143\\r\\n\r\n"] +[301.536609, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.53689, "o", "[tsffs info] Cancelling event with next time 2.999784556 (current time 26.7986762775)\r\n"] +[301.539691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.551529, "o", "01015900ff303132\\r\\n\r\n"] +[301.551833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.552089, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498244 (current time 26.7989625895)\r\n"] +[301.555594, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.555869, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.567692, "o", "ac30313233343536\\r\\n\r\n"] +[301.56793, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.568217, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980815 (current time 26.798962752)\r\n"] +[301.571684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.57177, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.572102, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.584049, "o", "b4b4171717171717\\r\\n\r\n"] +[301.584434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.584672, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977265 (current time 26.798963107)\r\n"] +[301.588148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.588363, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.588531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.592289, "o", "0100\\r\\n\r\n"] +[301.592562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.592754, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[301.595046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.595289, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.607798, "o", "0bd5d56932d50b5a\\r\\n\r\n"] +[301.608193, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.608222, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932425 (current time 26.798967591)\r\n"] +[301.61104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.611207, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.611303, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.615076, "o", "5151\\r\\n\r\n"] +[301.615342, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.615535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[301.61834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.618459, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.631173, "o", "c0c0c0c0c0c0c0c0\\r\\n\r\n"] +[301.631428, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.631554, "o", "[tsffs info] Cancelling event with next time 2.9994917025 (current time 26.798969131)\r\n"] +[301.634875, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.635221, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.647171, "o", "1a33340808080835\\r\\n\r\n"] +[301.647563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990675 (current time 26.798961766)\r\n"] +[301.650109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.650286, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.650507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.662637, "o", "015d015d5d5d5d5d\\r\\n\r\n"] +[301.663055, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.663312, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932645 (current time 26.798967569)\r\n"] +[301.66578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.671258, "o", "e21060\\r\\n\r\n"] +[301.671598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.671808, "o", "[tsffs info] Cancelling event with next time 2.9997834095 (current time 26.798677424)\r\n"] +[301.674504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.674764, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.687027, "o", "5e3435360bd80bbf\\r\\n\r\n"] +[301.687423, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932215 (current time 26.798967612)\r\n"] +[301.690487, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.690682, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.702664, "o", "f94a3e3831323334\\r\\n\r\n"] +[301.702964, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.703301, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496574 (current time 26.7989642595)\r\n"] +[301.706456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.706693, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.71059, "o", "01f4\\r\\n\r\n"] +[301.710957, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401555 (current time 26.798620678)\r\n"] +[301.713017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.713151, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.725327, "o", "3dc33066757a7a69\\r\\n\r\n"] +[301.725628, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.725784, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951795 (current time 26.798965654)\r\n"] +[301.728539, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.728657, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.740347, "o", "5265664141414141\\r\\n\r\n"] +[301.74063, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.740915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001835 (current time 26.79896065)\r\n"] +[301.743745, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.74385, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.754434, "o", "71717171718e71\\r\\n\r\n"] +[301.754763, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.754882, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995555265 (current time 26.798905307)\r\n"] +[301.75775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.757851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.770052, "o", "074966757a7b696e\\r\\n\r\n"] +[301.77034, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.770501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495961 (current time 26.7989648725)\r\n"] +[301.773483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.773693, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.786058, "o", "fafa305959596969\\r\\n\r\n"] +[301.786237, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.786527, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494761 (current time 26.7989660725)\r\n"] +[301.789888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.79006, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.790187, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.793945, "o", "0000\\r\\n\r\n"] +[301.79452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[301.796442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.796749, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.801949, "o", "181851\\r\\n\r\n"] +[301.802255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.802443, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784319 (current time 26.7986765145)\r\n"] +[301.805633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.80582, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.809748, "o", "5101\\r\\n\r\n"] +[301.810017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[301.812368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.824395, "o", "aeae303132333435\\r\\n\r\n"] +[301.82466, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.824841, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495797 (current time 26.7989650365)\r\n"] +[301.827605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.839418, "o", "580c303184848484\\r\\n\r\n"] +[301.839872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986875 (current time 26.798962146)\r\n"] +[301.842345, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.854352, "o", "7a696e6720414167\\r\\n\r\n"] +[301.854711, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.854893, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974665 (current time 26.798963367)\r\n"] +[301.857928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.869742, "o", "2626262626262626\\r\\n\r\n"] +[301.870208, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.870445, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999745 (current time 26.798960859)\r\n"] +[301.873433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.873652, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.885729, "o", "696e6c1738383838\\r\\n\r\n"] +[301.88598, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.886106, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497126 (current time 26.7989637075)\r\n"] +[301.889748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.889843, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.889874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.901596, "o", "1308303132333435\\r\\n\r\n"] +[301.901979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.902162, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500425 (current time 26.7989604085)\r\n"] +[301.905632, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.905714, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.918152, "o", "61ef61f0f061f01a\\r\\n\r\n"] +[301.918571, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933325 (current time 26.798967501)\r\n"] +[301.922783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.923076, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.928719, "o", "300130\\r\\n\r\n"] +[301.928986, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.929189, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784734 (current time 26.7986760995)\r\n"] +[301.931375, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.93728, "o", "015101\\r\\n\r\n"] +[301.937523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847 (current time 26.7986761335)\r\n"] +[301.940463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.940659, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.953288, "o", "01015151d8bbbbbb\\r\\n\r\n"] +[301.953661, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.953834, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925465 (current time 26.798968287)\r\n"] +[301.9572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.95742, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.969331, "o", "0169515151515151\\r\\n\r\n"] +[301.969664, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[301.969864, "o", "[tsffs info] Cancelling event with next time 2.999500239 (current time 26.7989605945)\r\n"] +[301.973099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[301.97317, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[301.973471, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.978937, "o", "40ffff\\r\\n\r\n"] +[301.979255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.979449, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779608 (current time 26.7986812255)\r\n"] +[301.981499, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.981709, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[301.993617, "o", "0f51515151515151\\r\\n\r\n"] +[301.994001, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[301.994253, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499176 (current time 26.7989616575)\r\n"] +[301.996969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[301.997152, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.003737, "o", "31303130\\r\\n\r\n"] +[302.004072, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.004281, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997278775 (current time 26.798732956)\r\n"] +[302.007668, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.007825, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.008002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.020254, "o", "015101040101cfcf\\r\\n\r\n"] +[302.020518, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.020711, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961185 (current time 26.798964715)\r\n"] +[302.024146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.024312, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.024529, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.03626, "o", "4141414141664161\\r\\n\r\n"] +[302.036612, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[302.036864, "o", "[tsffs info] Cancelling event with next time 2.9995003245 (current time 26.798960509)\r\n"] +[302.040464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.040667, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.043453, "o", "ca\\r\\n\r\n"] +[302.043937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998958385 (current time 26.798564995)\r\n"] +[302.047257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.047617, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.054011, "o", "01008051\\r\\n\r\n"] +[302.054428, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727874 (current time 26.7987329595)\r\n"] +[302.058277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.058471, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.070296, "o", "6430313233343536\\r\\n\r\n"] +[302.070634, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002565 (current time 26.798960577)\r\n"] +[302.074478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.074725, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.086584, "o", "4949400000646566\\r\\n\r\n"] +[302.086972, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.087133, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000385 (current time 26.798960795)\r\n"] +[302.09073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.090788, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.102957, "o", "79954f7272723738\\r\\n\r\n"] +[302.103414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982235 (current time 26.79896261)\r\n"] +[302.106989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.107175, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.11907, "o", "3961626364658441\\r\\n\r\n"] +[302.119441, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.119676, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499744 (current time 26.7989610895)\r\n"] +[302.123261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.123432, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.12854, "o", "669966\\r\\n\r\n"] +[302.12888, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783894 (current time 26.7986769395)\r\n"] +[302.130861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.131046, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.142687, "o", "6162636465667f41\\r\\n\r\n"] +[302.143014, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498557 (current time 26.7989622765)\r\n"] +[302.145564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.145748, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.157842, "o", "0a2f2f2f2f2f6767\\r\\n\r\n"] +[302.158154, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492959 (current time 26.7989678745)\r\n"] +[302.160944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.170375, "o", "7f0080ff0751\\r\\n\r\n"] +[302.170676, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.170863, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996103055 (current time 26.798850528)\r\n"] +[302.173911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.174009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.185839, "o", "6930313a33303030\\r\\n\r\n"] +[302.18623, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.186407, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499375 (current time 26.7989614585)\r\n"] +[302.189866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.190037, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.193935, "o", "0151\\r\\n\r\n"] +[302.194265, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[302.196313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.196441, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.204153, "o", "0080313133\\r\\n\r\n"] +[302.204515, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[302.204657, "o", "[tsffs info] Cancelling event with next time 2.999671019 (current time 26.7987898145)\r\n"] +[302.208844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.209077, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.221223, "o", "0166757a7a69a8a8\\r\\n\r\n"] +[302.221561, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951155 (current time 26.798965718)\r\n"] +[302.225947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.226062, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.23156, "o", "01aed8\\r\\n\r\n"] +[302.231978, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997809845 (current time 26.798679849)\r\n"] +[302.236307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.236409, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.254667, "o", "513031ffff343536\\r\\n\r\n"] +[302.255223, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954165 (current time 26.798965417)\r\n"] +[302.259289, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.25955, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.259745, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.264729, "o", "012651\\r\\n\r\n"] +[302.265034, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845315 (current time 26.798676302)\r\n"] +[302.268049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.282389, "o", "0bd80b0100e95230\\r\\n\r\n"] +[302.282722, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959475 (current time 26.798964886)\r\n"] +[302.287126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.287508, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.299592, "o", "170039f2dc333435\\r\\n\r\n"] +[302.300141, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.300212, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966965 (current time 26.798964137)\r\n"] +[302.304432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.304588, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.318011, "o", "2130316364363738\\r\\n\r\n"] +[302.31815, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.318404, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950009 (current time 26.7989607435)\r\n"] +[302.322326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.322365, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.334332, "o", "5151515151515151\\r\\n\r\n"] +[302.33461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.334983, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003225 (current time 26.798960511)\r\n"] +[302.338577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.338776, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.351595, "o", "010101fdfd30ebeb\\r\\n\r\n"] +[302.35203, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.352226, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491334 (current time 26.7989694995)\r\n"] +[302.355885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.355982, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.35609, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.367911, "o", "01fb010101010101\\r\\n\r\n"] +[302.368164, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.368251, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988485 (current time 26.798961985)\r\n"] +[302.371843, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.371966, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.372071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.383901, "o", "7630313233343536\\r\\n\r\n"] +[302.384154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.384274, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001785 (current time 26.798960655)\r\n"] +[302.387871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.387955, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.38808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.40055, "o", "80ffffff01008341\\r\\n\r\n"] +[302.400837, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.400884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493136 (current time 26.7989676975)\r\n"] +[302.404614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.404665, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.417189, "o", "ebfe0cdb36373839\\r\\n\r\n"] +[302.417635, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.417752, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491784 (current time 26.7989690495)\r\n"] +[302.421382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.421469, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.421784, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.425892, "o", "a80f\\r\\n\r\n"] +[302.426346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838911 (current time 26.7986219225)\r\n"] +[302.428769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.429031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.43794, "o", "333450413031\\r\\n\r\n"] +[302.438212, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.43864, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996141415 (current time 26.798846692)\r\n"] +[302.441305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.441325, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.454008, "o", "ff30008000eb696e\\r\\n\r\n"] +[302.454698, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494432 (current time 26.7989664015)\r\n"] +[302.457618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.457709, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.457867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.461698, "o", "0151\\r\\n\r\n"] +[302.462018, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.462093, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[302.462113, "o", "[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[302.464182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.464364, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.47729, "o", "5a5a5a5a5a6e5a5a\\r\\n\r\n"] +[302.477691, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.477894, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909865 (current time 26.798969847)\r\n"] +[302.480272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.480294, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.480605, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.492592, "o", "1130313233343536\\r\\n\r\n"] +[302.492997, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.493109, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004365 (current time 26.798960397)\r\n"] +[302.495517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.495562, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.495736, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.507822, "o", "3031323334353637\\r\\n\r\n"] +[302.508249, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[302.510906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.511044, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.514743, "o", "0038\\r\\n\r\n"] +[302.515235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841322 (current time 26.7986195115)\r\n"] +[302.517667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.517706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.529522, "o", "e753303132333435\\r\\n\r\n"] +[302.529892, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499067 (current time 26.7989617665)\r\n"] +[302.532224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.544603, "o", "4166757a7a696e67\\r\\n\r\n"] +[302.544805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.544863, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496019 (current time 26.7989648145)\r\n"] +[302.54722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.547332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.559721, "o", "008003e805fefec7\\r\\n\r\n"] +[302.559896, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.559997, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931405 (current time 26.798967693)\r\n"] +[302.562614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.562636, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.566471, "o", "4089\\r\\n\r\n"] +[302.566833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.566915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[302.566936, "o", "[tsffs info] Cancelling event with next time 2.999841082 (current time 26.7986197515)\r\n"] +[302.570599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.570882, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.571063, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.576108, "o", "005151\\r\\n\r\n"] +[302.576478, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[302.578771, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.578954, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.590534, "o", "0130313233343536\\r\\n\r\n"] +[302.590773, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.590894, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[302.590999, "o", "[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[302.593406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.593455, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.597727, "o", "ffff\\r\\n\r\n"] +[302.598041, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.598083, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998363745 (current time 26.798624459)\r\n"] +[302.602189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.602343, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.602538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.614707, "o", "d883838383838383\\r\\n\r\n"] +[302.615067, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.615344, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498262 (current time 26.7989625715)\r\n"] +[302.619514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.619747, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.619891, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.631988, "o", "66757a7a696e6675\\r\\n\r\n"] +[302.632312, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.632489, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958575 (current time 26.798964976)\r\n"] +[302.637074, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.637193, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.649232, "o", "c84e313233343536\\r\\n\r\n"] +[302.649617, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497776 (current time 26.7989630575)\r\n"] +[302.654435, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.654477, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.654642, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.666811, "o", "f650707070a4701b\\r\\n\r\n"] +[302.667229, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.667462, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967825 (current time 26.798964051)\r\n"] +[302.671774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.671931, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.683833, "o", "0080000036363630\\r\\n\r\n"] +[302.684238, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.684434, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006405 (current time 26.798960193)\r\n"] +[302.68866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.68881, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.694431, "o", "a5e900\\r\\n\r\n"] +[302.694787, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821135 (current time 26.79867872)\r\n"] +[302.697922, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.698133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.709687, "o", "2312401212121212\\r\\n\r\n"] +[302.709981, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.710288, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008295 (current time 26.798960004)\r\n"] +[302.712559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.72456, "o", "61f8fa6930616100\\r\\n\r\n"] +[302.724858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496618 (current time 26.7989642155)\r\n"] +[302.727547, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.739994, "o", "a164a3e9a3a3e9a3\\r\\n\r\n"] +[302.740314, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949207 (current time 26.7989687635)\r\n"] +[302.742953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.754757, "o", "6465654141414141\\r\\n\r\n"] +[302.755059, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001395 (current time 26.798960694)\r\n"] +[302.757888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.758041, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.770991, "o", "bcdddddddddddddd\\r\\n\r\n"] +[302.771303, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.771598, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999481638 (current time 26.7989791955)\r\n"] +[302.774518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.774538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.787575, "o", "c80080a8a8a8a8a8\\r\\n\r\n"] +[302.787886, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.788044, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493089 (current time 26.7989677445)\r\n"] +[302.791106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.791252, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.7914, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.795183, "o", "0151\\r\\n\r\n"] +[302.795504, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.795772, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[302.797849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.79794, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.809783, "o", "3131313400103738\\r\\n\r\n"] +[302.81008, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500519 (current time 26.7989603145)\r\n"] +[302.812478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.812589, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.819955, "o", "3d3d3dc2\\r\\n\r\n"] +[302.820313, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.820616, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997229795 (current time 26.798737854)\r\n"] +[302.823377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.823448, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.827347, "o", "fb80\\r\\n\r\n"] +[302.827761, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.82778, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388935 (current time 26.79862194)\r\n"] +[302.829837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.829973, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.832215, "o", "40\\r\\n\r\n"] +[302.832748, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99989816 (current time 26.7985626735)\r\n"] +[302.836065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.836196, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.836238, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.848871, "o", "4176757a64696e67\\r\\n\r\n"] +[302.849209, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.849516, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971055 (current time 26.798963728)\r\n"] +[302.85317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.853246, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.858865, "o", "003a0c\\r\\n\r\n"] +[302.859318, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997824245 (current time 26.798678409)\r\n"] +[302.861789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.861818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.875873, "o", "017f7f7f7f7f7e5f\\r\\n\r\n"] +[302.876398, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[302.87657, "o", "[tsffs info] Cancelling event with next time 2.9994912625 (current time 26.798969571)\r\n"] +[302.878943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.879088, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.89107, "o", "3132333435363738\\r\\n\r\n"] +[302.8914, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.891596, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[302.894203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.894352, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.908377, "o", "fafafafafa06fa78\\r\\n\r\n"] +[302.908692, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.908894, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486135 (current time 26.7989746985)\r\n"] +[302.911678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.911902, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.923834, "o", "3031323334353637\\r\\n\r\n"] +[302.924132, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.924233, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[302.926996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[302.927198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.932562, "o", "1d5151\\r\\n\r\n"] +[302.932905, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.933036, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833245 (current time 26.798677509)\r\n"] +[302.936209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.936313, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.936474, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.948269, "o", "4100800041474775\\r\\n\r\n"] +[302.948513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.948646, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002785 (current time 26.798960555)\r\n"] +[302.95194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.952083, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.952204, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.964807, "o", "0151b8b8b8b8b803\\r\\n\r\n"] +[302.965178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943495 (current time 26.798966484)\r\n"] +[302.968687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.968797, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.98121, "o", "f73f3fcf84848485\\r\\n\r\n"] +[302.981523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936165 (current time 26.798967217)\r\n"] +[302.984906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[302.985059, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[302.985189, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[302.996995, "o", "3031323334353637\\r\\n\r\n"] +[302.997291, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[302.997468, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[302.999982, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.000107, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.01267, "o", "000004e3e3e3e300\\r\\n\r\n"] +[303.012983, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496054 (current time 26.7989647795)\r\n"] +[303.015445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.01563, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.028204, "o", "5c5c5c5c5c5ceeee\\r\\n\r\n"] +[303.028454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883045 (current time 26.798972529)\r\n"] +[303.031062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.035144, "o", "62c0\\r\\n\r\n"] +[303.03539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401545 (current time 26.798620679)\r\n"] +[303.038693, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.038785, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.051723, "o", "fe958e0bd81dd80b\\r\\n\r\n"] +[303.051988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906145 (current time 26.798970219)\r\n"] +[303.056032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.063104, "o", "1fd7d7d7\\r\\n\r\n"] +[303.063372, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722637 (current time 26.7987381965)\r\n"] +[303.06574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.065873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.077894, "o", "4545454545454545\\r\\n\r\n"] +[303.078199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997945 (current time 26.798961039)\r\n"] +[303.080576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.080699, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.086006, "o", "375151\\r\\n\r\n"] +[303.08634, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.086542, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784353 (current time 26.7986764805)\r\n"] +[303.089585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.089783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.092138, "o", "51\\r\\n\r\n"] +[303.092502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[303.094722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.094982, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.097213, "o", "b6\\r\\n\r\n"] +[303.097517, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.097543, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969095 (current time 26.798563924)\r\n"] +[303.099399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.099608, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.112172, "o", "c81bc5c5c5303132\\r\\n\r\n"] +[303.112448, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494521 (current time 26.7989663125)\r\n"] +[303.114858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.127527, "o", "46bababac44600a8\\r\\n\r\n"] +[303.127745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491221 (current time 26.7989696125)\r\n"] +[303.130329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.130493, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.132773, "o", "01\\r\\n\r\n"] +[303.133536, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[303.136847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.136955, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.149695, "o", "fc0ffc6675333310\\r\\n\r\n"] +[303.150115, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942615 (current time 26.798966572)\r\n"] +[303.15391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.154103, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.158302, "o", "6b6b\\r\\n\r\n"] +[303.158582, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388925 (current time 26.798621941)\r\n"] +[303.161122, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.173235, "o", "383961f0f0f0f0f0\\r\\n\r\n"] +[303.173696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943175 (current time 26.798966516)\r\n"] +[303.175993, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.176167, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.18831, "o", "bbff303133333333\\r\\n\r\n"] +[303.188623, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495757 (current time 26.7989650765)\r\n"] +[303.191442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.191544, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.193983, "o", "01\\r\\n\r\n"] +[303.194241, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[303.196157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.196169, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.200114, "o", "d151\\r\\n\r\n"] +[303.200552, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984015 (current time 26.7986206835)\r\n"] +[303.20395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.204091, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.207924, "o", "5101\\r\\n\r\n"] +[303.208285, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[303.210681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.222313, "o", "3321720000403333\\r\\n\r\n"] +[303.222692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500698 (current time 26.7989601355)\r\n"] +[303.225223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.22531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.238141, "o", "416b6b6b6b50757a\\r\\n\r\n"] +[303.238445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942675 (current time 26.798966566)\r\n"] +[303.241551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.241671, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.245737, "o", "3b52\\r\\n\r\n"] +[303.246061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401305 (current time 26.798620703)\r\n"] +[303.248033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.248146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.250666, "o", "01\\r\\n\r\n"] +[303.250992, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[303.254395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.254528, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.267366, "o", "4000a8cb07a0afa0\\r\\n\r\n"] +[303.26783, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926355 (current time 26.798968198)\r\n"] +[303.271468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.271613, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[303.27178, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.283577, "o", "928e333333543031\\r\\n\r\n"] +[303.284106, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989585 (current time 26.798961875)\r\n"] +[303.288167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.288381, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.300434, "o", "6464000000157f00\\r\\n\r\n"] +[303.300795, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994545 (current time 26.798961379)\r\n"] +[303.304485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.304694, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.317035, "o", "966e6721ff000000\\r\\n\r\n"] +[303.317134, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.317165, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967725 (current time 26.798964061)\r\n"] +[303.321001, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.321202, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[303.321298, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.33306, "o", "0b0151510b015151\\r\\n\r\n"] +[303.333436, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.333551, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984825 (current time 26.798962351)\r\n"] +[303.337338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.337448, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.34158, "o", "e451\\r\\n\r\n"] +[303.341857, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.342057, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840055 (current time 26.7986207785)\r\n"] +[303.344471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.344621, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.357401, "o", "b0fffff8ffb0ffff\\r\\n\r\n"] +[303.357719, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.357853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484643 (current time 26.7989761905)\r\n"] +[303.360505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.360717, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.363204, "o", "e1\\r\\n\r\n"] +[303.36359, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969465 (current time 26.798563887)\r\n"] +[303.365365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.365603, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.37743, "o", "3031324f34353637\\r\\n\r\n"] +[303.377568, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.377898, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990005 (current time 26.798961833)\r\n"] +[303.380371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.380441, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.385892, "o", "0266de\\r\\n\r\n"] +[303.386196, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.386566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782045 (current time 26.7986787885)\r\n"] +[303.38962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.402037, "o", "013e3e3e3e3e3e3e\\r\\n\r\n"] +[303.402399, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920475 (current time 26.798968786)\r\n"] +[303.406007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.406143, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.418884, "o", "999999998e8e8e8e\\r\\n\r\n"] +[303.419221, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.419462, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939465 (current time 26.798966887)\r\n"] +[303.423017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.423271, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.436123, "o", "fd01fdfdfdfdec01\\r\\n\r\n"] +[303.436402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994862305 (current time 26.798974603)\r\n"] +[303.440012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.440283, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.45213, "o", "78ff303132333435\\r\\n\r\n"] +[303.452536, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.45279, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497751 (current time 26.7989630825)\r\n"] +[303.456088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.456274, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.468741, "o", "655200ffff00d1d1\\r\\n\r\n"] +[303.469105, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933495 (current time 26.798967484)\r\n"] +[303.472496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.472654, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.476616, "o", "5127\\r\\n\r\n"] +[303.477073, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841202 (current time 26.7986196315)\r\n"] +[303.479159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.47936, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.491073, "o", "4141412020af6263\\r\\n\r\n"] +[303.491482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498166 (current time 26.7989626675)\r\n"] +[303.494358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.506146, "o", "5120b79999769999\\r\\n\r\n"] +[303.506445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979125 (current time 26.798962921)\r\n"] +[303.509042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.509127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.513104, "o", "bf70\\r\\n\r\n"] +[303.513514, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389075 (current time 26.798621926)\r\n"] +[303.515402, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.515674, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.527702, "o", "ff51515151ff5151\\r\\n\r\n"] +[303.527959, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.528147, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954215 (current time 26.798965412)\r\n"] +[303.530457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.53069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.543273, "o", "d70b40a50300deaf\\r\\n\r\n"] +[303.543634, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994924475 (current time 26.798968386)\r\n"] +[303.546308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.558136, "o", "0000000030313233\\r\\n\r\n"] +[303.558535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995011055 (current time 26.798959728)\r\n"] +[303.561318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.57377, "o", "414166637aa5e96e\\r\\n\r\n"] +[303.574081, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952065 (current time 26.798965627)\r\n"] +[303.576817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.589355, "o", "f0f0f0cd33343536\\r\\n\r\n"] +[303.589575, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494425 (current time 26.7989664085)\r\n"] +[303.592326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.592355, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.60414, "o", "3031323334353637\\r\\n\r\n"] +[303.60443, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[303.604644, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[303.607357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.607501, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.612582, "o", "015251\\r\\n\r\n"] +[303.613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784553 (current time 26.7986762805)\r\n"] +[303.615024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.615203, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.626897, "o", "8686868684918686\\r\\n\r\n"] +[303.627263, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990195 (current time 26.798961814)\r\n"] +[303.629789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.635127, "o", "405620\\r\\n\r\n"] +[303.635436, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784498 (current time 26.7986763355)\r\n"] +[303.638579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.63866, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.642744, "o", "52ae\\r\\n\r\n"] +[303.643139, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389465 (current time 26.798621887)\r\n"] +[303.645474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.649425, "o", "d851\\r\\n\r\n"] +[303.64988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839992 (current time 26.7986208415)\r\n"] +[303.653069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.653453, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.665694, "o", "0080ffff41413737\\r\\n\r\n"] +[303.666125, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495405 (current time 26.7989654285)\r\n"] +[303.669942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.682079, "o", "0151ff51d80b3051\\r\\n\r\n"] +[303.682453, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495748 (current time 26.7989650855)\r\n"] +[303.686146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.686324, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.698664, "o", "49755f21a2f0407a\\r\\n\r\n"] +[303.699046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954435 (current time 26.79896539)\r\n"] +[303.702737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.702968, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.71482, "o", "3031320029705666\\r\\n\r\n"] +[303.715236, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002465 (current time 26.798960587)\r\n"] +[303.718591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.730553, "o", "4141bf4141414141\\r\\n\r\n"] +[303.730848, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498159 (current time 26.7989626745)\r\n"] +[303.733339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.746155, "o", "e2e2e2e2b8b8e2db\\r\\n\r\n"] +[303.746494, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896735 (current time 26.79897116)\r\n"] +[303.748835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.757262, "o", "9f9f9f02d0\\r\\n\r\n"] +[303.757576, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999665711 (current time 26.7987951225)\r\n"] +[303.760277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.760475, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.773228, "o", "83ffffff7fab55ad\\r\\n\r\n"] +[303.773469, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994869365 (current time 26.798973897)\r\n"] +[303.77608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.776298, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.781524, "o", "015150\\r\\n\r\n"] +[303.781829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[303.784389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.794969, "o", "01777777777777\\r\\n\r\n"] +[303.795243, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995561 (current time 26.7989047335)\r\n"] +[303.797665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.801696, "o", "7070\\r\\n\r\n"] +[303.802022, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412375 (current time 26.798619596)\r\n"] +[303.805029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.817559, "o", "017c7c7c7c7c7c7c\\r\\n\r\n"] +[303.817885, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916695 (current time 26.798969164)\r\n"] +[303.821545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.821662, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.833544, "o", "01196419190d1941\\r\\n\r\n"] +[303.833949, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989155 (current time 26.798961918)\r\n"] +[303.837607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.837769, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.844512, "o", "3600808e\\r\\n\r\n"] +[303.844815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997263695 (current time 26.798734464)\r\n"] +[303.847045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.852428, "o", "015166\\r\\n\r\n"] +[303.852765, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844395 (current time 26.798676394)\r\n"] +[303.855971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.859868, "o", "1000\\r\\n\r\n"] +[303.860227, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[303.86237, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.874637, "o", "015e5e5e5e5e5e5e\\r\\n\r\n"] +[303.875104, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917185 (current time 26.798969115)\r\n"] +[303.877742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.890289, "o", "9a9a9afc8a8a8a8a\\r\\n\r\n"] +[303.89061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489328 (current time 26.7989715055)\r\n"] +[303.893372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.895871, "o", "78\\r\\n\r\n"] +[303.896254, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998978915 (current time 26.798562942)\r\n"] +[303.899387, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.899532, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.903488, "o", "80ff\\r\\n\r\n"] +[303.903848, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.904121, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838792 (current time 26.7986220415)\r\n"] +[303.907681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.907871, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.920126, "o", "0151034000a8cbf1\\r\\n\r\n"] +[303.920305, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[303.920639, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960665 (current time 26.798964767)\r\n"] +[303.924422, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.924629, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[303.924815, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.927406, "o", "9b\\r\\n\r\n"] +[303.927793, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[303.928007, "o", "[tsffs info] Cancelling event with next time 2.9998968365 (current time 26.798563997)\r\n"] +[303.931005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.931331, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.935463, "o", "cf31\\r\\n\r\n"] +[303.935871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838941 (current time 26.7986218925)\r\n"] +[303.939989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.940257, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.952977, "o", "65346564f3a8cbf1\\r\\n\r\n[tsffs info] on_magic_instruction(2)\r\n"] +[303.953393, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940865 (current time 26.798966747)\r\n"] +[303.957024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.957196, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.961071, "o", "7575\\r\\n\r\n"] +[303.961444, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998409875 (current time 26.798619846)\r\n"] +[303.963402, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.970174, "o", "60bd6030\\r\\n\r\n"] +[303.970531, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997254305 (current time 26.798735403)\r\n"] +[303.973177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[303.973389, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.978697, "o", "fe5151\\r\\n\r\n"] +[303.979087, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782024 (current time 26.7986788095)\r\n"] +[303.981035, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[303.992707, "o", "2121212139616263\\r\\n\r\n"] +[303.993063, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003325 (current time 26.798960501)\r\n"] +[303.995792, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[303.995991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.007594, "o", "3039323334353637\\r\\n\r\n"] +[304.007929, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950006 (current time 26.7989607735)\r\n"] +[304.010927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.01109, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.022686, "o", "4142512034004141\\r\\n\r\n"] +[304.023055, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500648 (current time 26.7989601855)\r\n"] +[304.025805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.025962, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.037742, "o", "5126262626262626\\r\\n\r\n"] +[304.038083, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500018 (current time 26.7989608155)\r\n"] +[304.041371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.041478, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.053397, "o", "5656002970566613\\r\\n\r\n"] +[304.053658, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.054033, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499914 (current time 26.7989609195)\r\n"] +[304.057024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.057229, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.06903, "o", "743500000000351a\\r\\n\r\n"] +[304.069316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.069637, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499684 (current time 26.7989611495)\r\n"] +[304.07292, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.073071, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.085638, "o", "b8b8b8b83435b8b8\\r\\n\r\n"] +[304.085991, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.086279, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492845 (current time 26.7989679885)\r\n"] +[304.089614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.089738, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.102138, "o", "01e5e5e5e5e55151\\r\\n\r\n"] +[304.102435, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.102821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942125 (current time 26.798966621)\r\n"] +[304.10614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.106361, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.118491, "o", "e5a5e95230303132\\r\\n\r\n"] +[304.118925, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.11915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967905 (current time 26.798964043)\r\n"] +[304.122508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.122628, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.135133, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[304.1355, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.135751, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[304.139121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.139214, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.151736, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[304.152051, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.152431, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[304.155835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.155934, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.15612, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.164217, "o", "d80b40a5e9\\r\\n\r\n"] +[304.164585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[304.167853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.176233, "o", "a7143cda96\\r\\n\r\n"] +[304.176594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659795 (current time 26.798794854)\r\n"] +[304.179159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.187625, "o", "d80b3cda96\\r\\n\r\n"] +[304.188059, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996648285 (current time 26.798796005)\r\n"] +[304.191299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.19141, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.199553, "o", "a71440a5e9\\r\\n\r\n"] +[304.199985, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.200117, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671865 (current time 26.798793647)\r\n"] +[304.204098, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.204226, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.213003, "o", "d80b40da96\\r\\n\r\n"] +[304.213369, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.213538, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666043 (current time 26.7987947905)\r\n"] +[304.215859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.216095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.224296, "o", "a70b40a5e9\\r\\n\r\n"] +[304.224992, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666115 (current time 26.7987947185)\r\n"] +[304.227759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.236186, "o", "d81440a5e9\\r\\n\r\n"] +[304.236515, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667107 (current time 26.7987937265)\r\n"] +[304.239869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.240032, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.248066, "o", "d80b40a596\\r\\n\r\n"] +[304.24841, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671685 (current time 26.798793665)\r\n"] +[304.251329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.259767, "o", "d80b3ca5e9\\r\\n\r\n"] +[304.260179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.260448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664821 (current time 26.7987960125)\r\n"] +[304.262687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.262886, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.271127, "o", "d80b40dae9\\r\\n\r\n"] +[304.271653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966491 (current time 26.7987959235)\r\n"] +[304.274698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.274827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.302776, "o", "d80b40a5e9\\r\\n\r\n"] +[304.3039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[304.307172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.30726, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.335324, "o", "d80b40a5e9\\r\\n\r\n"] +[304.336952, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[304.340196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.340319, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.368383, "o", "d80b40a5e9\\r\\n\r\n"] +[304.369439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[304.373094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.373143, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.37574, "o", "16\\r\\n\r\n"] +[304.376082, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980795 (current time 26.798562754)\r\n"] +[304.378285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.378402, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.390618, "o", "2e0b400404000400\\r\\n\r\n"] +[304.390936, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498652 (current time 26.7989621815)\r\n"] +[304.393667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.393824, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.40073, "o", "ffe9e980\\r\\n\r\n"] +[304.401032, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.401184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722458 (current time 26.7987383755)\r\n"] +[304.404651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.404702, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.404869, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.416846, "o", "6364656641303ba5\\r\\n\r\n"] +[304.417108, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.417354, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497749 (current time 26.7989630845)\r\n"] +[304.420965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.421068, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.424963, "o", "0000\\r\\n\r\n"] +[304.425288, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.425573, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[304.427734, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.427916, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.430301, "o", "d8\\r\\n\r\n"] +[304.430725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968175 (current time 26.798564016)\r\n"] +[304.432585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.432777, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.444568, "o", "c100000100d53031\\r\\n\r\n"] +[304.444839, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.445041, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987185 (current time 26.798962115)\r\n"] +[304.447363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.447569, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.460661, "o", "fefefefefefefefe\\r\\n\r\n"] +[304.460943, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994809145 (current time 26.798979919)\r\n"] +[304.463592, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.463797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.476345, "o", "1e1e1e1e1e1e1e81\\r\\n\r\n"] +[304.476612, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.476717, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921755 (current time 26.798968658)\r\n"] +[304.47935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.479624, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.490349, "o", "d70b40a540a534\\r\\n\r\n"] +[304.490627, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.490742, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995526275 (current time 26.798908206)\r\n"] +[304.493551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.493649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.505253, "o", "0001000031323334\\r\\n\r\n"] +[304.505568, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.50581, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009745 (current time 26.798959859)\r\n"] +[304.508407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.508502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.520872, "o", "d88432cc808432cc\\r\\n\r\n"] +[304.521117, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.52121, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494168 (current time 26.7989666655)\r\n"] +[304.524555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.524694, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.524708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.527363, "o", "6b\\r\\n\r\n"] +[304.527836, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.528165, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969095 (current time 26.798563924)\r\n"] +[304.529946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.530144, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.538434, "o", "c0d80ba5e9\\r\\n\r\n"] +[304.538725, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.538933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664899 (current time 26.7987959345)\r\n"] +[304.541607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.541695, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.554261, "o", "c43469dfff18591b\\r\\n\r\n"] +[304.554711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927415 (current time 26.798968092)\r\n"] +[304.557877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.557979, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.569961, "o", "3564373839616263\\r\\n\r\n"] +[304.570264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997095 (current time 26.798961124)\r\n"] +[304.573481, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.573598, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.573756, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.585477, "o", "6161613049323334\\r\\n\r\n"] +[304.585796, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.585964, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001845 (current time 26.798960649)\r\n"] +[304.589593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.589691, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[304.589834, "o", "[tsffs info] Resuming simulation\r\n"] +[304.594946, "o", "603333\\r\\n\r\n"] +[304.595277, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784464 (current time 26.7986763695)\r\n"] +[304.597494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.597691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.609318, "o", "3738396162633961\\r\\n\r\n"] +[304.609756, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.609906, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499681 (current time 26.7989611525)\r\n"] +[304.612606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.612727, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.625374, "o", "f107c9d819d8cbaf\\r\\n\r\n"] +[304.625791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905545 (current time 26.798970279)\r\n"] +[304.628702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.628805, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.641094, "o", "38303138396e6e6e\\r\\n\r\n"] +[304.641446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962815 (current time 26.798964552)\r\n"] +[304.644313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.64445, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.657791, "o", "867bdefe223aaeae\\r\\n\r\n"] +[304.657937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488452 (current time 26.7989723815)\r\n"] +[304.660978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.661066, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.673115, "o", "8282828282757a7a\\r\\n\r\n"] +[304.673375, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497333 (current time 26.7989635005)\r\n"] +[304.676169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.676337, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.683148, "o", "d8e9b5e9\\r\\n\r\n"] +[304.683585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722488 (current time 26.7987383455)\r\n"] +[304.687234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.699862, "o", "d8e1e1e1e1e1e1a5\\r\\n\r\n"] +[304.700102, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.700236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909595 (current time 26.798969874)\r\n"] +[304.70414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.704273, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.712338, "o", "e90b406675\\r\\n\r\n"] +[304.712722, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668192 (current time 26.7987926415)\r\n"] +[304.714925, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.721894, "o", "d838a5e9\\r\\n\r\n"] +[304.722261, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723736 (current time 26.7987370975)\r\n"] +[304.724868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.725009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.737218, "o", "2031321a1a1ae51a\\r\\n\r\n"] +[304.737631, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950105 (current time 26.798965823)\r\n"] +[304.740676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.752856, "o", "e9e9d80b40303132\\r\\n\r\n"] +[304.753181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.753253, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955215 (current time 26.798965312)\r\n"] +[304.756568, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.756659, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.756778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.769771, "o", "d83031b8b8b8b8b8\\r\\n\r\n"] +[304.770101, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.770335, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492988 (current time 26.7989678455)\r\n"] +[304.773501, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.773684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.786056, "o", "d80b40a5e8d80b40\\r\\n\r\n"] +[304.786413, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.786621, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933185 (current time 26.798967515)\r\n"] +[304.790072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.790193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.801952, "o", "0c40283031323334\\r\\n\r\n"] +[304.802277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.802477, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993505 (current time 26.798961483)\r\n"] +[304.806077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.806194, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.817958, "o", "2000000082828282\\r\\n\r\n"] +[304.81824, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.818416, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500548 (current time 26.7989602855)\r\n"] +[304.822097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.822229, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.834967, "o", "affe781b034000a8\\r\\n\r\n"] +[304.83525, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493356 (current time 26.7989674775)\r\n"] +[304.839131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.839245, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.851105, "o", "6031323334350036\\r\\n\r\n"] +[304.851428, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500433 (current time 26.7989604005)\r\n"] +[304.855074, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.855183, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.867123, "o", "00649c3839616263\\r\\n\r\n"] +[304.867577, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987125 (current time 26.798962121)\r\n"] +[304.871418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.871544, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.884064, "o", "0000fa0092cdeef9\\r\\n\r\n"] +[304.884329, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.884415, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922515 (current time 26.798968582)\r\n"] +[304.888319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.888457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.901104, "o", "6464d8d764cbcbcb\\r\\n\r\n"] +[304.901389, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.90167, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490667 (current time 26.7989701665)\r\n"] +[304.905401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.905519, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.913578, "o", "e2e240a604\\r\\n\r\n"] +[304.913943, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966739 (current time 26.7987934435)\r\n"] +[304.916562, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.916751, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.928753, "o", "858597858597215a\\r\\n\r\n"] +[304.929033, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.929099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981315 (current time 26.798962702)\r\n"] +[304.931958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.931977, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.932099, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.940306, "o", "0b280b6c18\\r\\n\r\n"] +[304.940661, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.940824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667332 (current time 26.7987935015)\r\n"] +[304.943792, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[304.944035, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.952234, "o", "d80b40977a\\r\\n\r\n"] +[304.952547, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.952718, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[304.952743, "o", "[tsffs info] Cancelling event with next time 2.999667087 (current time 26.7987937465)\r\n"] +[304.956279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.956355, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.956468, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.964583, "o", "d83d4040a5\\r\\n\r\n"] +[304.964907, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.964939, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[304.964964, "o", "[tsffs info] Cancelling event with next time 2.99966731 (current time 26.7987935235)\r\n"] +[304.968704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.968735, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[304.968758, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.981631, "o", "effaef0b0b0b0b0b\\r\\n\r\n"] +[304.981999, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[304.98215, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487914 (current time 26.7989729195)\r\n"] +[304.984887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[304.985016, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[304.997102, "o", "314f33373536c931\\r\\n\r\n"] +[304.997464, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976665 (current time 26.798963167)\r\n"] +[305.000396, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.000703, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.01293, "o", "696e6721b2b2b27a\\r\\n\r\n"] +[305.013329, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494248 (current time 26.7989665855)\r\n"] +[305.015868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.027844, "o", "b8781b6675333333\\r\\n\r\n"] +[305.028172, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497525 (current time 26.7989633085)\r\n"] +[305.030675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.043016, "o", "372c3a619b9b9bc2\\r\\n\r\n"] +[305.04338, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493041 (current time 26.7989677925)\r\n"] +[305.046035, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.056304, "o", "e9a5e905ffe9\\r\\n\r\n"] +[305.056649, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.05688, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996063785 (current time 26.798854455)\r\n"] +[305.059295, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.071875, "o", "b8b8b8b8034000a8\\r\\n\r\n"] +[305.072168, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.07229, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944585 (current time 26.798966375)\r\n"] +[305.075052, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.0752, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.083006, "o", "d800040000\\r\\n\r\n"] +[305.083416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.083594, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670047 (current time 26.7987907865)\r\n"] +[305.087646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.087717, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[305.087783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.098283, "o", "d8001010101010\\r\\n\r\n"] +[305.098541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.09868, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999556647 (current time 26.7989041865)\r\n"] +[305.102399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.102521, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[305.102677, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.110835, "o", "d80b200089\\r\\n\r\n"] +[305.111208, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.111307, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996684785 (current time 26.798792355)\r\n"] +[305.113713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.113757, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[305.113857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.126245, "o", "414141b4b4b4b4b4\\r\\n\r\n"] +[305.126537, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.126782, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946845 (current time 26.798966149)\r\n"] +[305.129395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.12949, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[305.129572, "o", "[tsffs info] Resuming simulation\r\n"] +[305.141605, "o", "0029705666ff3a8b\\r\\n\r\n"] +[305.141883, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.142069, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[305.144885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.144971, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.157432, "o", "d80b4066ff3a8b9e\\r\\n\r\n"] +[305.157732, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.157833, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917845 (current time 26.798969049)\r\n"] +[305.160695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.160841, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.172839, "o", "4141d8d865664141\\r\\n\r\n"] +[305.173071, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.173173, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497612 (current time 26.7989632215)\r\n"] +[305.175788, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.1759, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.187787, "o", "808080c380808080\\r\\n\r\n"] +[305.188136, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.188339, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498936 (current time 26.7989618975)\r\n"] +[305.191207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.191389, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.203285, "o", "4041ff4141414141\\r\\n\r\n"] +[305.203516, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.203729, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949809 (current time 26.7989627435)\r\n"] +[305.206711, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.206815, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.219398, "o", "0b40d840a5e90b40\\r\\n\r\n"] +[305.219722, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.219917, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494632 (current time 26.7989662015)\r\n"] +[305.22331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.223368, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[305.22353, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.235333, "o", "4033414141416969\\r\\n\r\n"] +[305.23572, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.235958, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500072 (current time 26.7989607615)\r\n"] +[305.239357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.239464, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.251872, "o", "d880d8a5e9303132\\r\\n\r\n"] +[305.252178, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.252416, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949538 (current time 26.7989654535)\r\n"] +[305.256001, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.256113, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[305.256126, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.268168, "o", "3031323334353637\\r\\n\r\n"] +[305.26834, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.268484, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[305.272207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.272376, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.279425, "o", "ffcc00cc\\r\\n\r\n"] +[305.279745, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.279889, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997207065 (current time 26.798740127)\r\n"] +[305.282056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.282193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.293959, "o", "6400013031323738\\r\\n\r\n"] +[305.294236, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.294384, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500461 (current time 26.7989603725)\r\n"] +[305.29682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.308911, "o", "17d7649a66c03435\\r\\n\r\n"] +[305.309409, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963895 (current time 26.798964444)\r\n"] +[305.312333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.312541, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.32463, "o", "b5ffff0000000000\\r\\n\r\n"] +[305.324986, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[305.325111, "o", "[tsffs info] Cancelling event with next time 2.999495039 (current time 26.7989657945)\r\n"] +[305.327931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.328114, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.340284, "o", "8d8d8d8d18401818\\r\\n\r\n"] +[305.340597, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495051 (current time 26.7989657825)\r\n"] +[305.343516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.356096, "o", "7f7f7f7f7f7f7f7f\\r\\n\r\n"] +[305.356505, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897385 (current time 26.798971095)\r\n"] +[305.35919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.359351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.36322, "o", "d80b\\r\\n\r\n"] +[305.363628, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.363775, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838947 (current time 26.7986218865)\r\n"] +[305.365698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.36591, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.378002, "o", "3034f9f9ff313232\\r\\n\r\n"] +[305.378348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952975 (current time 26.798965536)\r\n"] +[305.380854, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.381084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.389462, "o", "b80b40a6e9\\r\\n\r\n"] +[305.389701, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666062 (current time 26.7987947715)\r\n"] +[305.393011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.404829, "o", "1726262627261726\\r\\n\r\n"] +[305.405118, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999285 (current time 26.798960905)\r\n"] +[305.407877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.408071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.42034, "o", "557b7b7b55553031\\r\\n\r\n"] +[305.420733, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496507 (current time 26.7989643265)\r\n"] +[305.424117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.432284, "o", "d80b4092e9\\r\\n\r\n"] +[305.432676, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996670715 (current time 26.798793762)\r\n"] +[305.436489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.436562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.448851, "o", "1b03d2f3a834f107\\r\\n\r\n"] +[305.449284, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945175 (current time 26.798966316)\r\n"] +[305.45355, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.453672, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.465885, "o", "34344000371e1e1e\\r\\n\r\n"] +[305.466106, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.466331, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969405 (current time 26.798963893)\r\n"] +[305.470537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[305.470555, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[305.470794, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.478918, "o", "ff0000002d\\r\\n\r\n"] +[305.479125, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996676735 (current time 26.79879316)\r\n"] +[305.481593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.48175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.490176, "o", "d80b45a5e9\\r\\n\r\n"] +[305.490506, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659105 (current time 26.798794923)\r\n"] +[305.493258, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.505224, "o", "3233343536373830\\r\\n\r\n"] +[305.505461, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500089 (current time 26.7989607445)\r\n"] +[305.508052, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.508233, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.512111, "o", "0e97\\r\\n\r\n"] +[305.512524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.512631, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839915 (current time 26.7986209185)\r\n"] +[305.514625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.514732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.526712, "o", "e9666666660b4097\\r\\n\r\n"] +[305.527146, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972145 (current time 26.798963619)\r\n"] +[305.529653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.529662, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.541514, "o", "6262353536626242\\r\\n\r\n"] +[305.541803, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499995 (current time 26.7989608385)\r\n"] +[305.544588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.544791, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.552843, "o", "d830313233\\r\\n\r\n"] +[305.553255, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996696685 (current time 26.798791165)\r\n"] +[305.55651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.568403, "o", "5341428641022969\\r\\n\r\n"] +[305.568595, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499933 (current time 26.7989609005)\r\n"] +[305.57244, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.585232, "o", "a517757a7a69b20b\\r\\n\r\n"] +[305.585589, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942135 (current time 26.79896662)\r\n"] +[305.58945, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.592136, "o", "8f\\r\\n\r\n"] +[305.592508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896764 (current time 26.7985640695)\r\n"] +[305.594691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.598536, "o", "7f01\\r\\n\r\n"] +[305.598891, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400775 (current time 26.798620756)\r\n"] +[305.601377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.613387, "o", "d88031327a333435\\r\\n\r\n"] +[305.613724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497811 (current time 26.7989630225)\r\n"] +[305.616105, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.61892, "o", "e8\\r\\n\r\n"] +[305.619347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998967885 (current time 26.798564045)\r\n"] +[305.622273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.634143, "o", "2828282828282828\\r\\n\r\n"] +[305.634472, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996225 (current time 26.798961211)\r\n"] +[305.638194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.650208, "o", "d80b302032333435\\r\\n\r\n"] +[305.650533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981385 (current time 26.798962695)\r\n"] +[305.654511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.654614, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.667572, "o", "2c396162bbbbbbbb\\r\\n\r\n"] +[305.667924, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.667952, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899955 (current time 26.798970838)\r\n"] +[305.672078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.672194, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.684194, "o", "6364656640303132\\r\\n\r\n"] +[305.684442, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500129 (current time 26.7989607045)\r\n"] +[305.688415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.688556, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.701414, "o", "0b0b0b0b0b0b0004\\r\\n\r\n"] +[305.701702, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494269 (current time 26.7989665645)\r\n"] +[305.705738, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.705864, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.718582, "o", "10affe781b03d2f3\\r\\n\r\n"] +[305.718902, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921105 (current time 26.798968723)\r\n"] +[305.722707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.722782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.735527, "o", "d80cf822ff311414\\r\\n\r\n"] +[305.735861, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943225 (current time 26.798966511)\r\n"] +[305.739978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.750048, "o", "10fef0e7f0f0\\r\\n\r\n"] +[305.750403, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996069345 (current time 26.798853899)\r\n"] +[305.754601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.767503, "o", "2c3ba8cb767f0cdb\\r\\n\r\n"] +[305.767661, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489708 (current time 26.7989711255)\r\n"] +[305.771672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.771786, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.784057, "o", "d80b40a533333333\\r\\n\r\n"] +[305.784175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.784503, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969065 (current time 26.798963927)\r\n"] +[305.788338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.800263, "o", "4141403031323334\\r\\n\r\n"] +[305.800666, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.800806, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005685 (current time 26.798960265)\r\n"] +[305.804729, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.804836, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.816921, "o", "fe30313233343536\\r\\n\r\n"] +[305.817099, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.817224, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497918 (current time 26.7989629155)\r\n"] +[305.821505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.833669, "o", "9595104b94979c95\\r\\n\r\n"] +[305.833998, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.834195, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497047 (current time 26.7989637865)\r\n"] +[305.838139, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.850808, "o", "ffff528d8d04008d\\r\\n\r\n"] +[305.851076, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917655 (current time 26.798969068)\r\n"] +[305.855367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.867882, "o", "d100c980e4e4e4e4\\r\\n\r\n"] +[305.868259, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931425 (current time 26.798967691)\r\n"] +[305.872389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.885641, "o", "0bd5b2b2b2c2f2b2\\r\\n\r\n"] +[305.886104, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913285 (current time 26.798969505)\r\n"] +[305.889827, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.88995, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.903226, "o", "516b6b6b6b6b6b6b\\r\\n\r\n"] +[305.903446, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.903634, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491982 (current time 26.7989688515)\r\n"] +[305.906946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.90705, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.912647, "o", "8dd80b\\r\\n\r\n"] +[305.912931, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780838 (current time 26.7986799955)\r\n"] +[305.915025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.915143, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.922281, "o", "a8a8cbff\\r\\n\r\n"] +[305.922608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.922925, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999720458 (current time 26.7987403755)\r\n"] +[305.925231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[305.925382, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.938404, "o", "30a8ffa8a8a8a8a8\\r\\n\r\n"] +[305.938847, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.939125, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906435 (current time 26.79897019)\r\n"] +[305.942095, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.954414, "o", "3cff303132333435\\r\\n\r\n"] +[305.954767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[305.954973, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496805 (current time 26.7989640285)\r\n"] +[305.958131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.96614, "o", "d800d80080\\r\\n\r\n"] +[305.966612, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668514 (current time 26.7987923195)\r\n"] +[305.970669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.976416, "o", "e6a5d8\\r\\n\r\n"] +[305.976855, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997807455 (current time 26.798680088)\r\n"] +[305.979183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[305.989844, "o", "3333333333a5e9\\r\\n\r\n"] +[305.990161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995546615 (current time 26.798906172)\r\n"] +[305.992851, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.004911, "o", "3838383838cb3838\\r\\n\r\n"] +[306.005209, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972655 (current time 26.798963568)\r\n"] +[306.008183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.020989, "o", "5bfdbfa5fde0a595\\r\\n\r\n"] +[306.021233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883955 (current time 26.798972438)\r\n"] +[306.024834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.03698, "o", "fb30313233343536\\r\\n\r\n"] +[306.03737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.037475, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497995 (current time 26.7989628385)\r\n"] +[306.040453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.05396, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[306.054283, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[306.057452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.057592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.070378, "o", "32fbfbfbfbfb7272\\r\\n\r\n"] +[306.070707, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994884555 (current time 26.798972378)\r\n"] +[306.073943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.077954, "o", "40b1\\r\\n\r\n"] +[306.078348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840257 (current time 26.7986205765)\r\n"] +[306.080344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.080516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.090175, "o", "d9133fa57fd8\\r\\n\r\n"] +[306.090453, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.090662, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996077245 (current time 26.798853109)\r\n"] +[306.093111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.104981, "o", "1717171717171717\\r\\n\r\n"] +[306.105301, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.105645, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999105 (current time 26.798960923)\r\n"] +[306.108249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.108377, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.120863, "o", "3939393939393939\\r\\n\r\n"] +[306.121219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992025 (current time 26.798961631)\r\n"] +[306.124554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.127264, "o", "d8\\r\\n\r\n"] +[306.127668, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.12776, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968175 (current time 26.798564016)\r\n"] +[306.129663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.129814, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.142567, "o", "041e1e3031ffffff\\r\\n\r\n"] +[306.142967, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.14335, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908475 (current time 26.798969986)\r\n"] +[306.145924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.146056, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.158372, "o", "d80b667505ffff05\\r\\n\r\n"] +[306.158791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928785 (current time 26.798967955)\r\n"] +[306.161749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.161916, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.173791, "o", "8b00000064b8727b\\r\\n\r\n"] +[306.174234, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969415 (current time 26.798963892)\r\n"] +[306.176995, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.189222, "o", "d80b40401b034000\\r\\n\r\n"] +[306.189431, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.189702, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973305 (current time 26.798963503)\r\n"] +[306.192202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.192377, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.197846, "o", "ff7ff2\\r\\n\r\n"] +[306.198236, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997794755 (current time 26.798681358)\r\n"] +[306.200797, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.200888, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.205157, "o", "a1a2\\r\\n\r\n"] +[306.205553, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998391335 (current time 26.7986217)\r\n"] +[306.208078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.216577, "o", "8b75caa5cd\\r\\n\r\n"] +[306.217337, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996636765 (current time 26.798797157)\r\n"] +[306.22117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.22131, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.234637, "o", "dbdbdbdbdbdbdbf3\\r\\n\r\n"] +[306.234946, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994830295 (current time 26.798977804)\r\n"] +[306.238933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.250077, "o", "f0fe3031323c3a\\r\\n\r\n"] +[306.250447, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551466 (current time 26.7989093675)\r\n"] +[306.254614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.254768, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.266637, "o", "6162636465664141\\r\\n\r\n"] +[306.26694, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999065 (current time 26.798960927)\r\n"] +[306.271075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.283778, "o", "8cb80000ffe9b8b8\\r\\n\r\n"] +[306.284215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491871 (current time 26.7989689625)\r\n"] +[306.288235, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.300341, "o", "8989898989898930\\r\\n\r\n"] +[306.300779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986345 (current time 26.798962199)\r\n"] +[306.304864, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.316751, "o", "2020202020202020\\r\\n\r\n"] +[306.316882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.316899, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995011465 (current time 26.798959687)\r\n"] +[306.321183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.321259, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.332996, "o", "3031323334353637\\r\\n\r\n"] +[306.333522, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[306.337784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.337877, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.348819, "o", "280b405b405be9\\r\\n\r\n"] +[306.34923, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999552452 (current time 26.7989083815)\r\n"] +[306.353492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.353588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.366196, "o", "d80b40a5e9e9e9ea\\r\\n\r\n"] +[306.366431, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.366565, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490569 (current time 26.7989702645)\r\n"] +[306.371019, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.371196, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.383161, "o", "41f46d4361000041\\r\\n\r\n"] +[306.383578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981655 (current time 26.798962668)\r\n"] +[306.387871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.400176, "o", "c7386134363d3118\\r\\n\r\n"] +[306.400338, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.400468, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976605 (current time 26.798963173)\r\n"] +[306.404509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.404602, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.417246, "o", "7d7d7f0000007d1b\\r\\n\r\n"] +[306.417411, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.417662, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494586 (current time 26.7989662475)\r\n"] +[306.42154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.421604, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[306.421726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.434645, "o", "6f6f6f6721c0696e\\r\\n\r\n"] +[306.434861, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.43519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493794 (current time 26.7989670395)\r\n"] +[306.438896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.438994, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.451126, "o", "66007a6e67656565\\r\\n\r\n"] +[306.451539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497361 (current time 26.7989634725)\r\n"] +[306.455254, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.464423, "o", "000029705680\\r\\n\r\n"] +[306.464564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999614006 (current time 26.7988468275)\r\n"] +[306.467674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.480722, "o", "0400eaeaeaea10ea\\r\\n\r\n"] +[306.481124, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489129 (current time 26.7989717045)\r\n"] +[306.483941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.484082, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.496584, "o", "d80a40a50a40a5e9\\r\\n\r\n"] +[306.49695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934555 (current time 26.798967378)\r\n"] +[306.49944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.511612, "o", "39610b000000000b\\r\\n\r\n"] +[306.512115, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498701 (current time 26.7989621325)\r\n"] +[306.514625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.526488, "o", "6641414151416266\\r\\n\r\n"] +[306.526653, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.526845, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001105 (current time 26.798960723)\r\n"] +[306.529559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.529829, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.536671, "o", "f80b40e9\\r\\n\r\n"] +[306.536992, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972396 (current time 26.7987368735)\r\n"] +[306.539965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.551912, "o", "414f204f414f2060\\r\\n\r\n"] +[306.552281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968575 (current time 26.798963976)\r\n"] +[306.556101, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.556354, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.568241, "o", "270b0000002040a5\\r\\n\r\n"] +[306.568421, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498686 (current time 26.7989621475)\r\n"] +[306.572219, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.572334, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.580287, "o", "a501292929\\r\\n\r\n"] +[306.580627, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999669422 (current time 26.7987914115)\r\n"] +[306.582926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.583054, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.595038, "o", "30b9323230471d37\\r\\n\r\n"] +[306.595393, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497927 (current time 26.7989629065)\r\n"] +[306.597887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.59809, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.610583, "o", "0ebdc9c9c9c9c901\\r\\n\r\n"] +[306.611017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490545 (current time 26.7989702885)\r\n"] +[306.613569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.613681, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.625892, "o", "eaea3662790903d2\\r\\n\r\n"] +[306.626186, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.626356, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942295 (current time 26.798966604)\r\n"] +[306.62894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.629076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.640827, "o", "6675333333333321\\r\\n\r\n"] +[306.64117, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[306.644152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.644271, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.65699, "o", "ebfe0ca6f20c9e9e\\r\\n\r\n"] +[306.65729, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[306.6575, "o", "[tsffs info] Cancelling event with next time 2.999488359 (current time 26.7989724745)\r\n"] +[306.660363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.660531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.668646, "o", "d80b404141\\r\\n\r\n"] +[306.669147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996685825 (current time 26.798792251)\r\n"] +[306.673595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.673724, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.683463, "o", "2f2f0b40a5e9\\r\\n\r\n"] +[306.683767, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996080915 (current time 26.798852742)\r\n"] +[306.687937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.694824, "o", "5151eae9\\r\\n\r\n"] +[306.695084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723976 (current time 26.7987368575)\r\n"] +[306.697487, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.699961, "o", "78\\r\\n\r\n"] +[306.700345, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998978915 (current time 26.798562942)\r\n"] +[306.703876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.7042, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.716192, "o", "001a1a1a1a434343\\r\\n\r\n"] +[306.716423, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496183 (current time 26.7989646505)\r\n"] +[306.720632, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.720811, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[306.720939, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.726364, "o", "d80b42\\r\\n\r\n"] +[306.72674, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782126 (current time 26.7986787075)\r\n"] +[306.729055, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.729167, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.741417, "o", "8000b8b88000b8b8\\r\\n\r\n"] +[306.741803, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956295 (current time 26.798965204)\r\n"] +[306.74477, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.744896, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.75719, "o", "aa7a6e672139aa01\\r\\n\r\n"] +[306.757526, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493315 (current time 26.7989675185)\r\n"] +[306.760348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.773007, "o", "ddd8307f7f7f7f7f\\r\\n\r\n"] +[306.773413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949016 (current time 26.7989706735)\r\n"] +[306.776067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.784262, "o", "015140e9a5\\r\\n\r\n"] +[306.784653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668489 (current time 26.7987923445)\r\n"] +[306.78861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.788705, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.801475, "o", "ffffffff01395763\\r\\n\r\n"] +[306.801664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.801932, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902945 (current time 26.798970539)\r\n"] +[306.805451, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.805568, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[306.805769, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.818387, "o", "d3d3d3d3d30ea6a6\\r\\n\r\n"] +[306.818608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.818815, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909975 (current time 26.798969836)\r\n"] +[306.822579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.822679, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[306.82292, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.834949, "o", "7b696e6740343449\\r\\n\r\n"] +[306.835201, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[306.83529, "o", "[tsffs info] Cancelling event with next time 2.999497319 (current time 26.7989635145)\r\n"] +[306.838915, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.839036, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.85157, "o", "a590e5a56d6475a5\\r\\n\r\n"] +[306.851886, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.852185, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494085 (current time 26.7989667485)\r\n"] +[306.855655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.855811, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.868008, "o", "31a8a84141414141\\r\\n\r\n"] +[306.868228, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.868501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498066 (current time 26.7989627675)\r\n"] +[306.872076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.872179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[306.87234, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.884664, "o", "5ba0f0ce55555555\\r\\n\r\n"] +[306.885069, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.885184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942515 (current time 26.798966582)\r\n"] +[306.88885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.888945, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[306.889129, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.902289, "o", "9a6d6d6d6d6c6d6d\\r\\n\r\n"] +[306.902519, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.90292, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904145 (current time 26.798970419)\r\n"] +[306.906334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.906575, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.910577, "o", "ff30\\r\\n\r\n"] +[306.91089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389045 (current time 26.798621929)\r\n"] +[306.913137, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.925148, "o", "7a7a41414141417a\\r\\n\r\n"] +[306.925518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496843 (current time 26.7989639905)\r\n"] +[306.92841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.941022, "o", "ce7fffffff626262\\r\\n\r\n"] +[306.941413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994891605 (current time 26.798971673)\r\n"] +[306.944248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.952858, "o", "d8fee9a53f\\r\\n\r\n"] +[306.953243, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.953498, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663371 (current time 26.7987974625)\r\n"] +[306.956624, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[306.956754, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.961112, "o", "ffff\\r\\n\r\n"] +[306.961429, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998363745 (current time 26.798624459)\r\n"] +[306.963585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.963755, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.976981, "o", "2cfcfcfcfcfcfcfc\\r\\n\r\n"] +[306.97727, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[306.977524, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948252 (current time 26.7989783135)\r\n"] +[306.980026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.980155, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[306.992696, "o", "d800232323237fa5\\r\\n\r\n"] +[306.993028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496821 (current time 26.7989640125)\r\n"] +[306.995533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[306.995804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.007648, "o", "0016161614010c01\\r\\n\r\n"] +[307.007965, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996145 (current time 26.798961219)\r\n"] +[307.010741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.011025, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.023148, "o", "3839617e637ac7c7\\r\\n\r\n"] +[307.023454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949725 (current time 26.798965861)\r\n"] +[307.026191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.026431, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.038352, "o", "a5e9303132333435\\r\\n\r\n"] +[307.038653, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.038908, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497917 (current time 26.7989629165)\r\n"] +[307.041564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.041762, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.049933, "o", "d801ff8000\\r\\n\r\n"] +[307.05024, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996673145 (current time 26.798793519)\r\n"] +[307.054318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.054415, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.064012, "o", "e8e8d2e83538\\r\\n\r\n"] +[307.064287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999608732 (current time 26.7988521015)\r\n"] +[307.067112, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.067223, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.07977, "o", "595176a8a8a8a8a8\\r\\n\r\n"] +[307.080107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949388 (current time 26.7989669535)\r\n"] +[307.082585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.094471, "o", "3464366263646566\\r\\n\r\n"] +[307.094813, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997015 (current time 26.798961132)\r\n"] +[307.097287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.110412, "o", "d8ffffaeaeaeaeae\\r\\n\r\n"] +[307.110738, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.111107, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999482603 (current time 26.7989782305)\r\n"] +[307.113614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.126726, "o", "bcbcbcbcbcbcbcbc\\r\\n\r\n"] +[307.126967, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.127067, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994820825 (current time 26.798978751)\r\n"] +[307.12976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.1416, "o", "8686868686868686\\r\\n\r\n"] +[307.141926, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988865 (current time 26.798961947)\r\n"] +[307.144997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.145239, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.156435, "o", "66cfd0cfcf667a\\r\\n\r\n"] +[307.156864, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.156978, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547432 (current time 26.7989134015)\r\n"] +[307.159278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.172019, "o", "d800090909d80009\\r\\n\r\n"] +[307.172461, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978225 (current time 26.798963011)\r\n"] +[307.175023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.183831, "o", "bf0bbfa5e9\\r\\n\r\n"] +[307.184141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999662562 (current time 26.7987982715)\r\n"] +[307.187914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.188183, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.193763, "o", "49b7ff\\r\\n\r\n"] +[307.194025, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997806175 (current time 26.798680216)\r\n"] +[307.196345, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.208549, "o", "d80b40a5e9303132\\r\\n\r\n"] +[307.209015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957105 (current time 26.798965123)\r\n"] +[307.212858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.218577, "o", "0bf20b\\r\\n\r\n"] +[307.218913, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781159 (current time 26.7986796745)\r\n"] +[307.22215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.23459, "o", "d80b40a5e9303132\\r\\n\r\n"] +[307.234799, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957105 (current time 26.798965123)\r\n"] +[307.238602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.238704, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.251512, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[307.251746, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.251956, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[307.255545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.255691, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.268097, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[307.268439, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.268677, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[307.272345, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.272504, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.300225, "o", "d80b40a5e9\\r\\n\r\n"] +[307.301498, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[307.30644, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.318606, "o", "d930313233343536\\r\\n\r\n"] +[307.318985, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.31913, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990315 (current time 26.798961802)\r\n"] +[307.322505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.322715, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.322903, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.330757, "o", "00030003e8\\r\\n\r\n"] +[307.331076, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996699605 (current time 26.798790873)\r\n"] +[307.333844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.333981, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.346155, "o", "41e80341414141be\\r\\n\r\n"] +[307.346359, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.346537, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968975 (current time 26.798963936)\r\n"] +[307.34891, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.349021, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.361728, "o", "e57bc7fe85deaf00\\r\\n\r\n"] +[307.362149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994894695 (current time 26.798971364)\r\n"] +[307.365857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.365927, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.378243, "o", "074062fe413233cc\\r\\n\r\n"] +[307.378566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956335 (current time 26.7989652)\r\n"] +[307.381769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.381964, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.386375, "o", "1bcd\\r\\n\r\n"] +[307.386637, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99983787 (current time 26.7986229635)\r\n"] +[307.390354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.390463, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.402316, "o", "5263414166212121\\r\\n\r\n"] +[307.402742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003625 (current time 26.798960471)\r\n"] +[307.406874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.406966, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.407105, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.41534, "o", "d80b40b7ff\\r\\n\r\n"] +[307.415744, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996648575 (current time 26.798795976)\r\n"] +[307.420091, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.420216, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.426892, "o", "0b404040\\r\\n\r\n"] +[307.427269, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997267565 (current time 26.798734077)\r\n"] +[307.430331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.430472, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.442374, "o", "e803000030313233\\r\\n\r\n"] +[307.442633, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.442795, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995575 (current time 26.798961276)\r\n"] +[307.44537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.445534, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.457796, "o", "ff7f010010ff63ff\\r\\n\r\n"] +[307.458066, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.458243, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919885 (current time 26.798968845)\r\n"] +[307.461125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.461261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.472858, "o", "6263646566414141\\r\\n\r\n"] +[307.473177, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.473337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999545 (current time 26.798960879)\r\n"] +[307.475845, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.476023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.487826, "o", "040000791b323334\\r\\n\r\n"] +[307.488118, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.488216, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499388 (current time 26.7989614455)\r\n"] +[307.491018, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.491198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.494945, "o", "0064\\r\\n\r\n"] +[307.49531, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.495385, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413455 (current time 26.798619488)\r\n"] +[307.497381, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.497588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.510405, "o", "d8e9e9e9e9e9e9e9\\r\\n\r\n"] +[307.510688, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.510815, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896485 (current time 26.798971185)\r\n"] +[307.513439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.513688, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.525905, "o", "757a41f0f0302032\\r\\n\r\n"] +[307.526114, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.526228, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969155 (current time 26.798963918)\r\n"] +[307.528862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.541321, "o", "d80b40d80bd8a5c9\\r\\n\r\n"] +[307.541591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[307.54163, "o", "[tsffs info] Cancelling event with next time 2.9994919915 (current time 26.798968842)\r\n"] +[307.545628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.545689, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.545882, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.552833, "o", "d80b40a5\\r\\n\r\n"] +[307.553161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997242025 (current time 26.798736631)\r\n"] +[307.556388, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.556544, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.569144, "o", "75cf32425fff7fff\\r\\n\r\n"] +[307.569408, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.56975, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490331 (current time 26.7989705025)\r\n"] +[307.573916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.574077, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.574226, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.58755, "o", "0e0e0e0e0e0de2de\\r\\n\r\n"] +[307.587922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994900705 (current time 26.798970763)\r\n"] +[307.591037, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.603399, "o", "363435c97e6e3636\\r\\n\r\n"] +[307.603601, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496193 (current time 26.7989646405)\r\n"] +[307.606698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.606888, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.618822, "o", "d80b403031323334\\r\\n\r\n"] +[307.619053, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.619213, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498187 (current time 26.7989626465)\r\n"] +[307.622836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.623149, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.623228, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.634932, "o", "3031303132333435\\r\\n\r\n"] +[307.635331, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005375 (current time 26.798960296)\r\n"] +[307.639002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.639165, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.639221, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.645948, "o", "0140a5e9\\r\\n\r\n"] +[307.646252, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.6463, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997253145 (current time 26.798735519)\r\n"] +[307.64852, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.64874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.66061, "o", "75857a5e66913041\\r\\n\r\n"] +[307.660946, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.661142, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974455 (current time 26.798963388)\r\n"] +[307.663688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.67614, "o", "0b7ab7b7b7e80300\\r\\n\r\n"] +[307.676413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933335 (current time 26.7989675)\r\n"] +[307.679123, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.67934, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.691624, "o", "d84025e9d80b4025\\r\\n\r\n"] +[307.691895, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.692201, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495443 (current time 26.7989653905)\r\n"] +[307.695208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.695306, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.707742, "o", "affe781b03d2f3a8\\r\\n\r\n"] +[307.708007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907675 (current time 26.798970066)\r\n"] +[307.710966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.711236, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.723011, "o", "78367836362d3031\\r\\n\r\n"] +[307.723281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[307.723518, "o", "[tsffs info] Cancelling event with next time 2.9994986815 (current time 26.798962152)\r\n"] +[307.726194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.737958, "o", "3030313233343536\\r\\n\r\n"] +[307.738244, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[307.742259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.742487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.754876, "o", "0100e0e0e0e8e0e0\\r\\n\r\n"] +[307.755167, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936825 (current time 26.798967151)\r\n"] +[307.759215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.759348, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[307.759542, "o", "[tsffs info] Resuming simulation\r\n"] +[307.766202, "o", "0b40a5c9\\r\\n\r\n"] +[307.766557, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724189 (current time 26.7987366445)\r\n"] +[307.771574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.771768, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.782827, "o", "e9d80b40a540e9\\r\\n\r\n"] +[307.783085, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551102 (current time 26.7989097315)\r\n"] +[307.788053, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.788289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[307.788498, "o", "[tsffs info] Resuming simulation\r\n"] +[307.800567, "o", "d830313233343536\\r\\n\r\n"] +[307.800628, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.800871, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990605 (current time 26.798961773)\r\n"] +[307.804999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.805166, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.817486, "o", "d90bfc9430313233\\r\\n\r\n"] +[307.817803, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495576 (current time 26.7989652575)\r\n"] +[307.821716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.821763, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.834225, "o", "17e9e97a31323334\\r\\n\r\n"] +[307.834657, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.834769, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964385 (current time 26.798964395)\r\n"] +[307.838477, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.838543, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.850742, "o", "1f1f303132333435\\r\\n\r\n"] +[307.851009, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498053 (current time 26.7989627805)\r\n"] +[307.855028, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.855114, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.867984, "o", "c0c0b2a5dbd80bc0\\r\\n\r\n"] +[307.86814, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.868383, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490214 (current time 26.7989706195)\r\n"] +[307.872112, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.872181, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.884174, "o", "66414141008030c9\\r\\n\r\n"] +[307.884477, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.884713, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949917 (current time 26.7989616635)\r\n"] +[307.888281, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.888393, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[307.888564, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.892463, "o", "4030\\r\\n\r\n"] +[307.89288, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841414 (current time 26.7986194195)\r\n"] +[307.895249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.89538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.904896, "o", "da0bf4020213\\r\\n\r\n"] +[307.905218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996096585 (current time 26.798851175)\r\n"] +[307.907983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.908104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.921227, "o", "d80b40f3a8cbf10f\\r\\n\r\n"] +[307.921613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491005 (current time 26.7989698285)\r\n"] +[307.924761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.924876, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.930097, "o", "404747\\r\\n\r\n"] +[307.930485, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784274 (current time 26.7986765595)\r\n"] +[307.932421, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.93255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.94428, "o", "7330313232313233\\r\\n\r\n"] +[307.944593, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.94498, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004755 (current time 26.798960358)\r\n"] +[307.94762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.959969, "o", "02020202025ba4a4\\r\\n\r\n"] +[307.960269, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974155 (current time 26.798963418)\r\n"] +[307.962877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[307.963037, "o", "[tsffs info] Resuming simulation\r\n"] +[307.969961, "o", "0b40a57f\\r\\n\r\n"] +[307.970341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724163 (current time 26.7987366705)\r\n"] +[307.973274, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[307.973402, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[307.985388, "o", "5b235b4010301e32\\r\\n\r\n"] +[307.985699, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[307.985888, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971415 (current time 26.798963692)\r\n"] +[307.98946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[307.989567, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.00284, "o", "0bfcd0d0d0d0d0d0\\r\\n\r\n"] +[308.003132, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.003423, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490338 (current time 26.7989704955)\r\n"] +[308.006613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.006744, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.020182, "o", "f0f0f0f0f0f0f0f0\\r\\n\r\n"] +[308.020459, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.020734, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[308.023686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.023716, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.033455, "o", "d80c0c40a5e9\\r\\n\r\n"] +[308.033916, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.033998, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996081 (current time 26.7988527335)\r\n"] +[308.037966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.038023, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.05086, "o", "fbfb5a21415a217a\\r\\n\r\n"] +[308.051186, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[308.051244, "o", "[tsffs info] Cancelling event with next time 2.999492283 (current time 26.7989685505)\r\n"] +[308.054916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.055216, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.062075, "o", "cbf107e9\\r\\n\r\n"] +[308.062383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722805 (current time 26.7987380285)\r\n"] +[308.064626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.076409, "o", "7676767676767620\\r\\n\r\n"] +[308.076759, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499267 (current time 26.7989615665)\r\n"] +[308.079379, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.083597, "o", "7ef0\\r\\n\r\n"] +[308.083911, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.084128, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388305 (current time 26.798622003)\r\n"] +[308.087652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.087865, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.087978, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.099829, "o", "0946464646464646\\r\\n\r\n"] +[308.100206, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499648 (current time 26.7989611855)\r\n"] +[308.104326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.104458, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.104522, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.114123, "o", "ffff30313233\\r\\n\r\n"] +[308.114314, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.114502, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996092255 (current time 26.798851608)\r\n"] +[308.1175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.117675, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.128418, "o", "5c5c0000000133\\r\\n\r\n"] +[308.12869, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.128843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555342 (current time 26.7989054915)\r\n"] +[308.131166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.13135, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.138127, "o", "d84040e9\\r\\n\r\n"] +[308.138467, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.13863, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997251175 (current time 26.798735716)\r\n"] +[308.141201, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.141466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.145414, "o", "98ea\\r\\n\r\n"] +[308.145664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.145882, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838716 (current time 26.7986221175)\r\n"] +[308.147746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.147897, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.159566, "o", "3738636441416666\\r\\n\r\n"] +[308.159825, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.160105, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499742 (current time 26.7989610915)\r\n"] +[308.162563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.1627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.174559, "o", "7a796e9161664139\\r\\n\r\n"] +[308.174893, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.175034, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972465 (current time 26.798963587)\r\n"] +[308.177835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.17799, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.190216, "o", "7a867a7a7a7a7a79\\r\\n\r\n"] +[308.190491, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.1906, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[308.190646, "o", "[tsffs info] Cancelling event with next time 2.9994926805 (current time 26.798968153)\r\n"] +[308.193424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.193625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.206136, "o", "7a7a69d80b40a516\\r\\n\r\n"] +[308.206442, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942625 (current time 26.798966571)\r\n"] +[308.209157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.209289, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.221128, "o", "4d66303132333435\\r\\n\r\n"] +[308.221435, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.22172, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499084 (current time 26.7989617495)\r\n"] +[308.224704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.224842, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.236623, "o", "fb40303132333435\\r\\n\r\n"] +[308.236793, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.236938, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498121 (current time 26.7989627125)\r\n"] +[308.240041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.240164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.252232, "o", "14143a3a647f6633\\r\\n\r\n"] +[308.252492, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.252679, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949662 (current time 26.7989642135)\r\n"] +[308.256167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.256406, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.256577, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.264606, "o", "00fa0023fa\\r\\n\r\n"] +[308.264953, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.26506, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666476 (current time 26.7987943575)\r\n"] +[308.268132, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.280932, "o", "03fcfcfc68e8ff7f\\r\\n\r\n"] +[308.281203, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.281323, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487992 (current time 26.7989728415)\r\n"] +[308.284504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.2847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.296643, "o", "6e6721696e672138\\r\\n\r\n"] +[308.297014, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.297161, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497276 (current time 26.7989635575)\r\n"] +[308.299367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.299571, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.311507, "o", "31323334f5f53536\\r\\n\r\n"] +[308.311865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977215 (current time 26.798963112)\r\n"] +[308.314417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.314595, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.327103, "o", "fdb80e1b1c1c1c7d\\r\\n\r\n"] +[308.327409, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489891 (current time 26.7989709425)\r\n"] +[308.330002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.330358, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.342448, "o", "9e7793a96465696e\\r\\n\r\n"] +[308.342734, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.343118, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949572 (current time 26.7989651135)\r\n"] +[308.345914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.3461, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.357685, "o", "414134343434347a\\r\\n\r\n"] +[308.357982, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.358272, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990765 (current time 26.798961757)\r\n"] +[308.361124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.361333, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.368159, "o", "0b7f14a5\\r\\n\r\n"] +[308.368497, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.368763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997241305 (current time 26.798736703)\r\n"] +[308.372113, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.372205, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.372477, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.384166, "o", "3030306666106630\\r\\n\r\n"] +[308.384564, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.384742, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500359 (current time 26.7989604745)\r\n"] +[308.388373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.388539, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.401887, "o", "bebededededebebe\\r\\n\r\n"] +[308.402327, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994815345 (current time 26.798979299)\r\n"] +[308.405853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.405922, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.406185, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.418073, "o", "41f1e14541414166\\r\\n\r\n"] +[308.418504, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978935 (current time 26.79896294)\r\n"] +[308.422041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.422198, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.434395, "o", "7777777740fb3031\\r\\n\r\n"] +[308.434752, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497377 (current time 26.7989634565)\r\n"] +[308.438441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.438674, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.447069, "o", "d8e900ffd8\\r\\n\r\n"] +[308.447494, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996645975 (current time 26.798796236)\r\n"] +[308.450077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.462162, "o", "d80b303132333435\\r\\n\r\n"] +[308.462358, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980825 (current time 26.798962751)\r\n"] +[308.464734, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.464945, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.477274, "o", "81ff8dda25757a85\\r\\n\r\n"] +[308.477663, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492717 (current time 26.7989681165)\r\n"] +[308.480305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.480478, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.492818, "o", "17dadada30313233\\r\\n\r\n"] +[308.493037, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.49328, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949359 (current time 26.7989672435)\r\n"] +[308.495789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.495998, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.504122, "o", "40a50b28e9\\r\\n\r\n"] +[308.504564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996672315 (current time 26.798793602)\r\n"] +[308.507629, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.507724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.519653, "o", "619f61010030619a\\r\\n\r\n"] +[308.519942, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.520099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498007 (current time 26.7989628265)\r\n"] +[308.523149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.523438, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.523616, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.535905, "o", "672140a5e8e940a5\\r\\n\r\n"] +[308.536177, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.536346, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953865 (current time 26.798965447)\r\n"] +[308.539841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.540016, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.551833, "o", "6431323334353637\\r\\n\r\n"] +[308.552162, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950008 (current time 26.7989607535)\r\n"] +[308.555819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.555944, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.556156, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.567949, "o", "d830313233343536\\r\\n\r\n"] +[308.568364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990605 (current time 26.798961773)\r\n"] +[308.572066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.572222, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.580286, "o", "ff1f182020\\r\\n\r\n"] +[308.580711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966731 (current time 26.7987935235)\r\n"] +[308.583298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.59541, "o", "6453303132333435\\r\\n\r\n"] +[308.595751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500278 (current time 26.7989605555)\r\n"] +[308.598202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.598273, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.610195, "o", "30303030303030da\\r\\n\r\n"] +[308.61059, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498601 (current time 26.7989622325)\r\n"] +[308.613174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.613383, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.625179, "o", "1031323336353e37\\r\\n\r\n"] +[308.625561, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991115 (current time 26.798961722)\r\n"] +[308.628368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.628478, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.640846, "o", "d8a5e93031323b34\\r\\n\r\n"] +[308.641207, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955545 (current time 26.798965279)\r\n"] +[308.643918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.644058, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.656351, "o", "a8373737a8a8a8a8\\r\\n\r\n"] +[308.656659, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939415 (current time 26.798966892)\r\n"] +[308.659609, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.671553, "o", "9e63303132339e63\\r\\n\r\n"] +[308.67187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976585 (current time 26.798963175)\r\n"] +[308.674997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.675104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.687173, "o", "3031cd4734353637\\r\\n\r\n"] +[308.687533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497775 (current time 26.7989630585)\r\n"] +[308.690694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.690831, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.702804, "o", "4130313233cd3564\\r\\n\r\n"] +[308.703096, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.703185, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498041 (current time 26.7989627925)\r\n"] +[308.706467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.706563, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.719481, "o", "74744074eaeaeaea\\r\\n\r\n"] +[308.71973, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.720073, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490801 (current time 26.7989700325)\r\n"] +[308.723313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.723428, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.723521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.735311, "o", "3232323232323232\\r\\n\r\n"] +[308.735492, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.735709, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005225 (current time 26.798960311)\r\n"] +[308.739097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.739242, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.752044, "o", "c2c2c2c2c2c2c2c2\\r\\n\r\n"] +[308.752331, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.752463, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912665 (current time 26.798969567)\r\n"] +[308.756194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.756255, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.756428, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.764721, "o", "d80b41bae9\\r\\n\r\n"] +[308.765087, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996649255 (current time 26.798795908)\r\n"] +[308.768269, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.770864, "o", "16\\r\\n\r\n"] +[308.771299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980795 (current time 26.798562754)\r\n"] +[308.773991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.786505, "o", "d80b40be30313233\\r\\n\r\n"] +[308.786639, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958815 (current time 26.798964952)\r\n"] +[308.789858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.789967, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.802914, "o", "ffc5c5c5c57fffff\\r\\n\r\n"] +[308.80318, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486838 (current time 26.7989739955)\r\n"] +[308.80651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.806725, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.806793, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.818527, "o", "29703a3031333334\\r\\n\r\n"] +[308.818898, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.819004, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499192 (current time 26.7989616415)\r\n"] +[308.822506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.822669, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.835448, "o", "29705666ff3a8b9e\\r\\n\r\n"] +[308.835763, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.836044, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938045 (current time 26.798967029)\r\n"] +[308.839655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.839768, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.83996, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.852475, "o", "b6b6b6b6b6b63030\\r\\n\r\n"] +[308.852703, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933325 (current time 26.798967501)\r\n"] +[308.856271, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.856501, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.86439, "o", "d8e8030000\\r\\n\r\n"] +[308.864892, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996685975 (current time 26.798792236)\r\n"] +[308.867885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.867996, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.879925, "o", "d8696e6721393738\\r\\n\r\n"] +[308.880399, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497119 (current time 26.7989637145)\r\n"] +[308.88279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[308.882905, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.88821, "o", "280766\\r\\n\r\n"] +[308.888663, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.888749, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784208 (current time 26.7986766255)\r\n"] +[308.891403, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.899691, "o", "510bbc5ae9\\r\\n\r\n"] +[308.900172, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966498 (current time 26.7987958535)\r\n"] +[308.904148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.904289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.915362, "o", "580bdc0b40f1e9\\r\\n\r\n"] +[308.915668, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995501105 (current time 26.798910723)\r\n"] +[308.919432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.919667, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.931551, "o", "4141414f41414141\\r\\n\r\n"] +[308.931889, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499263 (current time 26.7989615705)\r\n"] +[308.935317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.935377, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[308.935502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.947267, "o", "6465664141414141\\r\\n\r\n"] +[308.94763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500118 (current time 26.7989607155)\r\n"] +[308.950498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.962152, "o", "0000001031323334\\r\\n\r\n"] +[308.962471, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009745 (current time 26.798959859)\r\n"] +[308.964901, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.969048, "o", "7a00\\r\\n\r\n"] +[308.969429, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840229 (current time 26.7986206045)\r\n"] +[308.972589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[308.984531, "o", "da30313233343530\\r\\n\r\n"] +[308.984802, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[308.98504, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982125 (current time 26.798962621)\r\n"] +[308.988607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[308.988781, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[308.988971, "o", "[tsffs info] Resuming simulation\r\n"] +[308.997467, "o", "ef0bf0a5e9\\r\\n\r\n"] +[308.998034, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996636875 (current time 26.798797146)\r\n"] +[309.001077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.001206, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.013393, "o", "9ee5373839616263\\r\\n\r\n"] +[309.013692, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.013917, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497254 (current time 26.7989635795)\r\n"] +[309.016392, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.016531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.028677, "o", "371ac761f0303132\\r\\n\r\n"] +[309.029208, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496895 (current time 26.7989639385)\r\n"] +[309.0318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.044088, "o", "270b40a5d8d8d8d8\\r\\n\r\n"] +[309.044525, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929765 (current time 26.798967857)\r\n"] +[309.047012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.0471, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.059346, "o", "04da3340040404ff\\r\\n\r\n"] +[309.059809, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.059906, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958905 (current time 26.798964943)\r\n"] +[309.06251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.062587, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.074419, "o", "41a8e13031323334\\r\\n\r\n"] +[309.074822, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.074969, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981105 (current time 26.798962723)\r\n"] +[309.077658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.077817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.090469, "o", "d800ff3a8b9ee59e\\r\\n\r\n"] +[309.090906, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.09103, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490475 (current time 26.7989703585)\r\n"] +[309.093818, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.09394, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.106309, "o", "d5d54b8000a0a1a0\\r\\n\r\n"] +[309.106766, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[309.106842, "o", "[tsffs info] Cancelling event with next time 2.9994937525 (current time 26.798967081)\r\n"] +[309.109333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.109534, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.12154, "o", "0e010000100f0e0e\\r\\n\r\n"] +[309.122059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.122182, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496375 (current time 26.7989644585)\r\n"] +[309.125094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.12517, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.137132, "o", "d8d80b0034413536\\r\\n\r\n"] +[309.137454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496763 (current time 26.7989640705)\r\n"] +[309.140426, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.140614, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.153327, "o", "300b40a5cbcbcbcb\\r\\n\r\n"] +[309.153787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.153935, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994891435 (current time 26.79897169)\r\n"] +[309.15679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.156921, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.169519, "o", "ff0029705666ff3a\\r\\n\r\n"] +[309.169936, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940885 (current time 26.798966745)\r\n"] +[309.17321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.173352, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.173523, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.185747, "o", "01f94366757a7a69\\r\\n\r\n"] +[309.186182, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.186226, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961665 (current time 26.798964667)\r\n"] +[309.189759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.189797, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.189915, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.194022, "o", "efb0\\r\\n\r\n"] +[309.194386, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.194406, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998378045 (current time 26.798623029)\r\n"] +[309.196708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.196812, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.208812, "o", "585866666658ffa5\\r\\n\r\n"] +[309.209131, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.209362, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495839 (current time 26.7989649945)\r\n"] +[309.211978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.21219, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.223952, "o", "cf300e0000010001\\r\\n\r\n"] +[309.224289, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.224697, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497621 (current time 26.7989632125)\r\n"] +[309.227317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.227501, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.233742, "o", "00000100\\r\\n\r\n"] +[309.234214, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.234416, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999728222 (current time 26.7987326115)\r\n"] +[309.237805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.237915, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.237933, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.250786, "o", "ecff7f8ba2e53031\\r\\n\r\n"] +[309.251118, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.251147, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490754 (current time 26.7989700795)\r\n"] +[309.254902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.255043, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.255229, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.267144, "o", "9a4141e830316465\\r\\n\r\n"] +[309.267338, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.267536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497741 (current time 26.7989630925)\r\n"] +[309.271491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.271534, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.27183, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.283645, "o", "8383838383838383\\r\\n\r\n"] +[309.284015, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.284207, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994345 (current time 26.798961399)\r\n"] +[309.28793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.288054, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.300827, "o", "a8a8c9a9a8cbf10e\\r\\n\r\n"] +[309.301222, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.301491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994895435 (current time 26.79897129)\r\n"] +[309.304976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.305038, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[309.305259, "o", "[tsffs info] Resuming simulation\r\n"] +[309.31302, "o", "006440a540\\r\\n\r\n"] +[309.313497, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996698345 (current time 26.798790999)\r\n"] +[309.315682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.325365, "o", "d8a56675a5e9\\r\\n\r\n"] +[309.325793, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999608764 (current time 26.7988520695)\r\n"] +[309.328364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.340181, "o", "c700003204040404\\r\\n\r\n"] +[309.340492, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[309.340761, "o", "[tsffs info] Cancelling event with next time 2.9994996445 (current time 26.798961189)\r\n"] +[309.343386, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.343582, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.355949, "o", "c9c9c9c941599a66\\r\\n\r\n"] +[309.356132, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.35636, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935915 (current time 26.798967242)\r\n"] +[309.358878, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.359028, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.370744, "o", "6363636363657586\\r\\n\r\n"] +[309.371151, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.37132, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949955 (current time 26.7989612835)\r\n"] +[309.374357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.374498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.378322, "o", "1e00\\r\\n\r\n"] +[309.378819, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402785 (current time 26.798620555)\r\n"] +[309.380695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.380837, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.392804, "o", "646464f2f1ae4000\\r\\n\r\n"] +[309.39314, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.393383, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955895 (current time 26.798965244)\r\n"] +[309.395984, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.396134, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.408756, "o", "d454c2c23ec2c284\\r\\n\r\n"] +[309.409083, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.409304, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932055 (current time 26.798967628)\r\n"] +[309.41223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.412345, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.424162, "o", "535353535353532b\\r\\n\r\n"] +[309.424422, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.424732, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989045 (current time 26.798961929)\r\n"] +[309.427305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.427369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.438617, "o", "cc3fd8f4bfa53f\\r\\n\r\n"] +[309.438977, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.439182, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995463565 (current time 26.798914477)\r\n"] +[309.441876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.441956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.453147, "o", "01d79e9e9e9e9e\\r\\n\r\n"] +[309.453512, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.45353, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999549296 (current time 26.7989115375)\r\n"] +[309.456817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.456958, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.468945, "o", "34353637373737c8\\r\\n\r\n"] +[309.46933, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.469453, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498535 (current time 26.7989622985)\r\n"] +[309.472928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.473072, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.485069, "o", "6528283637383961\\r\\n\r\n"] +[309.485497, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499597 (current time 26.7989612365)\r\n"] +[309.48896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.489036, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.497539, "o", "fca8a8a556\\r\\n\r\n"] +[309.49786, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664715 (current time 26.7987961185)\r\n"] +[309.500962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.501055, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.50812, "o", "80010040\\r\\n\r\n"] +[309.508535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727933 (current time 26.7987329005)\r\n"] +[309.51116, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.511208, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.517768, "o", "00010000\\r\\n\r\n"] +[309.518094, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.518457, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999728222 (current time 26.7987326115)\r\n"] +[309.52181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.521903, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.534166, "o", "a5026d6d6d040002\\r\\n\r\n"] +[309.534511, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.534639, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495874 (current time 26.7989649595)\r\n"] +[309.538311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.538444, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.550924, "o", "ebebeb4141414141\\r\\n\r\n"] +[309.551189, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.551525, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934815 (current time 26.798967352)\r\n"] +[309.555029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.555148, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.563305, "o", "280b40a5e9\\r\\n\r\n"] +[309.563705, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996672315 (current time 26.798793602)\r\n"] +[309.566176, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.566432, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.578703, "o", "aa2caa0000000000\\r\\n\r\n"] +[309.57918, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495553 (current time 26.7989652805)\r\n"] +[309.581462, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.581584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.594294, "o", "d8d80bd80bbfa5e9\\r\\n\r\n"] +[309.594658, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489539 (current time 26.7989712945)\r\n"] +[309.597543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.609868, "o", "68686871cbf107c9\\r\\n\r\n"] +[309.610046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949575 (current time 26.798965876)\r\n"] +[309.612847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.612942, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.62381, "o", "d80b40a50b25a5\\r\\n\r\n"] +[309.624131, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995515065 (current time 26.798909327)\r\n"] +[309.62694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.632313, "o", "40a5e9\\r\\n\r\n"] +[309.632678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782015 (current time 26.7986788185)\r\n"] +[309.636397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.636521, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.636633, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.648496, "o", "f851515151515131\\r\\n\r\n"] +[309.648832, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990325 (current time 26.798961801)\r\n"] +[309.652787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.652888, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[309.653066, "o", "[tsffs info] Resuming simulation\r\n"] +[309.665302, "o", "800000000d0d0d0d\\r\\n\r\n"] +[309.665584, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949639 (current time 26.7989644435)\r\n"] +[309.669485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.669581, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.681629, "o", "80779a21304f3232\\r\\n\r\n"] +[309.681917, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.682113, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497802 (current time 26.7989630315)\r\n"] +[309.685618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.685746, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.697894, "o", "b6b6363636363636\\r\\n\r\n"] +[309.698198, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975375 (current time 26.798963296)\r\n"] +[309.701708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.701815, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.702, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.714132, "o", "88d80bd80b404040\\r\\n\r\n"] +[309.714439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495619 (current time 26.7989652145)\r\n"] +[309.71747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.717547, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.729431, "o", "8c66666666666666\\r\\n\r\n"] +[309.729709, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.73005, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498106 (current time 26.7989627275)\r\n"] +[309.732415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.732586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.740635, "o", "f6f440a562\\r\\n\r\n"] +[309.741016, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[309.741046, "o", "[tsffs info] Cancelling event with next time 2.999667124 (current time 26.7987937095)\r\n"] +[309.743942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.744124, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.75632, "o", "0a40e3f84ef8215e\\r\\n\r\n"] +[309.756614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.757016, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493083 (current time 26.7989677505)\r\n"] +[309.759506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.771913, "o", "f0f0f0f0f0f10569\\r\\n\r\n"] +[309.772091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.772347, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493235 (current time 26.7989675985)\r\n"] +[309.775088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.775369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.788035, "o", "8f8f8f8f8f8f8f8f\\r\\n\r\n"] +[309.78845, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896265 (current time 26.798971207)\r\n"] +[309.791557, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.791691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.7943, "o", "dd\\r\\n\r\n"] +[309.794815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998957575 (current time 26.798565076)\r\n"] +[309.796684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.796898, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.809222, "o", "869e9ebf21312021\\r\\n\r\n"] +[309.809549, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.809794, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495402 (current time 26.7989654315)\r\n"] +[309.812452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.812615, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.824391, "o", "7830313233343536\\r\\n\r\n"] +[309.824687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001345 (current time 26.798960699)\r\n"] +[309.827447, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.827734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.836003, "o", "f710fe0040\\r\\n\r\n"] +[309.836427, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996673915 (current time 26.798793442)\r\n"] +[309.839687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.839759, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.839934, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.852109, "o", "4141414141414141\\r\\n\r\n"] +[309.852483, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.852748, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[309.856305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.856372, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.865069, "o", "ffffffffff\\r\\n\r\n"] +[309.865496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996585465 (current time 26.798802287)\r\n"] +[309.869052, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.869213, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.876618, "o", "d80bbfe9\\r\\n\r\n"] +[309.876748, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997216055 (current time 26.798739228)\r\n"] +[309.87924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.891033, "o", "0909093031323334\\r\\n\r\n"] +[309.891324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002705 (current time 26.798960563)\r\n"] +[309.89427, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.894433, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.907267, "o", "30fafbf8223e3031\\r\\n\r\n"] +[309.907473, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.907642, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933595 (current time 26.798967474)\r\n"] +[309.910548, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.910703, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.923126, "o", "a35d5cee643937a1\\r\\n\r\n"] +[309.92358, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.923786, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930105 (current time 26.798967823)\r\n"] +[309.92627, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.926427, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[309.926597, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.93483, "o", "c9c900a5e9\\r\\n\r\n"] +[309.935166, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[309.935559, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996658685 (current time 26.798794965)\r\n"] +[309.939205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[309.939446, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.946247, "o", "720000fa\\r\\n\r\n"] +[309.946645, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997255345 (current time 26.798735299)\r\n"] +[309.949177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.961409, "o", "4242007b62171117\\r\\n\r\n"] +[309.961682, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992135 (current time 26.79896162)\r\n"] +[309.964273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.976392, "o", "d830313233343536\\r\\n\r\n"] +[309.976751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990605 (current time 26.798961773)\r\n"] +[309.979786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[309.988206, "o", "e97f00a5e9\\r\\n\r\n"] +[309.988581, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[309.98881, "o", "[tsffs info] Cancelling event with next time 2.999665798 (current time 26.7987950355)\r\n"] +[309.99134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[309.991546, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.003653, "o", "66757a7a696e6c17\\r\\n\r\n"] +[310.003976, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[310.007128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.016666, "o", "40a8e9d80b40\\r\\n\r\n"] +[310.017092, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996092035 (current time 26.79885163)\r\n"] +[310.021034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.021135, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.029533, "o", "bef540a5e9\\r\\n\r\n"] +[310.029879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664768 (current time 26.7987960655)\r\n"] +[310.033334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.033468, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.045935, "o", "a2a2c7c76602007a\\r\\n\r\n"] +[310.046161, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.04634, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945715 (current time 26.798966262)\r\n"] +[310.04863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.060736, "o", "e9e9343530313233\\r\\n\r\n"] +[310.061003, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[310.061397, "o", "[tsffs info] Cancelling event with next time 2.999497728 (current time 26.7989631055)\r\n"] +[310.063746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.071999, "o", "152a40a5e9\\r\\n\r\n"] +[310.072367, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667282 (current time 26.7987935515)\r\n"] +[310.075099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.075223, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.087782, "o", "6e6721d80b40a5d8\\r\\n\r\n"] +[310.08816, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942535 (current time 26.79896658)\r\n"] +[310.091301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.09395, "o", "68\\r\\n\r\n"] +[310.094226, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998979215 (current time 26.798562912)\r\n"] +[310.096281, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.108069, "o", "4141414141416675\\r\\n\r\n"] +[310.108411, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.108607, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500202 (current time 26.7989606315)\r\n"] +[310.111222, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.111363, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.123688, "o", "a50bbfa5e9002970\\r\\n\r\n"] +[310.123975, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493304 (current time 26.7989675295)\r\n"] +[310.126907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.127033, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.139768, "o", "62d32ddcdcdcdc0b\\r\\n\r\n"] +[310.140091, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994876035 (current time 26.79897323)\r\n"] +[310.143065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.143151, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.15502, "o", "d800000300001616\\r\\n\r\n"] +[310.155307, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.155453, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997055 (current time 26.798961128)\r\n"] +[310.158344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.158395, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.171275, "o", "d8405be9d8405be9\\r\\n\r\n"] +[310.171559, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[310.171699, "o", "[tsffs info] Cancelling event with next time 2.9994928505 (current time 26.798967983)\r\n"] +[310.174762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.174926, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.185183, "o", "3031fafafafa\\r\\n\r\n"] +[310.185444, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.185649, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999604774 (current time 26.7988560595)\r\n"] +[310.189366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.189515, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.202469, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[310.202719, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.202893, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[310.206316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.206486, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.21924, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[310.2195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.219664, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[310.223202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.22328, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.251404, "o", "d80b40a5e9\\r\\n\r\n"] +[310.252301, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.252344, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[310.256223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.256308, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.264532, "o", "d81340a5e9\\r\\n\r\n"] +[310.264911, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671275 (current time 26.798793706)\r\n"] +[310.269567, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.269724, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[310.269893, "o", "[tsffs info] Resuming simulation\r\n"] +[310.278321, "o", "d80a40a5e9\\r\\n\r\n"] +[310.278644, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666053 (current time 26.7987947805)\r\n"] +[310.280728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.280944, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.289089, "o", "d81340a5e9\\r\\n\r\n"] +[310.289523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671275 (current time 26.798793706)\r\n"] +[310.293075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.293211, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.301458, "o", "280b40a5a5\\r\\n\r\n"] +[310.301951, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996674205 (current time 26.798793413)\r\n"] +[310.306554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.306668, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.319185, "o", "fe0cdb4141414141\\r\\n\r\n"] +[310.319539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494656 (current time 26.7989661775)\r\n"] +[310.323093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.32335, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.335387, "o", "03cb306651000266\\r\\n\r\n"] +[310.335665, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498191 (current time 26.7989626425)\r\n"] +[310.339252, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.339411, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[310.339577, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.352082, "o", "00e90b257a6900f1\\r\\n\r\n"] +[310.35246, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956375 (current time 26.798965196)\r\n"] +[310.356467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.356587, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.363587, "o", "0acf3126\\r\\n\r\n"] +[310.363969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724219 (current time 26.7987366145)\r\n"] +[310.3661, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.366194, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.373344, "o", "80ffffff\\r\\n\r\n"] +[310.373699, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972024 (current time 26.7987405935)\r\n"] +[310.376607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.388764, "o", "4141416669ff7f00\\r\\n\r\n"] +[310.389145, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.389238, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496442 (current time 26.7989643915)\r\n"] +[310.391894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.391994, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.395879, "o", "d80c\\r\\n\r\n"] +[310.396235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389145 (current time 26.798621919)\r\n"] +[310.398214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.398347, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.410681, "o", "d80b40bce9d80b40\\r\\n\r\n"] +[310.411038, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492162 (current time 26.7989686715)\r\n"] +[310.413727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.413893, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.426544, "o", "0c0b75a2e90b0c0b\\r\\n\r\n"] +[310.426851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[310.427086, "o", "[tsffs info] Cancelling event with next time 2.999492465 (current time 26.7989683685)\r\n"] +[310.429445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.429611, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.437597, "o", "5af90b4001\\r\\n\r\n"] +[310.438019, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.438236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996674195 (current time 26.798793414)\r\n"] +[310.441157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.441277, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.449447, "o", "d80b10a4e9\\r\\n\r\n"] +[310.450197, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.45036, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666128 (current time 26.7987947055)\r\n"] +[310.454458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.454617, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.463015, "o", "f90bc0a5e9\\r\\n\r\n"] +[310.463387, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996648165 (current time 26.798796017)\r\n"] +[310.465686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.478381, "o", "3263646566dbdbdb\\r\\n\r\n"] +[310.478679, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493057 (current time 26.7989677765)\r\n"] +[310.481228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.493516, "o", "d81440e9d2e916e9\\r\\n\r\n"] +[310.493937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493931 (current time 26.7989669025)\r\n"] +[310.496613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.508694, "o", "260066757a7a696e\\r\\n\r\n"] +[310.509033, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496272 (current time 26.7989645615)\r\n"] +[310.511859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.523838, "o", "363738396162d80b\\r\\n\r\n"] +[310.524149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497514 (current time 26.7989633195)\r\n"] +[310.526895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.539166, "o", "f010f83911111111\\r\\n\r\n"] +[310.539702, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498194 (current time 26.7989626395)\r\n"] +[310.541994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.542136, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.55022, "o", "007f0000d8\\r\\n\r\n"] +[310.550705, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668665 (current time 26.7987921685)\r\n"] +[310.554374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.55458, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.561645, "o", "0bbf40ff\\r\\n\r\n"] +[310.562029, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999721839 (current time 26.7987389945)\r\n"] +[310.564407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.576368, "o", "d8f540a530313233\\r\\n\r\n"] +[310.576801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496827 (current time 26.7989640065)\r\n"] +[310.579374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.592354, "o", "39417fffffffb8b8\\r\\n\r\n"] +[310.592809, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994890635 (current time 26.79897177)\r\n"] +[310.595498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.608023, "o", "b8b8b8b8b8b880b8\\r\\n\r\n"] +[310.608423, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.608598, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491641 (current time 26.7989691925)\r\n"] +[310.611231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.611402, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.623323, "o", "d8f940a530313233\\r\\n\r\n"] +[310.62369, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967325 (current time 26.798964101)\r\n"] +[310.62634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.626541, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.630418, "o", "3c7f\\r\\n\r\n"] +[310.630783, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838797 (current time 26.7986220365)\r\n"] +[310.632801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.632958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.645939, "o", "e7ae727bdeafc7fe\\r\\n\r\n"] +[310.646311, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487038 (current time 26.7989737955)\r\n"] +[310.648872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.648984, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.655706, "o", "d8660001\\r\\n\r\n"] +[310.656087, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726488 (current time 26.7987343455)\r\n"] +[310.65869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.670471, "o", "6465664141414141\\r\\n\r\n"] +[310.670885, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500118 (current time 26.7989607155)\r\n"] +[310.673814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.674111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.685588, "o", "3232323232323232\\r\\n\r\n"] +[310.686041, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005225 (current time 26.798960311)\r\n"] +[310.689513, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.689706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.697509, "o", "d930313233\\r\\n\r\n"] +[310.697983, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996696395 (current time 26.798791194)\r\n"] +[310.700435, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.707494, "o", "402ba5cb\\r\\n\r\n"] +[310.707845, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997231515 (current time 26.798737682)\r\n"] +[310.710564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.710674, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.723559, "o", "8282dfdfdfdfdfdf\\r\\n\r\n"] +[310.724026, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994857655 (current time 26.798975068)\r\n"] +[310.726839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.739104, "o", "d80b40a5e9212121\\r\\n\r\n"] +[310.739555, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957705 (current time 26.798965063)\r\n"] +[310.742285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.754329, "o", "3536ff3839616263\\r\\n\r\n"] +[310.754742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973765 (current time 26.798963457)\r\n"] +[310.75781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.757943, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.769912, "o", "d80b403031d83131\\r\\n\r\n"] +[310.770264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949699 (current time 26.7989638435)\r\n"] +[310.773423, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.773557, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.777337, "o", "2152\\r\\n\r\n"] +[310.7777, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841324 (current time 26.7986195095)\r\n"] +[310.779688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.791925, "o", "6464313233646431\\r\\n\r\n"] +[310.79228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500093 (current time 26.7989607405)\r\n"] +[310.795262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.802851, "o", "ffff8caa\\r\\n\r\n"] +[310.803151, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.803272, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999719243 (current time 26.7987415905)\r\n"] +[310.806417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.814654, "o", "260bd5a5e9\\r\\n\r\n"] +[310.81496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659985 (current time 26.798794835)\r\n"] +[310.818377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.81853, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.831274, "o", "00ff7fffff7e5200\\r\\n\r\n"] +[310.8316, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906425 (current time 26.798970191)\r\n"] +[310.834936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.835017, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.847265, "o", "c80b6e6719393768\\r\\n\r\n"] +[310.847655, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960645 (current time 26.798964769)\r\n"] +[310.850757, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.850847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.8636, "o", "30ff7fffff3c3c3c\\r\\n\r\n"] +[310.863765, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.864008, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488261 (current time 26.7989725725)\r\n"] +[310.866417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.866552, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.878635, "o", "41416675647a696e\\r\\n\r\n"] +[310.878937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[310.879181, "o", "[tsffs info] Cancelling event with next time 2.9994973275 (current time 26.798963506)\r\n"] +[310.88189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.88218, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.886044, "o", "7340\\r\\n\r\n"] +[310.886381, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.88671, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412375 (current time 26.798619596)\r\n"] +[310.889636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.889847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.901863, "o", "61106364657b7b7b\\r\\n\r\n"] +[310.90217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.902538, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496493 (current time 26.7989643405)\r\n"] +[310.906016, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.906134, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.918263, "o", "0029705666ff3a8b\\r\\n\r\n"] +[310.918653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[310.922177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.922454, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.935119, "o", "ca373629e205ffff\\r\\n\r\n"] +[310.935434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[310.935544, "o", "[tsffs info] Cancelling event with next time 2.9994917345 (current time 26.798969099)\r\n"] +[310.939069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.93927, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.951144, "o", "3031323334353637\\r\\n\r\n"] +[310.951547, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[310.955239, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.955492, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.967814, "o", "2222698b833031ea\\r\\n\r\n"] +[310.968117, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[310.968349, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496684 (current time 26.7989641495)\r\n"] +[310.971933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[310.972052, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[310.972066, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.976201, "o", "3121\\r\\n\r\n"] +[310.976662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841393 (current time 26.7986194405)\r\n"] +[310.978814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.979064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.991482, "o", "d80b4052e91d1d1d\\r\\n\r\n"] +[310.991872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493313 (current time 26.7989675205)\r\n"] +[310.994857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[310.99511, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[310.997597, "o", "bd\\r\\n\r\n"] +[310.998048, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998958055 (current time 26.798565028)\r\n"] +[311.000665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.009169, "o", "d87f417f7f\\r\\n\r\n"] +[311.009528, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999665573 (current time 26.7987952605)\r\n"] +[311.012008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.012254, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.024251, "o", "30313233a5a5a5a5\\r\\n\r\n"] +[311.024731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[311.024876, "o", "[tsffs info] Cancelling event with next time 2.9994958655 (current time 26.798964968)\r\n"] +[311.027528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.027821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.040059, "o", "eb7e303132333435\\r\\n\r\n"] +[311.040436, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[311.040693, "o", "[tsffs info] Cancelling event with next time 2.999496788 (current time 26.7989640455)\r\n"] +[311.04313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.043469, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.055449, "o", "270b40a5e9271440\\r\\n\r\n"] +[311.055692, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.05596, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496781 (current time 26.7989640525)\r\n"] +[311.058582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.05872, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.071244, "o", "2e352efe781bfe0c\\r\\n\r\n"] +[311.07161, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.071851, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907075 (current time 26.798970126)\r\n"] +[311.074557, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.074645, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.086483, "o", "1931323334353637\\r\\n\r\n"] +[311.086774, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.086968, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500073 (current time 26.7989607605)\r\n"] +[311.089934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.090018, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.099312, "o", "46460b40a5e9\\r\\n\r\n"] +[311.09967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[311.09988, "o", "[tsffs info] Cancelling event with next time 2.9996103185 (current time 26.798850515)\r\n"] +[311.103779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.104029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.116794, "o", "a266c7a263a2a2a2\\r\\n\r\n"] +[311.117172, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493456 (current time 26.7989673775)\r\n"] +[311.121156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.121413, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.134007, "o", "d8ffd8270b406c96\\r\\n\r\n"] +[311.134321, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.134579, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492813 (current time 26.7989680205)\r\n"] +[311.138244, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.138359, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[311.138594, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.150455, "o", "343536373839617f\\r\\n\r\n"] +[311.150825, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.151095, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984985 (current time 26.798962335)\r\n"] +[311.154683, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.154919, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.159015, "o", "80ff\\r\\n\r\n"] +[311.15949, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838792 (current time 26.7986220415)\r\n"] +[311.161833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.162092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.173607, "o", "6262626262626262\\r\\n\r\n"] +[311.173959, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999745 (current time 26.798960859)\r\n"] +[311.176753, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.176957, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.185062, "o", "e90b40a5e9\\r\\n\r\n"] +[311.185423, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.185722, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659775 (current time 26.798794856)\r\n"] +[311.18913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.189354, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.20147, "o", "37383561629c0bd8\\r\\n\r\n"] +[311.201898, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.20208, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963785 (current time 26.798964455)\r\n"] +[311.205598, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.20579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.209707, "o", "303f\\r\\n\r\n"] +[311.210095, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401305 (current time 26.798620703)\r\n"] +[311.212356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.212486, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.224869, "o", "77cbe107c962c2eb\\r\\n\r\n"] +[311.225175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.22537, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918765 (current time 26.798968957)\r\n"] +[311.228099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.228284, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.236112, "o", "0930313233\\r\\n\r\n"] +[311.236551, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[311.236732, "o", "[tsffs info] Cancelling event with next time 2.99967089 (current time 26.7987899435)\r\n"] +[311.23977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.239901, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[311.24008, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.25211, "o", "0366757a6e00e800\\r\\n\r\n"] +[311.252343, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.252602, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966525 (current time 26.798964181)\r\n"] +[311.255991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.256118, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.269197, "o", "6f6f6f6f6f111130\\r\\n\r\n"] +[311.269418, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.269773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494122 (current time 26.7989667115)\r\n"] +[311.273038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.273246, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.277206, "o", "d8d8\\r\\n\r\n"] +[311.277583, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998387085 (current time 26.798622125)\r\n"] +[311.279682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.279824, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.292189, "o", "f4f4f4f4f4f4f4f4\\r\\n\r\n"] +[311.292521, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.292765, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903625 (current time 26.798970471)\r\n"] +[311.295528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.295667, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.307193, "o", "4151672130303030\\r\\n\r\n"] +[311.307578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500572 (current time 26.7989602615)\r\n"] +[311.310341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.310514, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.31717, "o", "7f0b2500\\r\\n\r\n"] +[311.317566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725392 (current time 26.7987354415)\r\n"] +[311.321242, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.321392, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[311.32146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.33391, "o", "acac00000064a8a8\\r\\n\r\n"] +[311.334401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.334535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937465 (current time 26.798967087)\r\n"] +[311.338212, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.338384, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.34689, "o", "a5a5a5a506\\r\\n\r\n"] +[311.347256, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996662 (current time 26.7987946335)\r\n"] +[311.349707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.349918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.362362, "o", "417a7a7a7a7a7a7a\\r\\n\r\n"] +[311.362774, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.362969, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491921 (current time 26.7989689125)\r\n"] +[311.36542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.365613, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.378245, "o", "2d2d2d2d2d2d2d2d\\r\\n\r\n"] +[311.378591, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.378894, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911425 (current time 26.798969691)\r\n"] +[311.381296, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.381499, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.39358, "o", "fe7767396162639c\\r\\n\r\n"] +[311.393923, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959665 (current time 26.798964867)\r\n"] +[311.396378, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.396555, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.408193, "o", "4141414141416675\\r\\n\r\n"] +[311.408658, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.408807, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500202 (current time 26.7989606315)\r\n"] +[311.411446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.411595, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.423322, "o", "5959595959595959\\r\\n\r\n"] +[311.423679, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988265 (current time 26.798962007)\r\n"] +[311.426225, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.42631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.438394, "o", "d830313239616263\\r\\n\r\n"] +[311.438662, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.438805, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989185 (current time 26.798961915)\r\n"] +[311.441714, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.454333, "o", "5d5d5d5d5d5d5d5d\\r\\n\r\n"] +[311.454633, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[311.457918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.458057, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.46983, "o", "333331336e912130\\r\\n\r\n"] +[311.470246, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499161 (current time 26.7989616725)\r\n"] +[311.473415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.473623, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.485571, "o", "1435363738396162\\r\\n\r\n"] +[311.485742, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.486091, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998235 (current time 26.79896101)\r\n"] +[311.489637, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.489689, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.502637, "o", "e96f6fe93cdeede9\\r\\n\r\n"] +[311.503114, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.503245, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994878115 (current time 26.798973022)\r\n"] +[311.506583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.50667, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.517592, "o", "00be01000067fb\\r\\n\r\n"] +[311.51792, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995529065 (current time 26.798907927)\r\n"] +[311.521558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.52172, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.534486, "o", "e8e8e8e8eae83536\\r\\n\r\n"] +[311.534854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913405 (current time 26.798969493)\r\n"] +[311.538533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.538633, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.551379, "o", "78b8b8b8b8b8b8b8\\r\\n\r\n"] +[311.551727, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914645 (current time 26.798969369)\r\n"] +[311.555936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.556159, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.568609, "o", "ddffff0000303132\\r\\n\r\n"] +[311.568875, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935445 (current time 26.798967289)\r\n"] +[311.572691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.573077, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.58476, "o", "0530313233343536\\r\\n\r\n"] +[311.585062, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.58523, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003765 (current time 26.798960457)\r\n"] +[311.588756, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.588993, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.601656, "o", "8f8f8f8f402ed80b\\r\\n\r\n"] +[311.602198, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915285 (current time 26.798969305)\r\n"] +[311.605719, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.605922, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.61283, "o", "ff0000d7\\r\\n\r\n"] +[311.61325, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997242195 (current time 26.798736614)\r\n"] +[311.615359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.615549, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.628217, "o", "3af8e9e9e9633007\\r\\n\r\n"] +[311.628574, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493849 (current time 26.7989669845)\r\n"] +[311.630906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.631072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.639584, "o", "d97b10b7a8\\r\\n\r\n"] +[311.640107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659505 (current time 26.798794883)\r\n"] +[311.642565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.642612, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.655845, "o", "d7e935a517fea5e9\\r\\n\r\n"] +[311.656111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491542 (current time 26.7989692915)\r\n"] +[311.659087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.659504, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.671504, "o", "223e31146fc51760\\r\\n\r\n"] +[311.672002, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.672166, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967085 (current time 26.798964125)\r\n"] +[311.6749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.675008, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.684609, "o", "6675ea6675ea\\r\\n\r\n"] +[311.685047, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996087935 (current time 26.79885204)\r\n"] +[311.688724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.688905, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.69818, "o", "c93200000080\\r\\n\r\n"] +[311.698565, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999613141 (current time 26.7988476925)\r\n"] +[311.70203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.702268, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.714273, "o", "1818181818181818\\r\\n\r\n"] +[311.714579, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.714776, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997985 (current time 26.798961035)\r\n"] +[311.718077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.718159, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[311.718316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.727692, "o", "00002000a5e9\\r\\n\r\n"] +[311.728031, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612055 (current time 26.7988487785)\r\n"] +[311.730502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.742345, "o", "48484848446b9300\\r\\n\r\n"] +[311.742672, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498583 (current time 26.7989622505)\r\n"] +[311.745529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.745735, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.757615, "o", "d80b40a530313233\\r\\n\r\n"] +[311.758103, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970535 (current time 26.79896378)\r\n"] +[311.760869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.772505, "o", "414141104166757a\\r\\n\r\n"] +[311.772933, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.773062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949907 (current time 26.7989617635)\r\n"] +[311.775485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.775797, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.7876, "o", "24f566666666661b\\r\\n\r\n"] +[311.787856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.787918, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973005 (current time 26.798963533)\r\n"] +[311.791122, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.791323, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.803225, "o", "d80b40a531e93132\\r\\n\r\n"] +[311.803591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495678 (current time 26.7989651555)\r\n"] +[311.806726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.809133, "o", "13\\r\\n\r\n"] +[311.809581, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898148 (current time 26.7985626855)\r\n"] +[311.811642, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.81191, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.823558, "o", "7533338888888872\\r\\n\r\n"] +[311.823843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499214 (current time 26.7989616195)\r\n"] +[311.826445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.826706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.838443, "o", "4166757a35363738\\r\\n\r\n"] +[311.838795, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498545 (current time 26.7989622885)\r\n"] +[311.841368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.841713, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.849781, "o", "f9f540a5e9\\r\\n\r\n"] +[311.850212, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.850359, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996657265 (current time 26.798795107)\r\n"] +[311.854168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.854421, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.861287, "o", "ea0b4030\\r\\n\r\n"] +[311.861684, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724411 (current time 26.7987364225)\r\n"] +[311.86416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.864393, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.872673, "o", "d8dc40a5e9\\r\\n\r\n"] +[311.873118, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996647525 (current time 26.798796081)\r\n"] +[311.875897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.876149, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.887983, "o", "2f81676767673031\\r\\n\r\n"] +[311.888324, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.888628, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985205 (current time 26.798962313)\r\n"] +[311.89136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.891712, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.903593, "o", "146f3a4830313233\\r\\n\r\n"] +[311.90383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497972 (current time 26.7989628615)\r\n"] +[311.90697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.918795, "o", "313233cb35353535\\r\\n\r\n"] +[311.919423, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497934 (current time 26.7989628995)\r\n"] +[311.922439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.922738, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.934875, "o", "3430321f66484848\\r\\n\r\n"] +[311.93523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498699 (current time 26.7989621345)\r\n"] +[311.938713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[311.938797, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.945775, "o", "0b409ae9\\r\\n\r\n"] +[311.946125, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972405 (current time 26.7987367835)\r\n"] +[311.948556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.948873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.960663, "o", "1010101010306733\\r\\n\r\n"] +[311.960996, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500863 (current time 26.7989599705)\r\n"] +[311.963258, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.963637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.970327, "o", "b91481e9\\r\\n\r\n"] +[311.97057, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[311.970702, "o", "[tsffs info] Cancelling event with next time 2.9997249795 (current time 26.798735854)\r\n"] +[311.973425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.973593, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.985623, "o", "d80b403830315151\\r\\n\r\n"] +[311.985839, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.986257, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980685 (current time 26.798962765)\r\n"] +[311.989707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[311.990064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[311.997313, "o", "ffffffff\\r\\n\r\n"] +[311.997489, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[311.997532, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997178225 (current time 26.798743011)\r\n"] +[311.999745, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.000034, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.008195, "o", "d87777a6e9\\r\\n\r\n"] +[312.008561, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666609 (current time 26.7987942245)\r\n"] +[312.011384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.01172, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.023273, "o", "000000000000000b\\r\\n\r\n"] +[312.023609, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950038 (current time 26.7989604535)\r\n"] +[312.026351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.02656, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.038453, "o", "58100130404b1000\\r\\n\r\n"] +[312.038805, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499692 (current time 26.7989611415)\r\n"] +[312.041593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.041747, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.050369, "o", "0bbfc8e9eb\\r\\n\r\n"] +[312.050737, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999662471 (current time 26.7987983625)\r\n"] +[312.054628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.054956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.066799, "o", "6364656641414141\\r\\n\r\n"] +[312.067158, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[312.071166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.071267, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[312.071471, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.083733, "o", "31ce3131d80b1b03\\r\\n\r\n"] +[312.083893, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949478 (current time 26.7989660535)\r\n"] +[312.088012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.088148, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.100209, "o", "f30b401414141414\\r\\n\r\n"] +[312.100623, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982445 (current time 26.798962589)\r\n"] +[312.104411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.104448, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.112732, "o", "0b40a5e9e9\\r\\n\r\n"] +[312.113027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659775 (current time 26.798794856)\r\n"] +[312.115384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.120961, "o", "84d3e8\\r\\n\r\n"] +[312.121374, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781835 (current time 26.7986789985)\r\n"] +[312.123994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.135873, "o", "d800333233333321\\r\\n\r\n"] +[312.136153, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.136361, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499298 (current time 26.7989615355)\r\n"] +[312.139746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.13988, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.152455, "o", "20e3e30a0a0a0a0a\\r\\n\r\n"] +[312.152858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492888 (current time 26.7989679455)\r\n"] +[312.156389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.156412, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.164217, "o", "f500000001\\r\\n\r\n"] +[312.164577, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670125 (current time 26.7987907085)\r\n"] +[312.167088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.178995, "o", "3838383838383838\\r\\n\r\n"] +[312.179223, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994345 (current time 26.798961399)\r\n"] +[312.181703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.191051, "o", "98209898a759\\r\\n\r\n"] +[312.191437, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611928 (current time 26.7988489055)\r\n"] +[312.194066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.206991, "o", "b8b818ea96b88095\\r\\n\r\n"] +[312.207239, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493815 (current time 26.7989670185)\r\n"] +[312.209952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.216702, "o", "d81000a5\\r\\n\r\n"] +[312.21707, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725471 (current time 26.7987353625)\r\n"] +[312.220784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.220988, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.233595, "o", "2c2c2c7a7ae2e2e2\\r\\n\r\n"] +[312.233974, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490989 (current time 26.7989698445)\r\n"] +[312.237913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.249665, "o", "1083838383838383\\r\\n\r\n"] +[312.250107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996705 (current time 26.798961163)\r\n"] +[312.254036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.254116, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.261122, "o", "0b40a5df\\r\\n\r\n"] +[312.261462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723089 (current time 26.7987377445)\r\n"] +[312.263772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.275981, "o", "ff3a4141416721a6\\r\\n\r\n"] +[312.27611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495577 (current time 26.7989652565)\r\n"] +[312.279026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.286088, "o", "d80ba5e9\\r\\n\r\n"] +[312.286405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722802 (current time 26.7987380315)\r\n"] +[312.289583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.301192, "o", "0000303132333435\\r\\n\r\n"] +[312.301641, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500726 (current time 26.7989601075)\r\n"] +[312.305128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.311767, "o", "64776477\\r\\n\r\n"] +[312.312175, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997270585 (current time 26.798733775)\r\n"] +[312.314223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.314318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.32604, "o", "7575757575753635\\r\\n\r\n"] +[312.3264, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.326661, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499346 (current time 26.7989614875)\r\n"] +[312.329195, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.341064, "o", "6568414141414132\\r\\n\r\n"] +[312.341538, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001865 (current time 26.798960647)\r\n"] +[312.344174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.356078, "o", "3636647f66414141\\r\\n\r\n"] +[312.3564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498722 (current time 26.7989621115)\r\n"] +[312.358849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.358973, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.367103, "o", "8a0040e9e8\\r\\n\r\n"] +[312.367528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.36777, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671435 (current time 26.79879369)\r\n"] +[312.371358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.371552, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.383849, "o", "757a016e67213937\\r\\n\r\n"] +[312.384092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.384326, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497499 (current time 26.7989633345)\r\n"] +[312.387861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.388095, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.396221, "o", "284040a5e9\\r\\n\r\n"] +[312.396631, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996683355 (current time 26.798792498)\r\n"] +[312.398801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.398932, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.407058, "o", "181818db18\\r\\n\r\n"] +[312.40754, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996682415 (current time 26.798792592)\r\n"] +[312.410277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.410381, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.418448, "o", "640b40a5e9\\r\\n\r\n"] +[312.418893, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996672315 (current time 26.798793602)\r\n"] +[312.422287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.422459, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.43498, "o", "d83961f0f0f0f0f0\\r\\n\r\n"] +[312.435275, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[312.435371, "o", "[tsffs info] Cancelling event with next time 2.999493145 (current time 26.7989676885)\r\n"] +[312.438973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.439152, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[312.43929, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.452417, "o", "d90b4088d80bf8f8\\r\\n\r\n"] +[312.452687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492798 (current time 26.7989680355)\r\n"] +[312.456346, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.456463, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.461887, "o", "d80c40\\r\\n\r\n"] +[312.462199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782148 (current time 26.7986786855)\r\n"] +[312.464494, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.47742, "o", "d80b43a5e90af7ea\\r\\n\r\n"] +[312.477625, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.477996, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908235 (current time 26.79897001)\r\n"] +[312.48036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.48047, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.493452, "o", "d80be9e9e9e9e9e9\\r\\n\r\n"] +[312.49382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.494007, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489945 (current time 26.7989708885)\r\n"] +[312.49659, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.496699, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.508847, "o", "d8323334355337c8\\r\\n\r\n"] +[312.509175, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[312.509333, "o", "[tsffs info] Cancelling event with next time 2.9994975905 (current time 26.798963243)\r\n"] +[312.511957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.512056, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.514302, "o", "20\\r\\n\r\n"] +[312.514754, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898204 (current time 26.7985626295)\r\n"] +[312.517064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.517142, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.52892, "o", "3541414166757a00\\r\\n\r\n"] +[312.529236, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.529572, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990305 (current time 26.798961803)\r\n"] +[312.532082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.543879, "o", "7f60607f60606060\\r\\n\r\n"] +[312.544299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977425 (current time 26.798963091)\r\n"] +[312.546528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.558189, "o", "8000000000000080\\r\\n\r\n"] +[312.55855, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995012015 (current time 26.798959632)\r\n"] +[312.561896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.562161, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.57484, "o", "3f3f3f3f3f3f3f3f\\r\\n\r\n"] +[312.575281, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.575427, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905265 (current time 26.798970307)\r\n"] +[312.577763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.590183, "o", "fe781b034000a8a8\\r\\n\r\n"] +[312.590649, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.590765, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944695 (current time 26.798966364)\r\n"] +[312.593362, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.593561, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.600297, "o", "d8e9e9e9\\r\\n\r\n"] +[312.600725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997223165 (current time 26.798738517)\r\n"] +[312.604237, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.604421, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.617054, "o", "5050ab50ab22ab22\\r\\n\r\n"] +[312.617485, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493827 (current time 26.7989670065)\r\n"] +[312.621223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.621482, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.629335, "o", "00020000e9\\r\\n\r\n"] +[312.629805, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670033 (current time 26.7987908005)\r\n"] +[312.631992, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.644608, "o", "d80b409a9a9a9a9a\\r\\n\r\n"] +[312.645001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491818 (current time 26.7989690155)\r\n"] +[312.647493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.659922, "o", "a9a9a9a996979797\\r\\n\r\n"] +[312.660317, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944105 (current time 26.798966423)\r\n"] +[312.663911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.664157, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.679258, "o", "8d8d8d8d8d8d8d41\\r\\n\r\n"] +[312.679609, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.679855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913645 (current time 26.798969469)\r\n"] +[312.682215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.704014, "o", "3031313636163636\\r\\n\r\n"] +[312.704594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002065 (current time 26.798960627)\r\n"] +[312.708488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.717389, "o", "d800ffa5e9\\r\\n\r\n"] +[312.717722, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.717927, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996647285 (current time 26.798796105)\r\n"] +[312.721479, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.721611, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.729548, "o", "00000064c6\\r\\n\r\n"] +[312.730007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966996 (current time 26.7987908735)\r\n"] +[312.732204, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.744277, "o", "424275427a694239\\r\\n\r\n"] +[312.744555, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[312.7447, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498644 (current time 26.7989621895)\r\n"] +[312.747062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.747187, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.755441, "o", "4ef8ff0200\\r\\n\r\n"] +[312.755831, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660515 (current time 26.798794782)\r\n"] +[312.758464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.758899, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.765076, "o", "00303132\\r\\n\r\n"] +[312.765524, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997279335 (current time 26.7987329)\r\n"] +[312.768287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.779452, "o", "a5d95655dbfd30\\r\\n\r\n"] +[312.779768, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995498635 (current time 26.79891097)\r\n"] +[312.782134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.782411, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.793405, "o", "00ff40ff40a5e9\\r\\n\r\n"] +[312.793764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995500285 (current time 26.798910805)\r\n"] +[312.796277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.796662, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.808833, "o", "41ffffff32333435\\r\\n\r\n"] +[312.809286, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929595 (current time 26.798967874)\r\n"] +[312.812077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.824565, "o", "cbf107c962c2ebfe\\r\\n\r\n"] +[312.825099, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896215 (current time 26.798971212)\r\n"] +[312.827685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.827966, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.833305, "o", "3fa4e9\\r\\n\r\n"] +[312.833665, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780758 (current time 26.7986800755)\r\n"] +[312.837389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.837622, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.845631, "o", "d801f54040\\r\\n\r\n"] +[312.846036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668487 (current time 26.7987923465)\r\n"] +[312.84846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.860894, "o", "d81e40a5e9303132\\r\\n\r\n"] +[312.861149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495601 (current time 26.7989652325)\r\n"] +[312.863741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.867858, "o", "639d\\r\\n\r\n"] +[312.868222, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839896 (current time 26.7986209375)\r\n"] +[312.871918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.87216, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.880403, "o", "d80b408d0b\\r\\n\r\n"] +[312.880824, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666201 (current time 26.7987946325)\r\n"] +[312.883282, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.883611, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.895501, "o", "e9640000e9647898\\r\\n\r\n"] +[312.895858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[312.89606, "o", "[tsffs info] Cancelling event with next time 2.9994973175 (current time 26.798963516)\r\n"] +[312.898107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.898417, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.91028, "o", "d84bd43031323334\\r\\n\r\n"] +[312.910688, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496838 (current time 26.7989639955)\r\n"] +[312.913222, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.913411, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.924921, "o", "7100303132333435\\r\\n\r\n"] +[312.925368, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500517 (current time 26.7989603165)\r\n"] +[312.927942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.928107, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.939695, "o", "0000473267000030\\r\\n\r\n"] +[312.94006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500774 (current time 26.7989600595)\r\n"] +[312.942587, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.942806, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.949219, "o", "000040e9\\r\\n\r\n"] +[312.949557, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726657 (current time 26.7987341765)\r\n"] +[312.952994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[312.953105, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[312.953323, "o", "[tsffs info] Resuming simulation\r\n"] +[312.964996, "o", "6436353333383030\\r\\n\r\n"] +[312.965324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001735 (current time 26.79896066)\r\n"] +[312.968549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.968688, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.97533, "o", "e9525252\\r\\n\r\n"] +[312.975682, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726217 (current time 26.7987346165)\r\n"] +[312.978285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.978532, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[312.990546, "o", "d031323a34ff0000\\r\\n\r\n"] +[312.99094, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960415 (current time 26.798964792)\r\n"] +[312.993625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[312.993717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.006341, "o", "1b19c962781b03bd\\r\\n\r\n"] +[313.006613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494307 (current time 26.7989665265)\r\n"] +[313.009078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.009265, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.021268, "o", "37337a00c9353830\\r\\n\r\n"] +[313.021543, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978065 (current time 26.798963027)\r\n"] +[313.024733, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.024837, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.03745, "o", "d8a8a8a8a8a8a8a8\\r\\n\r\n"] +[313.03772, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490513 (current time 26.7989703205)\r\n"] +[313.040746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.040958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.053007, "o", "7373737373730cdb\\r\\n\r\n"] +[313.053254, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[313.053592, "o", "[tsffs info] Cancelling event with next time 2.9994963675 (current time 26.798964466)\r\n"] +[313.056707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.056883, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.068762, "o", "c100000010303030\\r\\n\r\n"] +[313.069096, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000485 (current time 26.798960785)\r\n"] +[313.0724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.072575, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.076758, "o", "bcbc\\r\\n\r\n"] +[313.077096, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998367155 (current time 26.798624118)\r\n"] +[313.079416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.079619, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.09194, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[313.092242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[313.094961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.095244, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.107557, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[313.10775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[313.110435, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.110713, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.152956, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.153902, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.156853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.156944, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.169439, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.169731, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.169881, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.172223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.172378, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.184736, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.184974, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.185345, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.188586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.188663, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.20113, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.201414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.205022, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.205228, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.21764, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.217858, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.21814, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.221746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.221933, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.234414, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.234856, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.238676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.23878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.25106, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.251408, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.251687, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.255129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.255266, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.267845, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.268208, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.271884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.272045, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.284413, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.284697, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.284962, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.288342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.288528, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.30088, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.301138, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.304789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.30494, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.317624, "o", "00d6705666ffdbfa\\r\\n\r\n"] +[313.317917, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918945 (current time 26.798968939)\r\n"] +[313.321517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.32166, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.333561, "o", "31323310413a3637\\r\\n\r\n"] +[313.333843, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.334102, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499278 (current time 26.7989615555)\r\n"] +[313.337658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.337897, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.338076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.351471, "o", "0609f6fefefefefe\\r\\n\r\n"] +[313.351865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994868485 (current time 26.798973985)\r\n"] +[313.355192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.355396, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.368024, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.368322, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.368669, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.372141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.372287, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.384775, "o", "c7c7c7c7c738c7c6\\r\\n\r\n"] +[313.384988, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.385443, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914635 (current time 26.79896937)\r\n"] +[313.388968, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.389197, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.401706, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.402126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.405596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.40586, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.418726, "o", "649bfafa06fafafa\\r\\n\r\n"] +[313.419103, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[313.419499, "o", "[tsffs info] Cancelling event with next time 2.999487324 (current time 26.7989735095)\r\n"] +[313.422621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.422811, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.435, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.435331, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.435597, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.43892, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.439131, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.43927, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.450987, "o", "3535353535353535\\r\\n\r\n"] +[313.451358, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999585 (current time 26.798960875)\r\n"] +[313.454853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.455112, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.455275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.467523, "o", "e5e5e5e5e5424242\\r\\n\r\n"] +[313.467891, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494101 (current time 26.7989667325)\r\n"] +[313.471503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.471618, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.471873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.484212, "o", "62c214fe0c4e4e4e\\r\\n\r\n"] +[313.484499, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.484812, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920085 (current time 26.798968825)\r\n"] +[313.488246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.488414, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.500516, "o", "3333193521352139\\r\\n\r\n"] +[313.500806, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[313.500994, "o", "[tsffs info] Cancelling event with next time 2.999500141 (current time 26.7989606925)\r\n"] +[313.504682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.504823, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.514828, "o", "0081fffefffe\\r\\n\r\n"] +[313.515242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996043125 (current time 26.798856521)\r\n"] +[313.518174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.518321, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.530405, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.53081, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.533033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.533182, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.540111, "o", "417a7a7f\\r\\n\r\n"] +[313.540424, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972392 (current time 26.7987369135)\r\n"] +[313.543008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.543246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.555824, "o", "4c4c4c4c4c4c4c4c\\r\\n\r\n"] +[313.55606, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909145 (current time 26.798969919)\r\n"] +[313.558855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.559044, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.565549, "o", "9e636165\\r\\n\r\n"] +[313.565916, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997260805 (current time 26.798734753)\r\n"] +[313.569064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.569194, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.58228, "o", "fafafafafafafafa\\r\\n\r\n"] +[313.582639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.582855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994816705 (current time 26.798979163)\r\n"] +[313.586433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.586524, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.59921, "o", "0029010066ff3a8b\\r\\n\r\n"] +[313.599655, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.599759, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495719 (current time 26.7989651145)\r\n"] +[313.603227, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.603379, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[313.603544, "o", "[tsffs info] Resuming simulation\r\n"] +[313.615302, "o", "50e6414141414130\\r\\n\r\n"] +[313.615667, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992985 (current time 26.798961535)\r\n"] +[313.618961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.619026, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.629684, "o", "757c00801e5050\\r\\n\r\n"] +[313.62997, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.630191, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999554785 (current time 26.7989060485)\r\n"] +[313.632474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.632737, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.644506, "o", "56646456649c6641\\r\\n\r\n"] +[313.645037, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498426 (current time 26.7989624075)\r\n"] +[313.647406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.647503, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.660004, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.660323, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.660454, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.662901, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.663073, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.674955, "o", "3030353637383961\\r\\n\r\n"] +[313.675389, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999995 (current time 26.798960834)\r\n"] +[313.678131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.690544, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.690884, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.693534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.69364, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.705831, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.706153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.708872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.70905, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.721527, "o", "2d2df3b3df896278\\r\\n\r\n"] +[313.721852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[313.721938, "o", "[tsffs info] Cancelling event with next time 2.9994927775 (current time 26.798968056)\r\n"] +[313.725032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.725204, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.738582, "o", "e7e5e74fe7e7e7e7\\r\\n\r\n"] +[313.738889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.739144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994900395 (current time 26.798970794)\r\n"] +[313.742061, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.742131, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.753903, "o", "8484848434353637\\r\\n\r\n"] +[313.754207, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499568 (current time 26.7989612655)\r\n"] +[313.75721, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.757369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.77001, "o", "7b7b75757a7a697b\\r\\n\r\n"] +[313.770345, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.770572, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937535 (current time 26.79896708)\r\n"] +[313.773651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.773809, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.785825, "o", "3031324b34353637\\r\\n\r\n"] +[313.786122, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.78635, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499102 (current time 26.7989617315)\r\n"] +[313.789617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[313.789866, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.801777, "o", "f096969696969696\\r\\n\r\n"] +[313.802066, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.802252, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977165 (current time 26.798963117)\r\n"] +[313.80552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.805638, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.818149, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.818473, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.818708, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.82211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.822285, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.835112, "o", "ff3a8b9ee59ee7ae\\r\\n\r\n"] +[313.835367, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994879955 (current time 26.798972838)\r\n"] +[313.838763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.839007, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.839159, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.851508, "o", "0029704d66ff3a8b\\r\\n\r\n"] +[313.851793, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.852049, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494226 (current time 26.7989666075)\r\n"] +[313.855263, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.855395, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.855605, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.867602, "o", "000000ff300f3000\\r\\n\r\n"] +[313.867908, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.868224, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975145 (current time 26.798963319)\r\n"] +[313.872586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.872701, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.872781, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.88479, "o", "c6c6414139394141\\r\\n\r\n"] +[313.88502, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.885178, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977005 (current time 26.798963133)\r\n"] +[313.889723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.889841, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[313.890016, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.902456, "o", "0029705666ff9ee7\\r\\n\r\n"] +[313.902734, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.902808, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950045 (current time 26.798965829)\r\n"] +[313.905961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.917739, "o", "4141414141416675\\r\\n\r\n"] +[313.918115, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500202 (current time 26.7989606315)\r\n"] +[313.921678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.921916, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.934128, "o", "0029705666ff3a8b\\r\\n\r\n"] +[313.934352, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.934601, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[313.938322, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.938501, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.950509, "o", "2f3132333a353637\\r\\n\r\n"] +[313.950823, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[313.951051, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949788 (current time 26.7989629535)\r\n"] +[313.954695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.954855, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.966657, "o", "3233343232323232\\r\\n\r\n"] +[313.967009, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500455 (current time 26.7989603785)\r\n"] +[313.971015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.971161, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.983764, "o", "00d67056a5ff3b8b\\r\\n\r\n"] +[313.984177, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493146 (current time 26.7989676875)\r\n"] +[313.987804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[313.988055, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[313.999787, "o", "009141e040400041\\r\\n\r\n"] +[314.00017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499592 (current time 26.7989612415)\r\n"] +[314.004112, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.004511, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.016769, "o", "0029705666ff2f8b\\r\\n\r\n"] +[314.016816, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.017283, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495208 (current time 26.7989656255)\r\n"] +[314.021117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.02126, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.033355, "o", "737301ce146f0617\\r\\n\r\n"] +[314.033606, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965895 (current time 26.798964244)\r\n"] +[314.037578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.037808, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.050691, "o", "18ae727bdda8a8a8\\r\\n\r\n"] +[314.051228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906575 (current time 26.798970176)\r\n"] +[314.054959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.055111, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.055193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.067687, "o", "9df8223e30ff9c34\\r\\n\r\n"] +[314.068119, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.068349, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928345 (current time 26.798967999)\r\n"] +[314.072055, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.072185, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.084602, "o", "6263646566414141\\r\\n\r\n"] +[314.084938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.085225, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999545 (current time 26.798960879)\r\n"] +[314.088853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.089, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.101122, "o", "0072aa7230313233\\r\\n\r\n"] +[314.101476, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.101738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982735 (current time 26.79896256)\r\n"] +[314.105203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.105448, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.118105, "o", "e89ee59ed8ae727b\\r\\n\r\n"] +[314.118427, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.118663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901945 (current time 26.798970639)\r\n"] +[314.12226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.122438, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.134969, "o", "0029705666ff3a8b\\r\\n\r\n"] +[314.135362, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[314.139089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.139233, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.151558, "o", "0029705666ff3a2c\\r\\n\r\n"] +[314.151924, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495407 (current time 26.7989654265)\r\n"] +[314.155771, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.155883, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.167752, "o", "6364666641414166\\r\\n\r\n"] +[314.168031, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[314.168298, "o", "[tsffs info] Cancelling event with next time 2.999499841 (current time 26.7989609925)\r\n"] +[314.171796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.171983, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.184057, "o", "9292929292e59292\\r\\n\r\n"] +[314.184367, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949826 (current time 26.7989625735)\r\n"] +[314.188109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.188242, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.200834, "o", "0029705666ff3a8b\\r\\n\r\n"] +[314.201248, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.201465, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[314.205124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.205238, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[314.205378, "o", "[tsffs info] Resuming simulation\r\n"] +[314.213567, "o", "41be14db40\\r\\n\r\n"] +[314.214086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666291 (current time 26.7987945425)\r\n"] +[314.216417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.216649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.228937, "o", "df62626262626262\\r\\n\r\n"] +[314.229131, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.229388, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497621 (current time 26.7989632125)\r\n"] +[314.231671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.231824, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.243637, "o", "66414141414141c9\\r\\n\r\n"] +[314.243983, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.244127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990455 (current time 26.798961788)\r\n"] +[314.246675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.246876, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.259439, "o", "c214fe14fe0cdbfa\\r\\n\r\n"] +[314.259798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[314.259926, "o", "[tsffs info] Cancelling event with next time 2.999488687 (current time 26.7989721465)\r\n"] +[314.262414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.262568, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.274263, "o", "0029705666787878\\r\\n\r\n"] +[314.274621, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994665 (current time 26.798961367)\r\n"] +[314.277522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.290064, "o", "29705666ff3a8b9e\\r\\n\r\n"] +[314.290395, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938045 (current time 26.798967029)\r\n"] +[314.293186, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.305772, "o", "7adeaffe791b03d2\\r\\n\r\n"] +[314.306164, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896045 (current time 26.798971229)\r\n"] +[314.309059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.321766, "o", "0066757a7ae2e2e2\\r\\n\r\n"] +[314.322066, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.322421, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494263 (current time 26.7989665705)\r\n"] +[314.325099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.325193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.337364, "o", "0029705666ff3a8b\\r\\n\r\n"] +[314.337713, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.33792, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[314.340955, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.34113, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.341227, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.353139, "o", "802970000101303a\\r\\n\r\n"] +[314.353425, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.353561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995355 (current time 26.798961298)\r\n"] +[314.356625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.356754, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.356972, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.369757, "o", "03d2fffffffffaef\\r\\n\r\n"] +[314.370042, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.370263, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484695 (current time 26.7989761385)\r\n"] +[314.373359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.37355, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.385904, "o", "00ff705666ff3a75\\r\\n\r\n"] +[314.386222, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.386471, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494061 (current time 26.7989667725)\r\n"] +[314.389806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.389911, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.390106, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.401844, "o", "0029705666303132\\r\\n\r\n"] +[314.40219, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.402459, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002465 (current time 26.798960587)\r\n"] +[314.405857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.406007, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.406213, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.418619, "o", "fd29705666ff3a8b\\r\\n\r\n"] +[314.419004, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.419142, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492749 (current time 26.7989680845)\r\n"] +[314.422736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.422896, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.423095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.435554, "o", "e588e7ae5b5b5b5b\\r\\n\r\n"] +[314.435972, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.43632, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905665 (current time 26.798970267)\r\n"] +[314.439814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.440021, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.440166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.451835, "o", "6263555555414141\\r\\n\r\n"] +[314.452167, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.452534, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500014 (current time 26.7989608195)\r\n"] +[314.455978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.456161, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.456212, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.466944, "o", "100014003332cd\\r\\n\r\n"] +[314.46723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555313 (current time 26.7989055205)\r\n"] +[314.471149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.471299, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.482996, "o", "4141414140416675\\r\\n\r\n"] +[314.483301, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.48348, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002345 (current time 26.798960599)\r\n"] +[314.487399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.487586, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.487738, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.500541, "o", "603a6675cdcdcdcd\\r\\n\r\n"] +[314.500919, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.501053, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896365 (current time 26.798971197)\r\n"] +[314.50474, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.504903, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.504984, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.516761, "o", "0029303132333435\\r\\n\r\n"] +[314.517142, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.517376, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500452 (current time 26.7989603815)\r\n"] +[314.521089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.521307, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.521413, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.53411, "o", "affe781bf3a8cbf1\\r\\n\r\n"] +[314.53446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883765 (current time 26.798972457)\r\n"] +[314.538193, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.538322, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.538482, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.550389, "o", "4747474747474737\\r\\n\r\n"] +[314.55057, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.550975, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499403 (current time 26.7989614305)\r\n"] +[314.554554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.554771, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.55494, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.568046, "o", "babababa66ff3a8b\\r\\n\r\n"] +[314.56841, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.568535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994864755 (current time 26.798974358)\r\n"] +[314.572142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.572204, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.572329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.584357, "o", "38382a383961620b\\r\\n\r\n"] +[314.584647, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.584847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976575 (current time 26.798963176)\r\n"] +[314.588382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.588507, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.58868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.600863, "o", "6465664141414130\\r\\n\r\n"] +[314.601311, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500171 (current time 26.7989606625)\r\n"] +[314.605038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.605155, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.60526, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.617388, "o", "0029705666403a8b\\r\\n\r\n"] +[314.617631, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.617855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497813 (current time 26.7989630205)\r\n"] +[314.621618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.621886, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.633834, "o", "3636363636363618\\r\\n\r\n"] +[314.634116, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.634431, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499788 (current time 26.7989610455)\r\n"] +[314.637913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.638018, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.638356, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.650295, "o", "0029705666000100\\r\\n\r\n"] +[314.650718, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.650809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[314.650957, "o", "[tsffs info] Cancelling event with next time 2.999500535 (current time 26.7989602985)\r\n"] +[314.654598, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.654694, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.654963, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.667012, "o", "41416604007a696e\\r\\n\r\n"] +[314.667227, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.6674, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977755 (current time 26.798963058)\r\n"] +[314.67123, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.671388, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.671552, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.68323, "o", "1330303233343536\\r\\n\r\n"] +[314.68354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.683771, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[314.687543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.687727, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.68797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.695777, "o", "0002000021\\r\\n\r\n"] +[314.696139, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.696279, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671445 (current time 26.7987893885)\r\n"] +[314.698355, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.698457, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.698718, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.711104, "o", "1705ff00067f8ea7\\r\\n\r\n"] +[314.711237, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.711333, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494182 (current time 26.7989666515)\r\n"] +[314.714153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.714289, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.726235, "o", "002970563a3a3a3a\\r\\n\r\n"] +[314.726503, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.726729, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958085 (current time 26.798965025)\r\n"] +[314.729171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.729204, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.729608, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.74212, "o", "0029705666ff3a8b\\r\\n\r\n"] +[314.742274, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.742593, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[314.745311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.74557, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.757702, "o", "0029701000ff3a8b\\r\\n\r\n"] +[314.758001, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.758195, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958355 (current time 26.798964998)\r\n"] +[314.760903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.761111, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.774398, "o", "df5e5e5e5e5e5e5e\\r\\n\r\n"] +[314.774691, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.774947, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994891965 (current time 26.798971637)\r\n"] +[314.777783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.777798, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.777841, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.790252, "o", "002970e803ff3a8b\\r\\n\r\n"] +[314.790573, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949432 (current time 26.7989665135)\r\n"] +[314.793153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.7934, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.805787, "o", "9e727bde79fe7b78\\r\\n\r\n"] +[314.806229, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.80633, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491218 (current time 26.7989696155)\r\n"] +[314.809031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.809127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.821502, "o", "0029705666ff3a8b\\r\\n\r\n"] +[314.821947, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[314.825077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.825278, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.825488, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.837698, "o", "0029705666ff3a8b\\r\\n\r\n"] +[314.837965, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[314.841385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.841604, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.853791, "o", "002903d2f3a87017\\r\\n\r\n"] +[314.854016, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.854434, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967825 (current time 26.798964051)\r\n"] +[314.857469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.857521, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.869557, "o", "6666666666663263\\r\\n\r\n"] +[314.869824, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.869903, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499464 (current time 26.7989613695)\r\n"] +[314.873238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.873337, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.886085, "o", "758c7a696e672165\\r\\n\r\n"] +[314.886456, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.886583, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960205 (current time 26.798964813)\r\n"] +[314.890097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.890251, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.90338, "o", "c220f6c2c2f6f6f6\\r\\n\r\n"] +[314.903715, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.90395, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918575 (current time 26.798968976)\r\n"] +[314.906953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.907117, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.918802, "o", "0030313233343536\\r\\n\r\n"] +[314.919106, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.919414, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[314.922963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.923101, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.92327, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.935761, "o", "fe781b03d2f3a8cb\\r\\n\r\n"] +[314.936158, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.936569, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490819 (current time 26.7989700145)\r\n"] +[314.94046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.940568, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[314.940768, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.953884, "o", "9ee7ae727bdeaffe\\r\\n\r\n"] +[314.954193, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[314.954475, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994869505 (current time 26.798973883)\r\n"] +[314.957498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[314.957775, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.969684, "o", "757a7a0080672121\\r\\n\r\n"] +[314.970013, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978705 (current time 26.798962963)\r\n"] +[314.973703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.973889, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[314.986211, "o", "002970ff0000008b\\r\\n\r\n"] +[314.986564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497131 (current time 26.7989637025)\r\n"] +[314.989935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[314.990101, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.002157, "o", "f0f1303132333430\\r\\n\r\n"] +[315.002285, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.00251, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982105 (current time 26.798962623)\r\n"] +[315.006115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.006191, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.006396, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.018171, "o", "0029705641414141\\r\\n\r\n"] +[315.018529, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.018771, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003365 (current time 26.798960497)\r\n"] +[315.0223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.022474, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.035238, "o", "deaf757a7a69a8a8\\r\\n\r\n"] +[315.035552, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.035858, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490422 (current time 26.7989704115)\r\n"] +[315.039319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.039454, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.051953, "o", "781b03d2f3a8cbf1\\r\\n\r\n"] +[315.05227, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.052515, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492066 (current time 26.7989687675)\r\n"] +[315.056076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.056304, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.068443, "o", "002970d80b405666\\r\\n\r\n"] +[315.06883, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.068941, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978255 (current time 26.798963008)\r\n"] +[315.072673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.072712, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.0729, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.086172, "o", "ffffff1800ffffc7\\r\\n\r\n"] +[315.086569, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.086725, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486908 (current time 26.7989739255)\r\n"] +[315.089836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.089943, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.089962, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.102159, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.102422, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.102757, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[315.102855, "o", "[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.106381, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.106453, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.106622, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.118402, "o", "6721636465662121\\r\\n\r\n"] +[315.118765, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.118916, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999645 (current time 26.798960869)\r\n"] +[315.12262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.122717, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.122846, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.135539, "o", "eff0f0f0f87a696e\\r\\n\r\n"] +[315.135643, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.13578, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490439 (current time 26.7989703945)\r\n"] +[315.139549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.139656, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.150284, "o", "7f0000006f2517\\r\\n\r\n"] +[315.150629, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[315.150724, "o", "[tsffs info] Cancelling event with next time 2.999554931 (current time 26.7989059025)\r\n"] +[315.154596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.154732, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.167258, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.167503, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.167856, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.171663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.171818, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.183745, "o", "3d14800000000066\\r\\n\r\n"] +[315.183897, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.184148, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996395 (current time 26.798961194)\r\n"] +[315.188155, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.188217, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.188283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.200738, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.201152, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.205154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.205256, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.217719, "o", "001a1a1a1a1a1a81\\r\\n\r\n"] +[315.218107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940545 (current time 26.798966779)\r\n"] +[315.222157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.22227, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.234874, "o", "696e66106ef0f0ef\\r\\n\r\n"] +[315.235245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928475 (current time 26.798967986)\r\n"] +[315.238988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.23903, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.251594, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.251999, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.252048, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.256004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.256181, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.268618, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.268908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.272776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.272958, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.285387, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.285751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.289424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.289538, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.289645, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.302142, "o", "c0c0c05666ff3a3a\\r\\n\r\n"] +[315.302418, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.302618, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492179 (current time 26.7989686545)\r\n"] +[315.306174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.306306, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.306489, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.318866, "o", "00ae29705666ff3a\\r\\n\r\n"] +[315.319162, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.319407, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494232 (current time 26.7989666015)\r\n"] +[315.323033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.323246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.335537, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.335937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.339616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.339774, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.351558, "o", "0029303132333435\\r\\n\r\n"] +[315.351798, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.352012, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500452 (current time 26.7989603815)\r\n"] +[315.355809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.355893, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.368802, "o", "112ed2112ed1f92e\\r\\n\r\n"] +[315.369287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493339 (current time 26.7989674945)\r\n"] +[315.372991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.37327, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.385696, "o", "0029eb5666ff3a8b\\r\\n\r\n"] +[315.386098, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492998 (current time 26.7989678355)\r\n"] +[315.389743, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.389945, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.401961, "o", "3738398b62636465\\r\\n\r\n"] +[315.402222, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498427 (current time 26.7989624065)\r\n"] +[315.405909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.406046, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.418836, "o", "f2f1fe0cfe0cda11\\r\\n\r\n"] +[315.41913, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.419284, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948875 (current time 26.7989720835)\r\n"] +[315.422788, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.423105, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.434168, "o", "ae727bdec61760\\r\\n\r\n"] +[315.4345, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999549909 (current time 26.7989109245)\r\n"] +[315.43827, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.438353, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.438586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.451311, "o", "9cff7f7f7f7fd5d5\\r\\n\r\n"] +[315.451719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488847 (current time 26.7989719865)\r\n"] +[315.455471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.455589, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.467493, "o", "4121414141414100\\r\\n\r\n"] +[315.467719, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.467912, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007095 (current time 26.798960124)\r\n"] +[315.47154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.471694, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.484119, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.484435, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.488439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.488518, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.500759, "o", "6829700100ff3a35\\r\\n\r\n"] +[315.501023, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966885 (current time 26.798964145)\r\n"] +[315.504951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.505023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.517019, "o", "ff29704141414136\\r\\n\r\n"] +[315.517365, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.517561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977755 (current time 26.798963058)\r\n"] +[315.521286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.521482, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.521635, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.534435, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.534933, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.538862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.538959, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.55146, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.551714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.551884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.555695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.555818, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.568545, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.568927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.572906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.573032, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.573175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.585763, "o", "7fde2e0b009f01e7\\r\\n\r\n"] +[315.586123, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.58623, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920235 (current time 26.79896881)\r\n"] +[315.589774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.589891, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.602795, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.603312, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.603467, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.606622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.606705, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.619555, "o", "001b03d2f3a8cbf1\\r\\n\r\n"] +[315.619878, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.620035, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492433 (current time 26.7989684005)\r\n"] +[315.623302, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.623502, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.636176, "o", "dbf3fbf8223e3114\\r\\n\r\n"] +[315.636445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920385 (current time 26.798968795)\r\n"] +[315.639863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.640085, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.640177, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.652857, "o", "a8f1f1f1f1f1f1ff\\r\\n\r\n"] +[315.653316, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948958 (current time 26.7989712535)\r\n"] +[315.656684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.656889, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.66339, "o", "000003e8\\r\\n\r\n"] +[315.663728, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997267065 (current time 26.798734127)\r\n"] +[315.66581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.666064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.67831, "o", "41d7d6419c9c9c41\\r\\n\r\n"] +[315.678731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494002 (current time 26.7989668315)\r\n"] +[315.68139, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.681561, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.69449, "o", "bbbbbbbbedededed\\r\\n\r\n"] +[315.694869, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994818425 (current time 26.798978991)\r\n"] +[315.697516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.697642, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.710156, "o", "02007056fefefefe\\r\\n\r\n"] +[315.710587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490746 (current time 26.7989700875)\r\n"] +[315.713146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.725993, "o", "c962c2ebfe0cdb9e\\r\\n\r\n"] +[315.726203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488385 (current time 26.7989724485)\r\n"] +[315.729084, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.74103, "o", "6969696969693334\\r\\n\r\n"] +[315.741451, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499054 (current time 26.7989617795)\r\n"] +[315.744299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.756946, "o", "9fa4a4a4a3a4a4a4\\r\\n\r\n"] +[315.757395, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491095 (current time 26.7989697385)\r\n"] +[315.760468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.772925, "o", "0029705666ff3a8b\\r\\n\r\n"] +[315.773414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[315.776162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.788718, "o", "008e8e8e8e8e8e8e\\r\\n\r\n"] +[315.789182, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912925 (current time 26.798969541)\r\n"] +[315.791917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.792063, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.804635, "o", "002970569b9b9b9b\\r\\n\r\n"] +[315.805065, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951725 (current time 26.798965661)\r\n"] +[315.808167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.8083, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.820297, "o", "8b92e53031016680\\r\\n\r\n"] +[315.820723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978065 (current time 26.798963027)\r\n"] +[315.823757, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.82387, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.83566, "o", "0062663966666600\\r\\n\r\n"] +[315.836006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499912 (current time 26.7989609215)\r\n"] +[315.8396, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.839676, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.851745, "o", "0029705666003a8b\\r\\n\r\n"] +[315.852093, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.852243, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979115 (current time 26.798962922)\r\n"] +[315.856044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.856148, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.869731, "o", "0cdbfafbf8223e31\\r\\n\r\n"] +[315.869947, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[315.870093, "o", "[tsffs info] Cancelling event with next time 2.9994898275 (current time 26.798971006)\r\n"] +[315.873339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.873461, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.885788, "o", "373737b6b6373737\\r\\n\r\n"] +[315.886076, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.886341, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973575 (current time 26.798963476)\r\n"] +[315.889886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[315.890106, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.902751, "o", "cbf107c962c214fe\\r\\n\r\n"] +[315.902987, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.903132, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919725 (current time 26.798968861)\r\n"] +[315.906489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.906685, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.906848, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.918694, "o", "627d646566414141\\r\\n\r\n"] +[315.919044, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.919197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498752 (current time 26.7989620815)\r\n"] +[315.922747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.922914, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.922924, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.935646, "o", "0bbfaae9647a6641\\r\\n\r\n"] +[315.935915, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[315.936126, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491974 (current time 26.7989688595)\r\n"] +[315.939618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.939729, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[315.939847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.952332, "o", "0029705666fff87a\\r\\n\r\n"] +[315.952695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951035 (current time 26.79896573)\r\n"] +[315.956559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.968627, "o", "d67056000000009e\\r\\n\r\n"] +[315.969004, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982385 (current time 26.798962595)\r\n"] +[315.972654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.972773, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[315.985361, "o", "f3a8a89c514a4a4a\\r\\n\r\n"] +[315.985832, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491987 (current time 26.7989688465)\r\n"] +[315.989453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[315.989651, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.001788, "o", "06298f400366d2f3\\r\\n\r\n"] +[316.002197, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496511 (current time 26.7989643225)\r\n"] +[316.006027, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.006167, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.018342, "o", "606060601b13d2f3\\r\\n\r\n"] +[316.018736, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496964 (current time 26.7989638695)\r\n"] +[316.022558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.035634, "o", "40d80b4000ef0c0c\\r\\n\r\n"] +[316.035994, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936885 (current time 26.798967145)\r\n"] +[316.039793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.039977, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.052126, "o", "0029705666e2e2e2\\r\\n\r\n"] +[316.052591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965655 (current time 26.798964268)\r\n"] +[316.05639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.056541, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.068907, "o", "015170567fff3a8b\\r\\n\r\n"] +[316.069061, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.06933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942 (current time 26.7989666335)\r\n"] +[316.073096, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.073416, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.085327, "o", "00290029705666ff\\r\\n\r\n"] +[316.085706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.085869, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976855 (current time 26.798963148)\r\n"] +[316.08942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.089511, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.101987, "o", "0029705666ff3a8b\\r\\n\r\n"] +[316.102387, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[316.106233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.106409, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.106584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.118296, "o", "0404040404040404\\r\\n\r\n"] +[316.118689, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.118941, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007945 (current time 26.798960039)\r\n"] +[316.122519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.122589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.135799, "o", "d3d3f4d3d3d3223e\\r\\n\r\n"] +[316.136195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.13647, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492071 (current time 26.7989687625)\r\n"] +[316.139844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.139989, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.152475, "o", "0029705663ff3a8b\\r\\n\r\n"] +[316.152845, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495372 (current time 26.7989654615)\r\n"] +[316.156437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.156659, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.169162, "o", "442e3e43803e3e2e\\r\\n\r\n"] +[316.16943, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.169599, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494278 (current time 26.7989665555)\r\n"] +[316.173021, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.17318, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.185754, "o", "4b29705666ff3a8b\\r\\n\r\n"] +[316.186085, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940025 (current time 26.798966831)\r\n"] +[316.189707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.189935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.202352, "o", "4033d80b40a500ff\\r\\n\r\n"] +[316.202734, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.202896, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494668 (current time 26.7989661655)\r\n"] +[316.206395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.206479, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.206641, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.219275, "o", "cbf1f8e59ee71b1b\\r\\n\r\n"] +[316.219672, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.219823, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994894845 (current time 26.798971349)\r\n"] +[316.223082, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.223212, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.236025, "o", "fbf8223e303132fb\\r\\n\r\n"] +[316.236361, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.236567, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932875 (current time 26.798967546)\r\n"] +[316.239948, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.240034, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.240175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.242794, "o", "e9\\r\\n\r\n"] +[316.243257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998967595 (current time 26.798564074)\r\n"] +[316.24544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.257274, "o", "aa30313233343536\\r\\n\r\n"] +[316.257667, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981315 (current time 26.798962702)\r\n"] +[316.260729, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.272773, "o", "002970665b20ff17\\r\\n\r\n"] +[316.27315, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[316.273288, "o", "[tsffs info] Cancelling event with next time 2.99949664 (current time 26.7989641935)\r\n"] +[316.27592, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.287987, "o", "00297000000080de\\r\\n\r\n"] +[316.2882, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[316.288423, "o", "[tsffs info] Cancelling event with next time 2.9994984115 (current time 26.798962422)\r\n"] +[316.291419, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.303426, "o", "fe33346666663210\\r\\n\r\n"] +[316.30378, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976225 (current time 26.798963211)\r\n"] +[316.306951, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.307071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.318964, "o", "4141414141414166\\r\\n\r\n"] +[316.319226, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.319385, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003725 (current time 26.798960461)\r\n"] +[316.323004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.323073, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.335716, "o", "2029705666ff3a8b\\r\\n\r\n"] +[316.336084, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.336272, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495249 (current time 26.7989655845)\r\n"] +[316.339943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.340086, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.35251, "o", "0029705666ff3a8b\\r\\n\r\n"] +[316.352882, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[316.356592, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.356721, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.370269, "o", "aeaeaeaeaeaeaeae\\r\\n\r\n"] +[316.370562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.370658, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994818665 (current time 26.798978967)\r\n"] +[316.373798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.385718, "o", "3031323334353637\\r\\n\r\n"] +[316.386146, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[316.389713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.389846, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.402658, "o", "0029705666ff3a8b\\r\\n\r\n"] +[316.402849, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.403088, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[316.406741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.406846, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.419343, "o", "705666e7e7e7e7f8\\r\\n\r\n"] +[316.419664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.419883, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493523 (current time 26.7989673105)\r\n"] +[316.423405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.423531, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.436385, "o", "66757a7a696e6c17\\r\\n\r\n"] +[316.436568, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[316.4367, "o", "[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[316.440241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.440359, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.440498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.452461, "o", "00326f5670561700\\r\\n\r\n"] +[316.452872, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.453059, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499071 (current time 26.7989617625)\r\n"] +[316.456522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.456659, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.469072, "o", "0029705666ff3a8b\\r\\n\r\n"] +[316.469433, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.469678, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[316.473153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.473379, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.485056, "o", "0000000000000000\\r\\n\r\n"] +[316.485354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.485436, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[316.489315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.489485, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.502116, "o", "0029705666ff3a8b\\r\\n\r\n"] +[316.502608, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953035 (current time 26.79896553)\r\n"] +[316.50628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.506487, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.506497, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.518392, "o", "3630313233343536\\r\\n\r\n"] +[316.518752, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.51891, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500277 (current time 26.7989605565)\r\n"] +[316.522619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.522658, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.535088, "o", "0e173a8b3a8b1739\\r\\n\r\n"] +[316.535434, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942755 (current time 26.798966558)\r\n"] +[316.539369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.53952, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.55199, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[316.552379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[316.556061, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.556338, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.56879, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[316.569, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.569279, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[316.572877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.572996, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.589683, "o", "015151\\r\\n\r\n"] +[316.590817, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[316.593804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.593907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.599026, "o", "015151\\r\\n\r\n"] +[316.599394, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[316.602911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.603028, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.60311, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.608461, "o", "015151\\r\\n\r\n"] +[316.608874, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[316.611598, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.616844, "o", "015151\\r\\n\r\n"] +[316.617268, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[316.621086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.621184, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.621336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.626646, "o", "015151\\r\\n\r\n"] +[316.626951, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[316.629373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.629477, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.634743, "o", "085151\\r\\n\r\n"] +[316.635168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[316.638768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.638867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.644054, "o", "015151\\r\\n\r\n"] +[316.644339, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[316.646708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.6587, "o", "656639616266757a\\r\\n\r\n"] +[316.658962, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.659136, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983845 (current time 26.798962449)\r\n"] +[316.661966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.674327, "o", "626262620ccbf1c9\\r\\n\r\n"] +[316.674652, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494315 (current time 26.7989665185)\r\n"] +[316.677506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.690069, "o", "696e6c17deaffe78\\r\\n\r\n"] +[316.690341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902305 (current time 26.798970603)\r\n"] +[316.693115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.698263, "o", "301111\\r\\n\r\n"] +[316.698578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847145 (current time 26.798676119)\r\n"] +[316.701252, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.71302, "o", "3231323319353637\\r\\n\r\n"] +[316.71333, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500117 (current time 26.7989607165)\r\n"] +[316.715769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.727616, "o", "0130313233343031\\r\\n\r\n"] +[316.727967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500708 (current time 26.7989601255)\r\n"] +[316.73055, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.742656, "o", "d0ff803330313233\\r\\n\r\n"] +[316.742973, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969005 (current time 26.798963933)\r\n"] +[316.746115, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.758254, "o", "6675333333333321\\r\\n\r\n"] +[316.758515, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[316.761359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.773827, "o", "1212121212121212\\r\\n\r\n"] +[316.774084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[316.776765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.776916, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.788134, "o", "4a4ae94a4a4a00\\r\\n\r\n"] +[316.788384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999550334 (current time 26.7989104995)\r\n"] +[316.791428, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.804166, "o", "fb76c962c2fb0cff\\r\\n\r\n"] +[316.804453, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994894585 (current time 26.798971375)\r\n"] +[316.807766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.819613, "o", "3011323334353664\\r\\n\r\n"] +[316.819989, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500302 (current time 26.7989605315)\r\n"] +[316.8234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.835692, "o", "8000003fff7f0000\\r\\n\r\n"] +[316.836053, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959215 (current time 26.798964912)\r\n"] +[316.83966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.852428, "o", "510151c1c1c1c1c1\\r\\n\r\n"] +[316.852524, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948975 (current time 26.798965936)\r\n"] +[316.856318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.868405, "o", "7373318989893535\\r\\n\r\n"] +[316.868857, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499327 (current time 26.7989615065)\r\n"] +[316.872525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.872642, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.884489, "o", "3031323334353637\\r\\n\r\n"] +[316.884745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[316.888665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.900941, "o", "8888888888311141\\r\\n\r\n"] +[316.900985, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.901068, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499371 (current time 26.7989614625)\r\n"] +[316.905214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.917156, "o", "5151000202020200\\r\\n\r\n"] +[316.917383, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.917655, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995010495 (current time 26.798959784)\r\n"] +[316.921577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[316.921695, "o", "[tsffs info] Resuming simulation\r\n"] +[316.928363, "o", "e9015551\\r\\n\r\n"] +[316.928696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997263155 (current time 26.798734518)\r\n"] +[316.931104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.931211, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.943062, "o", "0080517a33333300\\r\\n\r\n"] +[316.943336, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.943549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499405 (current time 26.7989614285)\r\n"] +[316.946102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.946198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.958435, "o", "f1f9c962781b6161\\r\\n\r\n"] +[316.9587, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[316.958903, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495107 (current time 26.7989657265)\r\n"] +[316.961611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.961729, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.965457, "o", "5152\\r\\n\r\n"] +[316.965774, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412535 (current time 26.79861958)\r\n"] +[316.969071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[316.969116, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[316.969268, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.980732, "o", "0080323333333351\\r\\n\r\n"] +[316.981226, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500478 (current time 26.7989603555)\r\n"] +[316.984452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[316.984562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[316.996702, "o", "2130f04166757a7a\\r\\n\r\n"] +[316.997004, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496665 (current time 26.7989641685)\r\n"] +[316.999754, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.005231, "o", "017051\\r\\n\r\n"] +[317.005513, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784556 (current time 26.7986762775)\r\n"] +[317.008172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.020486, "o", "696e6721f107c962\\r\\n\r\n"] +[317.020725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496212 (current time 26.7989646215)\r\n"] +[317.023748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.03663, "o", "a4a4a4a43031bf30\\r\\n\r\n"] +[317.036883, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936755 (current time 26.798967158)\r\n"] +[317.040298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.040405, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.045828, "o", "66e2e2\\r\\n\r\n"] +[317.046181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781958 (current time 26.7986788755)\r\n"] +[317.048159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.060761, "o", "0e0e0e0e0e0e0e0e\\r\\n\r\n"] +[317.06108, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913465 (current time 26.798969487)\r\n"] +[317.063826, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.073221, "o", "6c51516c5151\\r\\n\r\n"] +[317.073591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996115255 (current time 26.798849308)\r\n"] +[317.076339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.07644, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.088475, "o", "28282828a8282828\\r\\n\r\n"] +[317.088745, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[317.08892, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498492 (current time 26.7989623415)\r\n"] +[317.09183, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.091937, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.103669, "o", "0130313233343536\\r\\n\r\n"] +[317.103955, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[317.104146, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[317.107172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.107304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.112562, "o", "01a5f0\\r\\n\r\n"] +[317.112881, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782276 (current time 26.7986785575)\r\n"] +[317.114996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.115092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.126936, "o", "0b6f6f3080000000\\r\\n\r\n"] +[317.127347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972105 (current time 26.798963623)\r\n"] +[317.13006, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.134021, "o", "5251\\r\\n\r\n"] +[317.134264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412535 (current time 26.79861958)\r\n"] +[317.138008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.138154, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.14222, "o", "804d\\r\\n\r\n"] +[317.142601, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840051 (current time 26.7986207825)\r\n"] +[317.14504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.145141, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.156746, "o", "0251303132333435\\r\\n\r\n"] +[317.157138, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500514 (current time 26.7989603195)\r\n"] +[317.160131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.160249, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.171993, "o", "3031323234353637\\r\\n\r\n"] +[317.172332, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[317.172489, "o", "[tsffs info] Cancelling event with next time 2.9995002705 (current time 26.798960563)\r\n"] +[317.175154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.181969, "o", "5e005e1b\\r\\n\r\n"] +[317.182307, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997242105 (current time 26.798736623)\r\n"] +[317.185824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.185846, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.188898, "o", "fe\\r\\n\r\n"] +[317.189419, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895675 (current time 26.7985651585)\r\n"] +[317.191775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.203752, "o", "0151ae3031323334\\r\\n\r\n"] +[317.204042, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982745 (current time 26.798962559)\r\n"] +[317.207076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.219482, "o", "343434343434ffff\\r\\n\r\n"] +[317.219653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953075 (current time 26.798965526)\r\n"] +[317.223362, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.228909, "o", "fe5151\\r\\n\r\n"] +[317.229121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782024 (current time 26.7986788095)\r\n"] +[317.231357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.243088, "o", "6436353830313233\\r\\n\r\n"] +[317.243383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001645 (current time 26.798960669)\r\n"] +[317.24614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.246242, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.258345, "o", "41411c1c1c1c3031\\r\\n\r\n"] +[317.258695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496062 (current time 26.7989647715)\r\n"] +[317.261602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.273749, "o", "f3a8c962c2303132\\r\\n\r\n"] +[317.274006, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[317.274197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495559 (current time 26.7989652745)\r\n"] +[317.276883, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.282211, "o", "51c0a6\\r\\n\r\n"] +[317.282604, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821985 (current time 26.798678635)\r\n"] +[317.285959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.28609, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[317.286247, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.298064, "o", "6263646566413233\\r\\n\r\n"] +[317.2984, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499928 (current time 26.7989609055)\r\n"] +[317.302095, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.302219, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.314279, "o", "9a61616161616161\\r\\n\r\n"] +[317.31454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498925 (current time 26.7989619085)\r\n"] +[317.317649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.325951, "o", "01510bbf51\\r\\n\r\n"] +[317.32623, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966753 (current time 26.7987933035)\r\n"] +[317.329927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.341801, "o", "5151515151515151\\r\\n\r\n"] +[317.342129, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003225 (current time 26.798960511)\r\n"] +[317.345201, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.353188, "o", "0140004040\\r\\n\r\n"] +[317.353483, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996712585 (current time 26.798789575)\r\n"] +[317.35671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.36937, "o", "32313d3dc33d313d\\r\\n\r\n"] +[317.369771, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494602 (current time 26.7989662315)\r\n"] +[317.373337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.38524, "o", "3839616263000004\\r\\n\r\n"] +[317.385486, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003135 (current time 26.79896052)\r\n"] +[317.389195, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.39451, "o", "303031\\r\\n\r\n"] +[317.394809, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784656 (current time 26.7986761775)\r\n"] +[317.396903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.40105, "o", "51ae\\r\\n\r\n"] +[317.40129, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389685 (current time 26.798621865)\r\n"] +[317.405004, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.405131, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.417387, "o", "484848c2c2501000\\r\\n\r\n"] +[317.41759, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[317.417703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497979 (current time 26.7989628545)\r\n"] +[317.421516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.421568, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.434227, "o", "00d1d1d1d1d1d80b\\r\\n\r\n"] +[317.434593, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492524 (current time 26.7989683095)\r\n"] +[317.438398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.450636, "o", "936e67211e373839\\r\\n\r\n"] +[317.450877, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973165 (current time 26.798963517)\r\n"] +[317.454724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.454855, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.468183, "o", "ffffaaaaaaaaaaaa\\r\\n\r\n"] +[317.468448, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994821465 (current time 26.798978687)\r\n"] +[317.472157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.48419, "o", "3132300032323335\\r\\n\r\n"] +[317.484496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006375 (current time 26.798960196)\r\n"] +[317.488229, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.500548, "o", "07c900040000077f\\r\\n\r\n"] +[317.500757, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498196 (current time 26.7989626375)\r\n"] +[317.504652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.504753, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.508784, "o", "6006\\r\\n\r\n"] +[317.509072, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412975 (current time 26.798619536)\r\n"] +[317.511444, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.523895, "o", "c7f3a8ec30313233\\r\\n\r\n"] +[317.524169, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494422 (current time 26.7989664115)\r\n"] +[317.527024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.54061, "o", "fefefefefefefefe\\r\\n\r\n"] +[317.540927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994809145 (current time 26.798979919)\r\n"] +[317.543844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.556242, "o", "0151303132333435\\r\\n\r\n"] +[317.556564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[317.559377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.565914, "o", "08660000\\r\\n\r\n"] +[317.566312, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727771 (current time 26.7987330625)\r\n"] +[317.570046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.570175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.57312, "o", "ae\\r\\n\r\n"] +[317.573482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895794 (current time 26.7985650395)\r\n"] +[317.577176, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.589336, "o", "3233323564303132\\r\\n\r\n"] +[317.589622, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003925 (current time 26.798960441)\r\n"] +[317.592833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.604847, "o", "342c363738396162\\r\\n\r\n"] +[317.605303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986915 (current time 26.798962142)\r\n"] +[317.608329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.610704, "o", "51\\r\\n\r\n"] +[317.611038, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[317.612916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.624979, "o", "4166757a7a696e67\\r\\n\r\n"] +[317.625244, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496019 (current time 26.7989648145)\r\n"] +[317.628156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.63998, "o", "39363738b0363738\\r\\n\r\n"] +[317.640411, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985875 (current time 26.798962246)\r\n"] +[317.642911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.654568, "o", "6241004000414163\\r\\n\r\n"] +[317.65491, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006655 (current time 26.798960168)\r\n"] +[317.658053, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.661865, "o", "014e\\r\\n\r\n"] +[317.662237, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984018 (current time 26.7986206535)\r\n"] +[317.664169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.668328, "o", "00ff\\r\\n\r\n"] +[317.66879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389825 (current time 26.798621851)\r\n"] +[317.672083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.67212, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[317.672204, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.67624, "o", "7451\\r\\n\r\n"] +[317.676677, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841158 (current time 26.7986196755)\r\n"] +[317.678895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[317.679028, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.691347, "o", "7f757a6641414141\\r\\n\r\n"] +[317.691747, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497622 (current time 26.7989632115)\r\n"] +[317.694421, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.694524, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.706957, "o", "a8aca8a858a80010\\r\\n\r\n"] +[317.707326, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933125 (current time 26.798967521)\r\n"] +[317.710057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.722995, "o", "5051ffcffafafafa\\r\\n\r\n"] +[317.723323, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486197 (current time 26.7989746365)\r\n"] +[317.726807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.726971, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.73233, "o", "e97e51\\r\\n\r\n"] +[317.732751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978181 (current time 26.7986790235)\r\n"] +[317.735835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.74833, "o", "7866ff3a8b9ee59e\\r\\n\r\n"] +[317.748662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491256 (current time 26.7989695775)\r\n"] +[317.752044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.764421, "o", "abab993031323334\\r\\n\r\n"] +[317.764753, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495715 (current time 26.7989651185)\r\n"] +[317.767708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.779932, "o", "3030660b1b0b0b0b\\r\\n\r\n"] +[317.78032, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950885 (current time 26.798965745)\r\n"] +[317.782715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.792118, "o", "519293929292\\r\\n\r\n"] +[317.792464, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996133675 (current time 26.798847466)\r\n"] +[317.795304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.806975, "o", "0042515151515151\\r\\n\r\n"] +[317.807279, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004845 (current time 26.798960349)\r\n"] +[317.809877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.812387, "o", "01\\r\\n\r\n"] +[317.812784, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[317.814673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.82733, "o", "05ffff18ff180700\\r\\n\r\n"] +[317.827786, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493011 (current time 26.7989678225)\r\n"] +[317.830242, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.843387, "o", "fe3dae303132cd34\\r\\n\r\n"] +[317.843777, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492223 (current time 26.7989686105)\r\n"] +[317.846385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.859193, "o", "e9b1dbfa7a696e6c\\r\\n\r\n"] +[317.859433, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893715 (current time 26.798971462)\r\n"] +[317.862357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.874706, "o", "510bd80bbfa5e951\\r\\n\r\n"] +[317.87512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492106 (current time 26.7989687275)\r\n"] +[317.877911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.889813, "o", "4141414132636462\\r\\n\r\n"] +[317.890052, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002555 (current time 26.798960578)\r\n"] +[317.892857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.90463, "o", "2163636330313233\\r\\n\r\n"] +[317.904776, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[317.904889, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500345 (current time 26.7989604885)\r\n"] +[317.907956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.920115, "o", "0040ff3031324166\\r\\n\r\n"] +[317.920359, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498131 (current time 26.7989627025)\r\n"] +[317.923507, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.926236, "o", "cd\\r\\n\r\n"] +[317.926718, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895773 (current time 26.7985650605)\r\n"] +[317.929078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.932829, "o", "0101\\r\\n\r\n"] +[317.933176, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415255 (current time 26.798619308)\r\n"] +[317.936423, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.94956, "o", "f6184aeeeeeeeeea\\r\\n\r\n"] +[317.949753, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485925 (current time 26.7989749085)\r\n"] +[317.954174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[317.954248, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.956936, "o", "31\\r\\n\r\n"] +[317.957223, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898148 (current time 26.7985626855)\r\n"] +[317.959633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.971668, "o", "38453838c8383838\\r\\n\r\n"] +[317.971852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983225 (current time 26.798962511)\r\n"] +[317.974935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[317.9872, "o", "38e3619d01646569\\r\\n\r\n"] +[317.98745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973925 (current time 26.798963441)\r\n"] +[317.990542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.003162, "o", "004c214c4c4c214c\\r\\n\r\n"] +[318.003388, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494741 (current time 26.7989660925)\r\n"] +[318.00703, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.007155, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.019667, "o", "00f0f0f0f0fdf0f0\\r\\n\r\n"] +[318.019956, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.020156, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491204 (current time 26.7989696295)\r\n"] +[318.023617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.023765, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.035613, "o", "3536373839616263\\r\\n\r\n"] +[318.035806, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.036062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[318.039395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.039498, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[318.039915, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.051645, "o", "f107303132332435\\r\\n\r\n"] +[318.052027, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992365 (current time 26.798961597)\r\n"] +[318.05562, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.067918, "o", "cb30313233343536\\r\\n\r\n"] +[318.068301, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498064 (current time 26.7989627695)\r\n"] +[318.071965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.072048, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.076114, "o", "c551\\r\\n\r\n"] +[318.07648, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840073 (current time 26.7986207605)\r\n"] +[318.078763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.078974, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.091783, "o", "dfdf02dfdfdfffff\\r\\n\r\n"] +[318.092142, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994835395 (current time 26.798977294)\r\n"] +[318.094943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.106559, "o", "0151667533008000\\r\\n\r\n"] +[318.106889, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004515 (current time 26.798960382)\r\n"] +[318.109419, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.111889, "o", "51\\r\\n\r\n"] +[318.112264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[318.114838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.12161, "o", "64ff0080\\r\\n\r\n"] +[318.12198, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725211 (current time 26.7987356225)\r\n"] +[318.124686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.128802, "o", "7ffe\\r\\n\r\n"] +[318.129158, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998375265 (current time 26.798623307)\r\n"] +[318.131112, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.14321, "o", "305c7533cc33305c\\r\\n\r\n"] +[318.143611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495623 (current time 26.7989652105)\r\n"] +[318.146358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.148706, "o", "00\\r\\n\r\n"] +[318.149037, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998982585 (current time 26.798562575)\r\n"] +[318.152103, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.164972, "o", "66ff3a8b9ee59ee7\\r\\n\r\n"] +[318.165264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901635 (current time 26.79897067)\r\n"] +[318.168798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.168948, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.180818, "o", "3031303132333436\\r\\n\r\n"] +[318.181071, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500516 (current time 26.7989603175)\r\n"] +[318.183731, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.19638, "o", "7a7ad0d040007a7a\\r\\n\r\n"] +[318.196683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493537 (current time 26.7989672965)\r\n"] +[318.198993, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.203355, "o", "40ae\\r\\n\r\n"] +[318.203698, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998390275 (current time 26.798621806)\r\n"] +[318.206696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.21974, "o", "696e6c17deaffe78\\r\\n\r\n"] +[318.220147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902305 (current time 26.798970603)\r\n"] +[318.223567, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.236232, "o", "403838c7c7c7c7c7\\r\\n\r\n"] +[318.236489, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938895 (current time 26.798966944)\r\n"] +[318.240138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.245554, "o", "f00051\\r\\n\r\n"] +[318.245867, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783461 (current time 26.7986773725)\r\n"] +[318.247928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.26066, "o", "a2a2a2a2a2a2a2f4\\r\\n\r\n"] +[318.260946, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915035 (current time 26.79896933)\r\n"] +[318.263516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.275753, "o", "31323637ae383436\\r\\n\r\n"] +[318.276077, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977265 (current time 26.798963107)\r\n"] +[318.278926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.288608, "o", "f8f9623d4e30\\r\\n\r\n"] +[318.289037, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999608915 (current time 26.7988519185)\r\n"] +[318.291704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.303486, "o", "3031323334343637\\r\\n\r\n"] +[318.303858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002735 (current time 26.79896056)\r\n"] +[318.306975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.319856, "o", "01c33c3c3c3c3c3c\\r\\n\r\n"] +[318.320084, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492359 (current time 26.7989684745)\r\n"] +[318.323604, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.332021, "o", "0151cbcbcb\\r\\n\r\n"] +[318.332355, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664084 (current time 26.7987967495)\r\n"] +[318.335779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.335919, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.348008, "o", "fa51313132331535\\r\\n\r\n"] +[318.348356, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498066 (current time 26.7989627675)\r\n"] +[318.35144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.364339, "o", "6641ffffff7f3435\\r\\n\r\n"] +[318.364599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491471 (current time 26.7989693625)\r\n"] +[318.367032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.379021, "o", "0133297233345836\\r\\n\r\n"] +[318.379344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000165 (current time 26.798960817)\r\n"] +[318.381774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.393719, "o", "01518401010101ff\\r\\n\r\n"] +[318.393857, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983655 (current time 26.798962468)\r\n"] +[318.396429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.401771, "o", "515130\\r\\n\r\n"] +[318.40208, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845295 (current time 26.798676304)\r\n"] +[318.405518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.417919, "o", "3334fe78390bbf31\\r\\n\r\n"] +[318.418166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941825 (current time 26.798966651)\r\n"] +[318.421907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.427159, "o", "010178\\r\\n\r\n"] +[318.427483, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844905 (current time 26.798676343)\r\n"] +[318.429726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.441635, "o", "ff30313233343563\\r\\n\r\n"] +[318.441967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978935 (current time 26.79896294)\r\n"] +[318.444779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.450088, "o", "027f00\\r\\n\r\n"] +[318.45031, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833875 (current time 26.798677446)\r\n"] +[318.454041, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.454198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.46592, "o", "3435343733424234\\r\\n\r\n"] +[318.466139, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001335 (current time 26.7989607)\r\n"] +[318.469873, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.470151, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.477448, "o", "52dcdcdc\\r\\n\r\n"] +[318.477668, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997206185 (current time 26.798740215)\r\n"] +[318.480079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.48276, "o", "af\\r\\n\r\n"] +[318.483056, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998957695 (current time 26.798565064)\r\n"] +[318.486261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.490426, "o", "0e0f\\r\\n\r\n"] +[318.490737, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839007 (current time 26.7986218265)\r\n"] +[318.492869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.505999, "o", "a8a8a8a8a8cbf161\\r\\n\r\n"] +[318.506466, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490752 (current time 26.7989700815)\r\n"] +[318.508993, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.513023, "o", "e803\\r\\n\r\n"] +[318.513383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400425 (current time 26.798620791)\r\n"] +[318.515394, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.528053, "o", "ebebeb3637383961\\r\\n\r\n"] +[318.528382, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929125 (current time 26.798967921)\r\n"] +[318.530779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.543181, "o", "66576666ff7f1236\\r\\n\r\n"] +[318.543483, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959985 (current time 26.798964835)\r\n"] +[318.546117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.557845, "o", "1830313233343536\\r\\n\r\n"] +[318.55819, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002785 (current time 26.798960555)\r\n"] +[318.560967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.564739, "o", "0351\\r\\n\r\n"] +[318.565031, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841355 (current time 26.7986194785)\r\n"] +[318.56764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.576942, "o", "303132333435\\r\\n\r\n"] +[318.57725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999614062 (current time 26.7988467715)\r\n"] +[318.579617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.587894, "o", "314e4e98af\\r\\n\r\n"] +[318.58832, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999665821 (current time 26.7987950125)\r\n"] +[318.591297, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.603291, "o", "8c2f313254343436\\r\\n\r\n"] +[318.603528, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977545 (current time 26.798963079)\r\n"] +[318.606798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.606898, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.612102, "o", "005153\\r\\n\r\n"] +[318.612447, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784562 (current time 26.7986762715)\r\n"] +[318.614508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.626036, "o", "0000020000010029\\r\\n\r\n"] +[318.626376, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995012215 (current time 26.798959612)\r\n"] +[318.629118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.632887, "o", "1000\\r\\n\r\n"] +[318.633191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[318.636798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.636943, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.642325, "o", "015351\\r\\n\r\n"] +[318.642665, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845295 (current time 26.798676304)\r\n"] +[318.6452, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.657236, "o", "21ec626364363636\\r\\n\r\n"] +[318.657492, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497637 (current time 26.7989631965)\r\n"] +[318.660558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.660673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.672973, "o", "7a006757575757c8\\r\\n\r\n"] +[318.673286, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972665 (current time 26.798963567)\r\n"] +[318.675967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.676128, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.68786, "o", "0151517171710150\\r\\n\r\n"] +[318.688235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004505 (current time 26.798960383)\r\n"] +[318.691298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.703724, "o", "9797303132333435\\r\\n\r\n"] +[318.704073, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[318.704256, "o", "[tsffs info] Cancelling event with next time 2.999499934 (current time 26.7989608995)\r\n"] +[318.707105, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.707324, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.719616, "o", "f920ff303132333a\\r\\n\r\n"] +[318.719846, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.720058, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956565 (current time 26.798965177)\r\n"] +[318.723525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.723672, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.731609, "o", "0141514151\\r\\n\r\n"] +[318.732066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670977 (current time 26.7987898565)\r\n"] +[318.735432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.740977, "o", "01ae51\\r\\n\r\n"] +[318.74135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[318.743972, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.750544, "o", "01510151\\r\\n\r\n"] +[318.750922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[318.751123, "o", "[tsffs info] Cancelling event with next time 2.9997278745 (current time 26.798732959)\r\n"] +[318.754565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.754723, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.766571, "o", "3031183434353637\\r\\n\r\n"] +[318.766995, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500136 (current time 26.7989606975)\r\n"] +[318.770962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.771102, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.782959, "o", "6666373839616263\\r\\n\r\n"] +[318.783248, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.78353, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499568 (current time 26.7989612655)\r\n"] +[318.787441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.787694, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.799933, "o", "51303101510cd0c8\\r\\n\r\n"] +[318.800252, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.800491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971355 (current time 26.798963698)\r\n"] +[318.804384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.804563, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[318.804724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.817281, "o", "a9a965ffffff7f75\\r\\n\r\n"] +[318.817613, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.817808, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488896 (current time 26.7989719375)\r\n"] +[318.821553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.821733, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.834288, "o", "e2e2e2e20080ff2a\\r\\n\r\n"] +[318.834819, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922085 (current time 26.798968625)\r\n"] +[318.83833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.838571, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.842861, "o", "fd01\\r\\n\r\n"] +[318.843314, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998390035 (current time 26.79862183)\r\n"] +[318.845743, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.84592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.849618, "o", "2067\\r\\n\r\n"] +[318.850007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841213 (current time 26.7986196205)\r\n"] +[318.85366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.853871, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.865758, "o", "686830315c672100\\r\\n\r\n"] +[318.866178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949895 (current time 26.7989618835)\r\n"] +[318.869956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.870176, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.874237, "o", "0151\\r\\n\r\n"] +[318.874507, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[318.877118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.877379, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.889624, "o", "333435da26266675\\r\\n\r\n"] +[318.889957, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497615 (current time 26.7989632185)\r\n"] +[318.892534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.892882, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.904725, "o", "30617131323334e8\\r\\n\r\n"] +[318.90505, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.905313, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499071 (current time 26.7989617625)\r\n"] +[318.908179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.908284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.913591, "o", "4151ae\\r\\n\r\n"] +[318.914028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821695 (current time 26.798678664)\r\n"] +[318.91613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.916284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.928676, "o", "35ff8b8b8000a466\\r\\n\r\n"] +[318.928935, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.928965, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942185 (current time 26.798966615)\r\n"] +[318.931614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.934242, "o", "40\\r\\n\r\n"] +[318.934762, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99989816 (current time 26.7985626735)\r\n"] +[318.938204, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[318.93835, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.951358, "o", "10efefefefefefef\\r\\n\r\n"] +[318.951757, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[318.951988, "o", "[tsffs info] Cancelling event with next time 2.9994834655 (current time 26.798977368)\r\n"] +[318.955512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.967365, "o", "3635383975626364\\r\\n\r\n"] +[318.96787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[318.968012, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499617 (current time 26.7989612165)\r\n"] +[318.971454, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[318.971617, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.974202, "o", "66\\r\\n\r\n"] +[318.974547, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999897962 (current time 26.7985628715)\r\n"] +[318.976924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[318.98902, "o", "510001d0d0d0d094\\r\\n\r\n"] +[318.989403, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960725 (current time 26.798964761)\r\n"] +[318.992165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.004452, "o", "9aa1202828303132\\r\\n\r\n"] +[319.004772, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498095 (current time 26.7989627385)\r\n"] +[319.00778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.007809, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.021444, "o", "666666667b7b647b\\r\\n\r\n"] +[319.02178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496025 (current time 26.7989648085)\r\n"] +[319.025943, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.026104, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.038189, "o", "10fef53031323334\\r\\n\r\n"] +[319.038541, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496884 (current time 26.7989639495)\r\n"] +[319.042469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.042556, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.042683, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.04926, "o", "00010096\\r\\n\r\n"] +[319.049522, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[319.04978, "o", "[tsffs info] Cancelling event with next time 2.999727856 (current time 26.7987329775)\r\n"] +[319.054104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.05413, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.066261, "o", "ff3031323334781b\\r\\n\r\n"] +[319.066574, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496719 (current time 26.7989641145)\r\n"] +[319.070622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.070778, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.07627, "o", "01ae51\\r\\n\r\n"] +[319.076594, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[319.079053, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.090941, "o", "50014014b967b050\\r\\n\r\n"] +[319.091239, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498123 (current time 26.7989627105)\r\n"] +[319.094071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.10661, "o", "d517deaffe121b03\\r\\n\r\n"] +[319.10692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909955 (current time 26.798969838)\r\n"] +[319.109716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.109887, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.117786, "o", "3131311b31\\r\\n\r\n"] +[319.118164, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996699095 (current time 26.798790924)\r\n"] +[319.12179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.121934, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.134401, "o", "31ffff0101010101\\r\\n\r\n"] +[319.134769, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.135042, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960935 (current time 26.79896474)\r\n"] +[319.138443, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.138645, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.150501, "o", "4141008032333435\\r\\n\r\n"] +[319.150737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.150964, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500462 (current time 26.7989603715)\r\n"] +[319.15454, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.154657, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.154776, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.166363, "o", "0050005100303132\\r\\n\r\n"] +[319.166685, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.166987, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500979 (current time 26.7989598545)\r\n"] +[319.170675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.170853, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.170967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.183165, "o", "dd95966996393939\\r\\n\r\n"] +[319.183514, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.183761, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967465 (current time 26.798964087)\r\n"] +[319.187609, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.187735, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.187903, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.200666, "o", "c87267cb9ee7deaf\\r\\n\r\n"] +[319.201002, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994891915 (current time 26.798971642)\r\n"] +[319.204776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.204902, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.205022, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.214632, "o", "fe0cdb717151\\r\\n\r\n"] +[319.214978, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.215175, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996080715 (current time 26.798852762)\r\n"] +[319.218375, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.218443, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.218708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.230634, "o", "013031323334ca36\\r\\n\r\n"] +[319.230776, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.231102, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498252 (current time 26.7989625815)\r\n"] +[319.233528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.233596, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.246416, "o", "5b5b4d4d4d4d4d4e\\r\\n\r\n"] +[319.246773, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.246844, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908045 (current time 26.798970029)\r\n"] +[319.249301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.249378, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.262174, "o", "01c962781b03d2a8\\r\\n\r\n"] +[319.262533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495534 (current time 26.7989652995)\r\n"] +[319.26505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.273191, "o", "51a8b85151\\r\\n\r\n"] +[319.273565, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996683455 (current time 26.798792488)\r\n"] +[319.276402, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.28708, "o", "51515151510151\\r\\n\r\n"] +[319.287566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999557273 (current time 26.7989035605)\r\n"] +[319.290507, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.302201, "o", "6111303132333435\\r\\n\r\n"] +[319.302525, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.302762, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500482 (current time 26.7989603515)\r\n"] +[319.306192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.3063, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.318702, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[319.318985, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[319.322686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.322876, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.335521, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[319.335875, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.336099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[319.33964, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.339756, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.356369, "o", "015151\\r\\n\r\n"] +[319.357258, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.357571, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[319.360463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.360558, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.365736, "o", "015151\\r\\n\r\n"] +[319.366051, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.366071, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[319.369261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.369463, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.369703, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.37505, "o", "015151\\r\\n\r\n"] +[319.375432, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[319.377917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.378025, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.383143, "o", "015151\\r\\n\r\n"] +[319.383667, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[319.387227, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.387453, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.391498, "o", "b071\\r\\n\r\n"] +[319.391849, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840179 (current time 26.7986206545)\r\n"] +[319.394251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.406708, "o", "40bef1f0f0f0f0f0\\r\\n\r\n"] +[319.407019, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911455 (current time 26.798969688)\r\n"] +[319.409869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.421826, "o", "5903303132cc3435\\r\\n\r\n"] +[319.422133, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[319.422223, "o", "[tsffs info] Cancelling event with next time 2.9994979895 (current time 26.798962844)\r\n"] +[319.425171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.425211, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.43773, "o", "0801fb2e2e2e2e2e\\r\\n\r\n"] +[319.438016, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.438153, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492183 (current time 26.7989686505)\r\n"] +[319.44136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.44141, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.441592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.453537, "o", "4130313233343536\\r\\n\r\n"] +[319.453787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.454017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003705 (current time 26.798960463)\r\n"] +[319.456964, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.457057, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.457202, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.469726, "o", "66f0f0f0f0f0f0f0\\r\\n\r\n"] +[319.469918, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.470122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492158 (current time 26.7989686755)\r\n"] +[319.473447, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.473679, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.486164, "o", "79ff0cff5d304166\\r\\n\r\n"] +[319.486434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.486784, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492858 (current time 26.7989679755)\r\n"] +[319.490072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.490193, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.490362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.502935, "o", "a8a8a8a8a8a857a8\\r\\n\r\n"] +[319.503226, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.503382, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916525 (current time 26.798969181)\r\n"] +[319.506744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.506882, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.518755, "o", "0151513031323366\\r\\n\r\n"] +[319.51901, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.519203, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500465 (current time 26.7989603685)\r\n"] +[319.522491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.522588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.534649, "o", "5151517fff515101\\r\\n\r\n"] +[319.534989, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.53519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496674 (current time 26.7989641595)\r\n"] +[319.538545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.538727, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.551814, "o", "3b3c6d6d3b6d0d0d\\r\\n\r\n"] +[319.552079, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910165 (current time 26.798969817)\r\n"] +[319.556009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.556198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.568019, "o", "3536373839616263\\r\\n\r\n"] +[319.568235, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.568431, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[319.572175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.572315, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.577843, "o", "01b851\\r\\n\r\n"] +[319.578349, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[319.578475, "o", "[tsffs info] Cancelling event with next time 2.9997833395 (current time 26.798677494)\r\n"] +[319.580665, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.580751, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.584739, "o", "6e51\\r\\n\r\n"] +[319.585104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.585314, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840007 (current time 26.7986208265)\r\n"] +[319.588375, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.588573, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.600669, "o", "0234018968893b3b\\r\\n\r\n"] +[319.601005, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.601216, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497601 (current time 26.7989632325)\r\n"] +[319.60478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.604961, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.605055, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.617976, "o", "017a7a7a7a7a7a7a\\r\\n\r\n"] +[319.618272, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.618437, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920195 (current time 26.798968814)\r\n"] +[319.621932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.622062, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.634217, "o", "0c6e303132643435\\r\\n\r\n"] +[319.634459, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.63472, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497976 (current time 26.7989628575)\r\n"] +[319.638281, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.638501, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.638622, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.650396, "o", "3233343536303137\\r\\n\r\n"] +[319.650712, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[319.654508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.654669, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.66383, "o", "515151515151\\r\\n\r\n"] +[319.664149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996139735 (current time 26.79884686)\r\n"] +[319.666825, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.666982, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.672471, "o", "5101af\\r\\n\r\n"] +[319.672815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822435 (current time 26.79867859)\r\n"] +[319.675559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.675894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.687651, "o", "3637667539393939\\r\\n\r\n"] +[319.687989, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.68806, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499319 (current time 26.7989615145)\r\n"] +[319.690946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.691145, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.703243, "o", "63646561626c6c6c\\r\\n\r\n"] +[319.703659, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496317 (current time 26.7989645165)\r\n"] +[319.706967, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.707082, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.719383, "o", "c962c2eb89898989\\r\\n\r\n"] +[319.719637, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.719951, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945155 (current time 26.798966318)\r\n"] +[319.723363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.723551, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.735675, "o", "00000a00ff000000\\r\\n\r\n"] +[319.735981, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[319.736121, "o", "[tsffs info] Cancelling event with next time 2.9994977895 (current time 26.798963044)\r\n"] +[319.739624, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.739824, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.752172, "o", "4550564526564545\\r\\n\r\n"] +[319.752541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.752762, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998195 (current time 26.798961014)\r\n"] +[319.756137, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.756359, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.758906, "o", "51\\r\\n\r\n"] +[319.759413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[319.761763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.761918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.774388, "o", "00020064cfcfcfcf\\r\\n\r\n"] +[319.774703, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491127 (current time 26.7989697065)\r\n"] +[319.777574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.789459, "o", "735d737373737373\\r\\n\r\n"] +[319.789731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984255 (current time 26.798962408)\r\n"] +[319.792467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.792491, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.8045, "o", "31648081808080cc\\r\\n\r\n"] +[319.804865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497772 (current time 26.7989630615)\r\n"] +[319.807885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.807899, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.819779, "o", "313200002066757a\\r\\n\r\n"] +[319.820046, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.820197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499329 (current time 26.7989615045)\r\n"] +[319.823517, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.823567, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.823975, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.832949, "o", "015176015176\\r\\n\r\n"] +[319.833228, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.83341, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996138925 (current time 26.798846941)\r\n"] +[319.83758, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.837709, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.837759, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.849751, "o", "3537002030313233\\r\\n\r\n"] +[319.850215, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.850461, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005935 (current time 26.79896024)\r\n"] +[319.854072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.854346, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.865961, "o", "5151505050505050\\r\\n\r\n"] +[319.866532, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005175 (current time 26.798960316)\r\n"] +[319.870486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.870747, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.879953, "o", "001041414b41\\r\\n\r\n"] +[319.880261, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.880541, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999613192 (current time 26.7988476415)\r\n"] +[319.882874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.88303, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.89496, "o", "98000000ff303132\\r\\n\r\n"] +[319.895406, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982435 (current time 26.79896259)\r\n"] +[319.897982, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.903727, "o", "01acac\\r\\n\r\n"] +[319.90399, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978005 (current time 26.7986807835)\r\n"] +[319.906842, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.906976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.919321, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[319.919685, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.919946, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[319.923491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.923768, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.931671, "o", "0251010151\\r\\n\r\n"] +[319.932131, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671152 (current time 26.7987896815)\r\n"] +[319.935921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.936077, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.941554, "o", "00647f\\r\\n\r\n"] +[319.941829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783197 (current time 26.7986776365)\r\n"] +[319.944653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.957635, "o", "4141dbfafbf8223e\\r\\n\r\n"] +[319.957995, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490911 (current time 26.7989699225)\r\n"] +[319.96102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.961436, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.973964, "o", "0c0c0c0c0c0c1414\\r\\n\r\n"] +[319.974382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.974448, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939105 (current time 26.798966923)\r\n"] +[319.978267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[319.978458, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[319.978766, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[319.99049, "o", "4141416465414136\\r\\n\r\n"] +[319.990897, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[319.991048, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001865 (current time 26.798960647)\r\n"] +[319.993912, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[319.994212, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.002013, "o", "01510151a2\\r\\n\r\n"] +[320.002458, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999669967 (current time 26.7987908665)\r\n"] +[320.006057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.006334, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.018384, "o", "36373839616f6364\\r\\n\r\n"] +[320.018542, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.018774, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984385 (current time 26.798962395)\r\n"] +[320.022496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.022567, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.022714, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.034412, "o", "7110005101000051\\r\\n\r\n"] +[320.034715, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.03494, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009935 (current time 26.79895984)\r\n"] +[320.03857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.038739, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.039042, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.044258, "o", "015152\\r\\n\r\n"] +[320.044613, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.044821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784553 (current time 26.7986762805)\r\n"] +[320.047042, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.04723, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.052558, "o", "515151\\r\\n\r\n"] +[320.052758, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.05301, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978445 (current time 26.7986763835)\r\n"] +[320.056166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.068141, "o", "3031323334353637\\r\\n\r\n"] +[320.068402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[320.072231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.072414, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.084387, "o", "e4303130313233c8\\r\\n\r\n"] +[320.084696, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.084849, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981135 (current time 26.79896272)\r\n"] +[320.08869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.088783, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.089032, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.100694, "o", "0130313233343536\\r\\n\r\n"] +[320.101043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.101184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[320.104985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.10516, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.105392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.117368, "o", "9e3637383988e935\\r\\n\r\n"] +[320.11772, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.117977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969555 (current time 26.798963878)\r\n"] +[320.121516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.121685, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.121931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.133984, "o", "01ff666666666666\\r\\n\r\n"] +[320.134372, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.134539, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497184 (current time 26.7989636495)\r\n"] +[320.13814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.138297, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.150928, "o", "ffdb3743313233a9\\r\\n\r\n"] +[320.151337, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494287 (current time 26.7989665465)\r\n"] +[320.155188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.155273, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.167255, "o", "5201313233343536\\r\\n\r\n"] +[320.167605, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.167729, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003675 (current time 26.798960466)\r\n"] +[320.171568, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.171737, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.184084, "o", "ff7f393939393939\\r\\n\r\n"] +[320.184391, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.184741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495709 (current time 26.7989651245)\r\n"] +[320.188232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.188409, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[320.188559, "o", "[tsffs info] Resuming simulation\r\n"] +[320.193959, "o", "0151cf\\r\\n\r\n"] +[320.194304, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821935 (current time 26.79867864)\r\n"] +[320.196617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.196875, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.208645, "o", "3961664141664141\\r\\n\r\n"] +[320.208983, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499996 (current time 26.7989608375)\r\n"] +[320.211838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.212016, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.215842, "o", "0002\\r\\n\r\n"] +[320.216112, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.216307, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841536 (current time 26.7986192975)\r\n"] +[320.219723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.219826, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.231718, "o", "36363536366969b5\\r\\n\r\n"] +[320.232094, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498422 (current time 26.7989624115)\r\n"] +[320.23597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.236055, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.236236, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.246931, "o", "010101fe010101\\r\\n\r\n"] +[320.247165, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555472 (current time 26.7989053615)\r\n"] +[320.249691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.249821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.262371, "o", "a2a2a2a2a4a2a29c\\r\\n\r\n"] +[320.262765, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914075 (current time 26.798969426)\r\n"] +[320.265333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.265387, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.277667, "o", "be34414141416d6d\\r\\n\r\n"] +[320.278011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[320.278197, "o", "[tsffs info] Cancelling event with next time 2.999495606 (current time 26.7989652275)\r\n"] +[320.280739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.280818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.284662, "o", "5151\\r\\n\r\n"] +[320.28502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[320.285109, "o", "[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[320.288485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.288641, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.288944, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.301887, "o", "b064007aa8d80bd8\\r\\n\r\n"] +[320.302328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933135 (current time 26.79896752)\r\n"] +[320.305924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.306026, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.311506, "o", "5101ae\\r\\n\r\n"] +[320.31184, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[320.314056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.314261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.32652, "o", "a6a6a6a654048c8b\\r\\n\r\n"] +[320.326821, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493116 (current time 26.7989677175)\r\n"] +[320.329576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.329728, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.3352, "o", "bb5151\\r\\n\r\n"] +[320.335473, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822025 (current time 26.798678631)\r\n"] +[320.339065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.339179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.339441, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.341808, "o", "51\\r\\n\r\n"] +[320.342274, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[320.344409, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.344547, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.356735, "o", "ffff008036379c0a\\r\\n\r\n"] +[320.357039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930575 (current time 26.798967776)\r\n"] +[320.359865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.360028, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.371981, "o", "757a7a696e672136\\r\\n\r\n"] +[320.372354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.372488, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961315 (current time 26.798964702)\r\n"] +[320.375144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.37526, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.379101, "o", "517f\\r\\n\r\n"] +[320.379432, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.379586, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998399525 (current time 26.798620881)\r\n"] +[320.381556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.381599, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.389861, "o", "a5a5a5a5ec\\r\\n\r\n"] +[320.39024, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663832 (current time 26.7987970015)\r\n"] +[320.392858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.393124, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.40488, "o", "333031323330317f\\r\\n\r\n"] +[320.405128, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.405373, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992805 (current time 26.798961553)\r\n"] +[320.407949, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.408183, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.419823, "o", "0101010101010101\\r\\n\r\n"] +[320.420145, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[320.42343, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.423568, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.436255, "o", "8bf1f0f1f1f1f1f1\\r\\n\r\n"] +[320.43652, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908665 (current time 26.798969967)\r\n"] +[320.439795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.440061, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.45186, "o", "3031323300414141\\r\\n\r\n"] +[320.45219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[320.452532, "o", "[tsffs info] Cancelling event with next time 2.9995007125 (current time 26.798960121)\r\n"] +[320.456192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.456371, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[320.456389, "o", "[tsffs info] Resuming simulation\r\n"] +[320.458875, "o", "51\\r\\n\r\n"] +[320.459531, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[320.461952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.462075, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.473826, "o", "0000000000000000\\r\\n\r\n"] +[320.474177, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.474488, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[320.477012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.477146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.488788, "o", "0100753333333333\\r\\n\r\n"] +[320.489344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[320.489367, "o", "[tsffs info] Cancelling event with next time 2.9995004685 (current time 26.798960365)\r\n"] +[320.491803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.491877, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[320.491939, "o", "[tsffs info] Resuming simulation\r\n"] +[320.503847, "o", "4141414141e2005b\\r\\n\r\n"] +[320.504036, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.504193, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498266 (current time 26.7989625675)\r\n"] +[320.507203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.507404, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.519221, "o", "6666616263646566\\r\\n\r\n"] +[320.519688, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499579 (current time 26.7989612545)\r\n"] +[320.522867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.523119, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.531147, "o", "6e10a86e91\\r\\n\r\n"] +[320.531468, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.531644, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996670745 (current time 26.798793759)\r\n"] +[320.534439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.534511, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.534643, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.540037, "o", "014d51\\r\\n\r\n"] +[320.540489, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833835 (current time 26.79867745)\r\n"] +[320.543129, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.543266, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.555349, "o", "723031327a7a69a8\\r\\n\r\n"] +[320.555844, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496566 (current time 26.7989642675)\r\n"] +[320.558316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.558467, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.570364, "o", "21210000010021ff\\r\\n\r\n"] +[320.570789, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.570857, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498681 (current time 26.7989621525)\r\n"] +[320.573779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.573868, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.581551, "o", "0101010101\\r\\n\r\n"] +[320.581914, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671424 (current time 26.7987894095)\r\n"] +[320.585257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.597357, "o", "de2121aa30313232\\r\\n\r\n"] +[320.597729, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496055 (current time 26.7989647785)\r\n"] +[320.60039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.60047, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.613018, "o", "1400ff9ce97a7a2a\\r\\n\r\n"] +[320.61337, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919275 (current time 26.798968906)\r\n"] +[320.615678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[320.615702, "o", "[tsffs info] Resuming simulation\r\n"] +[320.628192, "o", "4c314c4c4c4c4c4c\\r\\n\r\n"] +[320.628558, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921375 (current time 26.798968696)\r\n"] +[320.63107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.643368, "o", "6641006d6d6d6d6d\\r\\n\r\n"] +[320.643633, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949417 (current time 26.7989666635)\r\n"] +[320.646342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.651695, "o", "000310\\r\\n\r\n"] +[320.65195, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784812 (current time 26.7986760215)\r\n"] +[320.655532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.665894, "o", "51615961616151\\r\\n\r\n"] +[320.666156, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999556875 (current time 26.7989039585)\r\n"] +[320.670352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.670466, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.670613, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.682478, "o", "5f30311633343536\\r\\n\r\n"] +[320.682917, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499026 (current time 26.7989618075)\r\n"] +[320.687284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.687488, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.687588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.691562, "o", "5151\\r\\n\r\n"] +[320.691815, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.692046, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[320.694405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.694551, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.699809, "o", "31ff00\\r\\n\r\n"] +[320.700203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782204 (current time 26.7986786295)\r\n"] +[320.704246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.70438, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.704506, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.716995, "o", "f0f0f0f1f0f0f0f0\\r\\n\r\n"] +[320.717365, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.717625, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491118 (current time 26.7989697155)\r\n"] +[320.721611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.7217, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.733585, "o", "2a30313233343536\\r\\n\r\n"] +[320.734111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499262 (current time 26.7989615715)\r\n"] +[320.738118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.738197, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[320.7384, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.750428, "o", "5775016775013c3c\\r\\n\r\n"] +[320.750884, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497664 (current time 26.7989631695)\r\n"] +[320.75488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.754952, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.759332, "o", "8251\\r\\n\r\n"] +[320.759661, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841188 (current time 26.7986196455)\r\n"] +[320.762286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.762408, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.774, "o", "6222440020676039\\r\\n\r\n"] +[320.774503, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500254 (current time 26.7989605795)\r\n"] +[320.777415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.777543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.78931, "o", "3038393838c76263\\r\\n\r\n"] +[320.789698, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985645 (current time 26.798962269)\r\n"] +[320.792348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.792369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.805477, "o", "d0d0d0d0d0010004\\r\\n\r\n"] +[320.805766, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495199 (current time 26.7989656345)\r\n"] +[320.80871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.808894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.820821, "o", "9696969696969696\\r\\n\r\n"] +[320.8211, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.821231, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986545 (current time 26.798962179)\r\n"] +[320.824572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.824773, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.829979, "o", "015501\\r\\n\r\n"] +[320.830273, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[320.832245, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.832389, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.845315, "o", "aeaeaeaeaeaeaeae\\r\\n\r\n"] +[320.845707, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994818665 (current time 26.798978967)\r\n"] +[320.848156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.848289, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.860132, "o", "000080c7000001c7\\r\\n\r\n"] +[320.860454, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.860661, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985365 (current time 26.798962297)\r\n"] +[320.8633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.863458, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.868683, "o", "515151\\r\\n\r\n"] +[320.869113, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.869267, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978445 (current time 26.7986763835)\r\n"] +[320.872683, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.872846, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.884658, "o", "6662636565664141\\r\\n\r\n"] +[320.885043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.885063, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997625 (current time 26.798961071)\r\n"] +[320.888977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.889205, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.901264, "o", "3031323334353637\\r\\n\r\n"] +[320.901428, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.901568, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[320.905383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.905563, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.911154, "o", "7f1e1e\\r\\n\r\n"] +[320.911472, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.911751, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780818 (current time 26.7986800155)\r\n"] +[320.913893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.913946, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.92614, "o", "1c1c1c1c1c356600\\r\\n\r\n"] +[320.926559, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494749 (current time 26.7989660845)\r\n"] +[320.92939, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.929639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.941924, "o", "807fb49bb4a6b4b4\\r\\n\r\n"] +[320.94233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[320.942508, "o", "[tsffs info] Cancelling event with next time 2.999491954 (current time 26.7989688795)\r\n"] +[320.945251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.945464, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.954647, "o", "016666666651\\r\\n\r\n"] +[320.954942, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.955112, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996135565 (current time 26.798847277)\r\n"] +[320.957845, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.958039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.970579, "o", "5949757a7a7a6a7a\\r\\n\r\n"] +[320.971, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493841 (current time 26.7989669925)\r\n"] +[320.974179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.974327, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.986116, "o", "3333333333333333\\r\\n\r\n"] +[320.986391, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[320.986663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003345 (current time 26.798960499)\r\n"] +[320.989762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[320.989899, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[320.995077, "o", "346436\\r\\n\r\n"] +[320.995489, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842765 (current time 26.798676557)\r\n"] +[320.997595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[320.997718, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.009834, "o", "f3f3f33838383853\\r\\n\r\n"] +[321.010075, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.010356, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961595 (current time 26.798964674)\r\n"] +[321.012841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.013039, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.018285, "o", "000000\\r\\n\r\n"] +[321.018593, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.019017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997849225 (current time 26.798675911)\r\n"] +[321.022314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.022506, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.035024, "o", "6675d80bd80b7a79\\r\\n\r\n"] +[321.035371, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.035598, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939365 (current time 26.798966897)\r\n"] +[321.039273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.039569, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.051499, "o", "3236353266393031\\r\\n\r\n"] +[321.051799, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.052096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500111 (current time 26.7989607225)\r\n"] +[321.05564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.05584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.059632, "o", "4000\\r\\n\r\n"] +[321.060026, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.060217, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841492 (current time 26.7986193415)\r\n"] +[321.062338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.062568, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.066488, "o", "d8e7\\r\\n\r\n"] +[321.066882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.067067, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998386935 (current time 26.79862214)\r\n"] +[321.070743, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.070981, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.07111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.082626, "o", "3031323334656565\\r\\n\r\n"] +[321.083029, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.083239, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001145 (current time 26.798960719)\r\n"] +[321.087249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.087425, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.087589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.096643, "o", "017f00414141\\r\\n\r\n"] +[321.097035, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.097225, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996130125 (current time 26.798847821)\r\n"] +[321.099397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.09967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.111382, "o", "3435363738396162\\r\\n\r\n"] +[321.111986, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499778 (current time 26.7989610555)\r\n"] +[321.11443, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.114699, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.11964, "o", "510151\\r\\n\r\n"] +[321.120104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.12026, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[321.123193, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.123342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.127098, "o", "0000\\r\\n\r\n"] +[321.127511, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.127853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[321.129591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.129715, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.140436, "o", "f87a696e670021\\r\\n\r\n"] +[321.140792, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995531925 (current time 26.798907641)\r\n"] +[321.143463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.143603, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.150114, "o", "d9660095\\r\\n\r\n"] +[321.150599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726147 (current time 26.7987346865)\r\n"] +[321.154341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.1546, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.160148, "o", "019b59\\r\\n\r\n"] +[321.160492, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831235 (current time 26.79867771)\r\n"] +[321.162715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.162936, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.175324, "o", "3a11a8a8b0a8a8cb\\r\\n\r\n"] +[321.175625, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.175818, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911125 (current time 26.798969721)\r\n"] +[321.178506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.178685, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.190867, "o", "ec3d31146f146f3a\\r\\n\r\n"] +[321.191257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493203 (current time 26.7989676305)\r\n"] +[321.194043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.194316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.205962, "o", "6666666666666666\\r\\n\r\n"] +[321.206324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[321.208942, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.209163, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.220753, "o", "2121212121212121\\r\\n\r\n"] +[321.221189, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[321.224234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.224392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.226703, "o", "53\\r\\n\r\n"] +[321.227049, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980555 (current time 26.798562778)\r\n"] +[321.229037, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.22931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.237321, "o", "d80b01d8f5\\r\\n\r\n"] +[321.237745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660405 (current time 26.798794793)\r\n"] +[321.240766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.240822, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.252688, "o", "33346436351a3464\\r\\n\r\n"] +[321.25313, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.253369, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989385 (current time 26.798961895)\r\n"] +[321.256425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.256611, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.260588, "o", "b840\\r\\n\r\n"] +[321.260842, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.260985, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840099 (current time 26.7986207345)\r\n"] +[321.26294, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.263126, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.274897, "o", "020202020202e01f\\r\\n\r\n"] +[321.275268, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.275476, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986395 (current time 26.798962194)\r\n"] +[321.278317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.278546, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.290808, "o", "5858585875758500\\r\\n\r\n"] +[321.291216, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499402 (current time 26.7989614315)\r\n"] +[321.294023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.294224, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.294389, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.303599, "o", "3535353535e7\\r\\n\r\n"] +[321.30391, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.304109, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996124475 (current time 26.798848386)\r\n"] +[321.306881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.307108, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.318823, "o", "3738396162636465\\r\\n\r\n"] +[321.319215, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.319422, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499641 (current time 26.7989611925)\r\n"] +[321.322882, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.323026, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.334866, "o", "3333333333333333\\r\\n\r\n"] +[321.335255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.335618, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003345 (current time 26.798960499)\r\n"] +[321.339029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.339112, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.351047, "o", "6641414241696263\\r\\n\r\n"] +[321.351554, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999485 (current time 26.798960885)\r\n"] +[321.355274, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.355565, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.367968, "o", "e90001000d0d0d0d\\r\\n\r\n"] +[321.368221, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495049 (current time 26.7989657845)\r\n"] +[321.372179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.372316, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.372493, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.378014, "o", "fe007a\\r\\n\r\n"] +[321.37836, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[321.378573, "o", "[tsffs info] Cancelling event with next time 2.9997809775 (current time 26.798679856)\r\n"] +[321.380705, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.392721, "o", "0000ff3635383031\\r\\n\r\n"] +[321.393092, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.393243, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949809 (current time 26.7989627435)\r\n"] +[321.396142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.407995, "o", "67313131313d3142\\r\\n\r\n"] +[321.408384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992255 (current time 26.798961608)\r\n"] +[321.411309, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.411457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.423237, "o", "bf65664141001000\\r\\n\r\n"] +[321.423619, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498217 (current time 26.7989626165)\r\n"] +[321.426396, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.430378, "o", "2f10\\r\\n\r\n"] +[321.430734, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401995 (current time 26.798620634)\r\n"] +[321.432805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.433004, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.444524, "o", "0164363538303132\\r\\n\r\n"] +[321.444898, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500288 (current time 26.7989605455)\r\n"] +[321.447502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.447742, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.459363, "o", "6364656641414141\\r\\n\r\n"] +[321.459769, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[321.462529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.46634, "o", "0000\\r\\n\r\n"] +[321.466728, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[321.470498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.470685, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.470827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.476354, "o", "ff514f\\r\\n\r\n"] +[321.47681, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997807545 (current time 26.798680079)\r\n"] +[321.479229, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.479431, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.491296, "o", "ff516e5151515151\\r\\n\r\n"] +[321.491676, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966035 (current time 26.79896423)\r\n"] +[321.494425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.494566, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.507096, "o", "fe01dbf5f5f5f5f5\\r\\n\r\n"] +[321.50754, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893685 (current time 26.798971465)\r\n"] +[321.510349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.510452, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.522813, "o", "41410bd80bbfa541\\r\\n\r\n"] +[321.523188, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493527 (current time 26.7989673065)\r\n"] +[321.525929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.526043, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.53538, "o", "f520222122f5\\r\\n\r\n"] +[321.535801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611701 (current time 26.7988491325)\r\n"] +[321.539203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.539286, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.539589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.543589, "o", "ff34\\r\\n\r\n"] +[321.543922, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838806 (current time 26.7986220275)\r\n"] +[321.546156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.557909, "o", "415f404040404040\\r\\n\r\n"] +[321.558212, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994315 (current time 26.798961402)\r\n"] +[321.561106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.566433, "o", "20ff00\\r\\n\r\n"] +[321.566901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978226 (current time 26.7986785735)\r\n"] +[321.570667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.570908, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.570942, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.582749, "o", "3031323334353630\\r\\n\r\n"] +[321.583123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[321.587244, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.587314, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.600476, "o", "c2eb010cdbc9c9c9\\r\\n\r\n"] +[321.600916, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.601101, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489727 (current time 26.7989711065)\r\n"] +[321.604872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.605039, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.605283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.617736, "o", "5151d2d2d2d2d2d2\\r\\n\r\n"] +[321.617919, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[321.618194, "o", "[tsffs info] Cancelling event with next time 2.9994934375 (current time 26.798967396)\r\n"] +[321.62198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.622051, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.63486, "o", "7fcbeccb66757a7a\\r\\n\r\n"] +[321.635057, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.635369, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489395 (current time 26.7989714385)\r\n"] +[321.639162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.639268, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.651037, "o", "0101010201010101\\r\\n\r\n"] +[321.651398, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.651682, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013005 (current time 26.798959533)\r\n"] +[321.655142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.655273, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.667139, "o", "0130313233343535\\r\\n\r\n"] +[321.667447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.667652, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004905 (current time 26.798960343)\r\n"] +[321.671231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.671404, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.683398, "o", "80e7030303030303\\r\\n\r\n"] +[321.683692, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.68388, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499468 (current time 26.7989613655)\r\n"] +[321.687863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.687981, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.700702, "o", "380151ffff7ffff0\\r\\n\r\n"] +[321.701124, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905155 (current time 26.798970318)\r\n"] +[321.704886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.70497, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.717645, "o", "b9b1b1b1b1b1b211\\r\\n\r\n"] +[321.717932, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.718013, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926635 (current time 26.79896817)\r\n"] +[321.721863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.721948, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.72227, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.72469, "o", "01\\r\\n\r\n"] +[321.72518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[321.727577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.727888, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.730418, "o", "6f\\r\\n\r\n"] +[321.730771, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896808 (current time 26.7985640255)\r\n"] +[321.732301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.737843, "o", "c5c503\\r\\n\r\n"] +[321.738098, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821245 (current time 26.798678709)\r\n"] +[321.740817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.741072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.753522, "o", "b6b6b6b6b6b6b6b6\\r\\n\r\n"] +[321.753863, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.754056, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907905 (current time 26.798970043)\r\n"] +[321.756912, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.75711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.767626, "o", "01626e01515151\\r\\n\r\n"] +[321.768025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.768333, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999556086 (current time 26.7989047475)\r\n"] +[321.771742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.77194, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[321.771967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.781352, "o", "42422e42f150\\r\\n\r\n"] +[321.781726, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611664 (current time 26.7988491695)\r\n"] +[321.784768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.784865, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.796984, "o", "41414166757a6e67\\r\\n\r\n"] +[321.797238, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974845 (current time 26.798963349)\r\n"] +[321.799825, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.80007, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.804064, "o", "5151\\r\\n\r\n"] +[321.804417, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[321.807404, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.807555, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.813952, "o", "c1272764\\r\\n\r\n"] +[321.814328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972628 (current time 26.7987345535)\r\n"] +[321.816505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.816667, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.829685, "o", "31ffcbcbcbcbcbcb\\r\\n\r\n"] +[321.830061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484239 (current time 26.7989765945)\r\n"] +[321.832643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.832828, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.839471, "o", "6464a451\\r\\n\r\n"] +[321.839842, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997263235 (current time 26.79873451)\r\n"] +[321.842549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.842695, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.854682, "o", "414141a966757a7a\\r\\n\r\n"] +[321.855129, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964675 (current time 26.798964366)\r\n"] +[321.858503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.858637, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.871857, "o", "0151515f5f66ff46\\r\\n\r\n"] +[321.872259, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.872417, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495231 (current time 26.7989656025)\r\n"] +[321.875485, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.875647, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.889017, "o", "4d4cc34d4cbc34f1\\r\\n\r\n"] +[321.889388, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490954 (current time 26.7989698795)\r\n"] +[321.892385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.892448, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.904264, "o", "4082123030328000\\r\\n\r\n"] +[321.904518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[321.904661, "o", "[tsffs info] Cancelling event with next time 2.999500673 (current time 26.7989601605)\r\n"] +[321.907935, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[321.907989, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.920181, "o", "7373738d3636384f\\r\\n\r\n"] +[321.920559, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497258 (current time 26.7989635755)\r\n"] +[321.923621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.923732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.936656, "o", "ea781baaeaeaeaea\\r\\n\r\n"] +[321.936889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.937166, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485288 (current time 26.7989755455)\r\n"] +[321.940357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.940383, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.944243, "o", "5153\\r\\n\r\n"] +[321.944592, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984123 (current time 26.7986196035)\r\n"] +[321.94719, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.947315, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.960132, "o", "5151ffffb2b2b2b2\\r\\n\r\n"] +[321.960392, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.960668, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910235 (current time 26.79896981)\r\n"] +[321.96297, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.963142, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.971351, "o", "01db515151\\r\\n\r\n"] +[321.971732, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.971835, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996686285 (current time 26.798792205)\r\n"] +[321.974854, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.974911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[321.986796, "o", "0707070707070707\\r\\n\r\n"] +[321.986998, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[321.987254, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001705 (current time 26.798960663)\r\n"] +[321.990258, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[321.990344, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.003041, "o", "bcbcbcbc03262000\\r\\n\r\n"] +[322.003377, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.003648, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491499 (current time 26.7989693345)\r\n"] +[322.00674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.006924, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.019578, "o", "3b3b3b3b3b3b3b3b\\r\\n\r\n"] +[322.01994, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.020194, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913385 (current time 26.798969495)\r\n"] +[322.023425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.023724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.035459, "o", "466667666607c962\\r\\n\r\n"] +[322.035924, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.035985, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983035 (current time 26.79896253)\r\n"] +[322.039618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.039748, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[322.039834, "o", "[tsffs info] Resuming simulation\r\n"] +[322.052823, "o", "ababababababb866\\r\\n\r\n"] +[322.053101, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994855715 (current time 26.798975262)\r\n"] +[322.056649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.056783, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.060907, "o", "e04c\\r\\n\r\n"] +[322.061174, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.061475, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389775 (current time 26.798621856)\r\n"] +[322.063646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.07606, "o", "b8b8b8b8b80340ff\\r\\n\r\n"] +[322.076363, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.076546, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491833 (current time 26.7989690005)\r\n"] +[322.079225, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.079325, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.091291, "o", "6471708f8f702164\\r\\n\r\n"] +[322.091562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.091694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974545 (current time 26.798963379)\r\n"] +[322.094541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.094736, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.107056, "o", "5500008c6969ffff\\r\\n\r\n"] +[322.107364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493959 (current time 26.7989668745)\r\n"] +[322.109946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.110076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.122479, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[322.123091, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[322.125814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.125848, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.138402, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[322.138731, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.138922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[322.142097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.142357, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[322.142564, "o", "[tsffs info] Resuming simulation\r\n"] +[322.158802, "o", "015151\\r\\n\r\n"] +[322.159804, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.160101, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.162838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.162944, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.168149, "o", "015151\\r\\n\r\n"] +[322.168524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.168572, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.17194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.172134, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[322.172318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.177443, "o", "015151\\r\\n\r\n"] +[322.177697, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.177804, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.180144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.180326, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.185552, "o", "015151\\r\\n\r\n"] +[322.185833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.186062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.189271, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.189698, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.194786, "o", "015151\\r\\n\r\n"] +[322.19506, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.195234, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.197351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.197635, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.202961, "o", "015151\\r\\n\r\n"] +[322.203221, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.203628, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.206579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.206741, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[322.20676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.212055, "o", "015151\\r\\n\r\n"] +[322.212462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.214599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.21474, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.219822, "o", "015151\\r\\n\r\n"] +[322.220191, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.220447, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.223466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.223813, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.228888, "o", "015151\\r\\n\r\n"] +[322.229109, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.23142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.231815, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.236898, "o", "015151\\r\\n\r\n"] +[322.237332, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.240225, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.240479, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.245437, "o", "015151\\r\\n\r\n"] +[322.245815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.247791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.253054, "o", "015151\\r\\n\r\n"] +[322.253419, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.256646, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.256815, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.261744, "o", "015151\\r\\n\r\n"] +[322.262331, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.264246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.269379, "o", "015151\\r\\n\r\n"] +[322.269571, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.272801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.278044, "o", "015151\\r\\n\r\n"] +[322.278453, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.280519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.285831, "o", "015151\\r\\n\r\n"] +[322.286135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.289272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.289375, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.294564, "o", "015151\\r\\n\r\n"] +[322.294994, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.297157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.302461, "o", "015151\\r\\n\r\n"] +[322.302808, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.306285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.306412, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.311489, "o", "015151\\r\\n\r\n"] +[322.3118, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.313893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.319155, "o", "015151\\r\\n\r\n"] +[322.319454, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.322652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.327845, "o", "015151\\r\\n\r\n"] +[322.328203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.330369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.335539, "o", "015151\\r\\n\r\n"] +[322.335927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[322.338905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.345551, "o", "010151e2\\r\\n\r\n"] +[322.345911, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726698 (current time 26.7987341355)\r\n"] +[322.34805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.348214, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.360403, "o", "7777777762ff77ff\\r\\n\r\n"] +[322.360847, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944005 (current time 26.798966433)\r\n"] +[322.363512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.363725, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.375786, "o", "737373736e6e6e6e\\r\\n\r\n"] +[322.376348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948605 (current time 26.798965973)\r\n"] +[322.379117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.390933, "o", "393939393941416e\\r\\n\r\n"] +[322.391328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498407 (current time 26.7989624265)\r\n"] +[322.394136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.394256, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.40591, "o", "5130313233343536\\r\\n\r\n"] +[322.406243, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[322.406491, "o", "[tsffs info] Cancelling event with next time 2.999500344 (current time 26.7989604895)\r\n"] +[322.408826, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.408906, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.412625, "o", "8051\\r\\n\r\n"] +[322.412967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412425 (current time 26.798619591)\r\n"] +[322.414947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.421402, "o", "01010101\\r\\n\r\n"] +[322.421761, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997281245 (current time 26.798732709)\r\n"] +[322.424522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.43626, "o", "0151515151515151\\r\\n\r\n"] +[322.436719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004475 (current time 26.798960386)\r\n"] +[322.440214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.440374, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.452514, "o", "b8b8b84000787877\\r\\n\r\n"] +[322.452888, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496218 (current time 26.7989646155)\r\n"] +[322.456549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.463126, "o", "02515151\\r\\n\r\n"] +[322.463406, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997277275 (current time 26.798733106)\r\n"] +[322.465657, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.477897, "o", "073df83b3b303132\\r\\n\r\n"] +[322.478024, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495701 (current time 26.7989651325)\r\n"] +[322.480654, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.492485, "o", "7a13511330667533\\r\\n\r\n"] +[322.492779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499014 (current time 26.7989618195)\r\n"] +[322.495705, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.507908, "o", "017a7a69a830a8a8\\r\\n\r\n"] +[322.508187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942565 (current time 26.798966577)\r\n"] +[322.511047, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.522947, "o", "6120634641417a69\\r\\n\r\n"] +[322.52318, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949889 (current time 26.7989619435)\r\n"] +[322.526036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.537948, "o", "be39656641413030\\r\\n\r\n"] +[322.53828, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978205 (current time 26.798963013)\r\n"] +[322.54134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.553007, "o", "0030313233343536\\r\\n\r\n"] +[322.553335, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[322.556486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.569387, "o", "f30bbfa5ea7fffae\\r\\n\r\n"] +[322.56977, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486164 (current time 26.7989746695)\r\n"] +[322.573253, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.578689, "o", "d8a451\\r\\n\r\n"] +[322.578997, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997820405 (current time 26.798678793)\r\n"] +[322.581097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.581255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.586578, "o", "0100d7\\r\\n\r\n"] +[322.586891, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783463 (current time 26.7986773705)\r\n"] +[322.589907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.602004, "o", "416675867a696e67\\r\\n\r\n"] +[322.60233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970435 (current time 26.79896379)\r\n"] +[322.605997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.60618, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.618233, "o", "1c52525289898989\\r\\n\r\n"] +[322.618473, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.618744, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981365 (current time 26.798962697)\r\n"] +[322.62216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.622349, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.634643, "o", "5ad4075ad4070764\\r\\n\r\n"] +[322.635036, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949549 (current time 26.7989653435)\r\n"] +[322.63899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.639144, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.651553, "o", "006436374bff30f6\\r\\n\r\n"] +[322.651841, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495421 (current time 26.7989654125)\r\n"] +[322.655651, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.661231, "o", "c20fc2\\r\\n\r\n"] +[322.661675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997810395 (current time 26.798679794)\r\n"] +[322.663851, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.664023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.676137, "o", "0000a7a7a7a7a7a7\\r\\n\r\n"] +[322.676598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934135 (current time 26.79896742)\r\n"] +[322.679299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.679506, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.691196, "o", "65b6414141410001\\r\\n\r\n"] +[322.691461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.691763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994055 (current time 26.798961428)\r\n"] +[322.694437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.694626, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.699748, "o", "e65151\\r\\n\r\n"] +[322.700116, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831815 (current time 26.798677652)\r\n"] +[322.703975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.704117, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.716146, "o", "5110000000b9b9b9\\r\\n\r\n"] +[322.716462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971265 (current time 26.798963707)\r\n"] +[322.720428, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.720559, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.732387, "o", "3637383961626264\\r\\n\r\n"] +[322.732697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997115 (current time 26.798961122)\r\n"] +[322.736429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.736637, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.742055, "o", "e25151\\r\\n\r\n"] +[322.742343, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832735 (current time 26.79867756)\r\n"] +[322.744797, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.756548, "o", "0161616161616161\\r\\n\r\n"] +[322.756812, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500297 (current time 26.7989605365)\r\n"] +[322.759496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.759609, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.771973, "o", "0a0a0a0a41414141\\r\\n\r\n"] +[322.772275, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.772526, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963185 (current time 26.798964515)\r\n"] +[322.77522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.775489, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.781782, "o", "004300a5\\r\\n\r\n"] +[322.782159, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726768 (current time 26.7987340655)\r\n"] +[322.785528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.785752, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.798403, "o", "51513b0f0f0f0f0f\\r\\n\r\n"] +[322.7988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493467 (current time 26.7989673665)\r\n"] +[322.802069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.802341, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.81083, "o", "04ffce342c\\r\\n\r\n"] +[322.811219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996648995 (current time 26.798795934)\r\n"] +[322.813912, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.814064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.825978, "o", "6674756436cb3454\\r\\n\r\n"] +[322.826289, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.826498, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974025 (current time 26.798963431)\r\n"] +[322.829298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.841503, "o", "3031323334353637\\r\\n\r\n"] +[322.841974, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[322.844681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.856477, "o", "4732323132303132\\r\\n\r\n"] +[322.856905, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004785 (current time 26.798960355)\r\n"] +[322.859475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.872579, "o", "64fafbf8226ffafb\\r\\n\r\n"] +[322.872937, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.873157, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994882925 (current time 26.798972541)\r\n"] +[322.875636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.875825, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.888335, "o", "313fc1c1c13031c1\\r\\n\r\n"] +[322.888588, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.888882, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948315 (current time 26.798966002)\r\n"] +[322.891802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.892084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.895796, "o", "5010\\r\\n\r\n"] +[322.896171, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.896337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841433 (current time 26.7986194005)\r\n"] +[322.898264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.898479, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.910384, "o", "18001b3031323334\\r\\n\r\n"] +[322.910619, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.910862, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499471 (current time 26.7989613625)\r\n"] +[322.913304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.91343, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.916029, "o", "ef\\r\\n\r\n"] +[322.916619, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895675 (current time 26.7985651585)\r\n"] +[322.92036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.932509, "o", "414166757a7ae2e2\\r\\n\r\n"] +[322.932949, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.933004, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495335 (current time 26.7989654985)\r\n"] +[322.937079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.93722, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[322.937301, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.942928, "o", "c63a51\\r\\n\r\n"] +[322.94315, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.943412, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821205 (current time 26.798678713)\r\n"] +[322.945781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[322.945915, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[322.946094, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.958002, "o", "009c3031323334b5\\r\\n\r\n"] +[322.958289, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.958611, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[322.958679, "o", "[tsffs info] Cancelling event with next time 2.999498147 (current time 26.7989626865)\r\n"] +[322.961401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.961574, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.973419, "o", "0152898989898989\\r\\n\r\n"] +[322.973798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989105 (current time 26.798961923)\r\n"] +[322.976198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.976465, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[322.988134, "o", "0101010101626364\\r\\n\r\n"] +[322.98849, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[322.988758, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007495 (current time 26.798960084)\r\n"] +[322.991508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[322.991801, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.003921, "o", "6d4141414166757a\\r\\n\r\n"] +[323.004348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977055 (current time 26.798963128)\r\n"] +[323.007395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.020087, "o", "30a8a8a8a8a8a8a8\\r\\n\r\n"] +[323.020406, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491876 (current time 26.7989689575)\r\n"] +[323.023686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.023783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.036865, "o", "61f0f0f0f0f0f038\\r\\n\r\n"] +[323.03702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.037463, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493311 (current time 26.7989675225)\r\n"] +[323.040516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.040654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.052456, "o", "6465664141414141\\r\\n\r\n"] +[323.052971, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500118 (current time 26.7989607155)\r\n"] +[323.056618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.056671, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.056853, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.068528, "o", "a830313224242424\\r\\n\r\n"] +[323.068939, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[323.06911, "o", "[tsffs info] Cancelling event with next time 2.999499274 (current time 26.7989615595)\r\n"] +[323.072652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.085017, "o", "96969696411b1b1b\\r\\n\r\n"] +[323.085201, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962825 (current time 26.798964551)\r\n"] +[323.088836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.088901, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.092733, "o", "3132\\r\\n\r\n"] +[323.09304, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413475 (current time 26.798619486)\r\n"] +[323.095401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.10786, "o", "06d6d6d6d6d6d6d6\\r\\n\r\n"] +[323.108196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491657 (current time 26.7989691765)\r\n"] +[323.111181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.12277, "o", "1222222222222222\\r\\n\r\n"] +[323.122973, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.123017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007325 (current time 26.798960101)\r\n"] +[323.125579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.125712, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.125933, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.129709, "o", "e803\\r\\n\r\n"] +[323.130029, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.130246, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400425 (current time 26.798620791)\r\n"] +[323.132074, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.132261, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.145135, "o", "d7d7d7d7bad7d7d7\\r\\n\r\n"] +[323.145535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489206 (current time 26.7989716275)\r\n"] +[323.148173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.14836, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.152429, "o", "8000\\r\\n\r\n"] +[323.152758, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.15297, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414 (current time 26.7986194335)\r\n"] +[323.15618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.156407, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.168344, "o", "3233053031ce6675\\r\\n\r\n"] +[323.168696, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.168932, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978715 (current time 26.798962962)\r\n"] +[323.172315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.172445, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.172654, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.185553, "o", "e4e4e4e4fefefe00\\r\\n\r\n"] +[323.186134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948832 (current time 26.7989725135)\r\n"] +[323.189626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.189662, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.189797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.201509, "o", "3031323334353637\\r\\n\r\n"] +[323.201898, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[323.205448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.209316, "o", "0130\\r\\n\r\n"] +[323.209658, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984148 (current time 26.7986193535)\r\n"] +[323.212023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.223603, "o", "6330303030303030\\r\\n\r\n"] +[323.223952, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500812 (current time 26.7989600215)\r\n"] +[323.226559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.231691, "o", "015066\\r\\n\r\n"] +[323.232028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784472 (current time 26.7986763615)\r\n"] +[323.234619, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.247497, "o", "5130bdbdbdbdbdbf\\r\\n\r\n"] +[323.247872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994865755 (current time 26.798974258)\r\n"] +[323.250791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.250913, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.263047, "o", "38e95d4038395d00\\r\\n\r\n"] +[323.263378, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963995 (current time 26.798964434)\r\n"] +[323.26574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.277521, "o", "4141414141414141\\r\\n\r\n"] +[323.277746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[323.280357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.289773, "o", "e17fe2505030\\r\\n\r\n"] +[323.29011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999610464 (current time 26.7988503695)\r\n"] +[323.29257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.300466, "o", "2727272730\\r\\n\r\n"] +[323.300991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996705845 (current time 26.798790249)\r\n"] +[323.304742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.31679, "o", "a0a0353535353535\\r\\n\r\n"] +[323.316937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979945 (current time 26.798962839)\r\n"] +[323.32097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.321067, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.33213, "o", "0151b4b4aeb4b4\\r\\n\r\n"] +[323.332417, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999550392 (current time 26.7989104415)\r\n"] +[323.336217, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.336289, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.348199, "o", "3839616263649a66\\r\\n\r\n"] +[323.348545, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984695 (current time 26.798962364)\r\n"] +[323.351938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.352104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.364306, "o", "4d4dd34d41414d4d\\r\\n\r\n"] +[323.364705, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493247 (current time 26.7989675865)\r\n"] +[323.367509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.38018, "o", "9cd80baffe9b0151\\r\\n\r\n"] +[323.380431, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.380563, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908 (current time 26.7989700335)\r\n"] +[323.383064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.383191, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.395852, "o", "1b1b1b1b1b1b1b1b\\r\\n\r\n"] +[323.396229, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917025 (current time 26.798969131)\r\n"] +[323.398848, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.398968, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.411288, "o", "21ff35ff35000100\\r\\n\r\n"] +[323.411691, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495841 (current time 26.7989649925)\r\n"] +[323.414238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.41439, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.426187, "o", "0130313233343536\\r\\n\r\n"] +[323.426345, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.426663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[323.429249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.429393, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.43481, "o", "cf3132\\r\\n\r\n"] +[323.435122, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.435374, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821405 (current time 26.798678693)\r\n"] +[323.438554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.438696, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.438879, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.451164, "o", "01646566d80bbfa5\\r\\n\r\n"] +[323.45151, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.451706, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942805 (current time 26.798966553)\r\n"] +[323.455314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.455383, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.467597, "o", "223e31146f3a1760\\r\\n\r\n"] +[323.467941, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968055 (current time 26.798964028)\r\n"] +[323.47173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.471824, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.472031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.484683, "o", "005151b3b3b3b3b3\\r\\n\r\n"] +[323.485379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494865 (current time 26.7989659685)\r\n"] +[323.488927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.489013, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.489111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.501453, "o", "5166757a7a696e6c\\r\\n\r\n"] +[323.501787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.501994, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494934 (current time 26.7989658995)\r\n"] +[323.505526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.505654, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.50587, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.512576, "o", "f817f85f\\r\\n\r\n"] +[323.512948, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.513054, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997236275 (current time 26.798737206)\r\n"] +[323.515339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.515462, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.527974, "o", "ffffa5e9fb353637\\r\\n\r\n"] +[323.528431, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490369 (current time 26.7989704645)\r\n"] +[323.53118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.531427, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.535579, "o", "fe4b\\r\\n\r\n"] +[323.536086, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.536318, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837706 (current time 26.7986231275)\r\n"] +[323.539278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.539399, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.539508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.543505, "o", "40fc\\r\\n\r\n"] +[323.543944, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.544132, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838953 (current time 26.7986218805)\r\n"] +[323.546105, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.546312, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.557835, "o", "3031321211343561\\r\\n\r\n"] +[323.558313, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500551 (current time 26.7989602825)\r\n"] +[323.56109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.561348, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.572994, "o", "3031323334353637\\r\\n\r\n"] +[323.573376, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.573519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[323.576074, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.576167, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.588394, "o", "01503080ffff0000\\r\\n\r\n"] +[323.588767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.588926, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959405 (current time 26.798964893)\r\n"] +[323.591902, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.592031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.604145, "o", "757a7a696e676666\\r\\n\r\n"] +[323.604508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495857 (current time 26.7989649765)\r\n"] +[323.607578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.607779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.618418, "o", "414177000000ff\\r\\n\r\n"] +[323.618787, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995550275 (current time 26.798905806)\r\n"] +[323.622523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.634493, "o", "6566414141414141\\r\\n\r\n"] +[323.634887, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[323.635129, "o", "[tsffs info] Cancelling event with next time 2.999500232 (current time 26.7989606015)\r\n"] +[323.639058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.651855, "o", "f9f9f9f9f9f9f9f9\\r\\n\r\n"] +[323.652259, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.652501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893945 (current time 26.798971439)\r\n"] +[323.656015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.656088, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.668593, "o", "ffff34a530313233\\r\\n\r\n"] +[323.669081, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494403 (current time 26.7989664305)\r\n"] +[323.672809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.672912, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.684958, "o", "555151ad51200000\\r\\n\r\n"] +[323.685279, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.685553, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949837 (current time 26.7989624635)\r\n"] +[323.68897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.689112, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.68927, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.701128, "o", "3031323334353637\\r\\n\r\n"] +[323.701359, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.701542, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[323.705214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.705383, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.717571, "o", "757a7a696e672167\\r\\n\r\n"] +[323.71789, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.718032, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496033 (current time 26.7989648005)\r\n"] +[323.721759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.721819, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.728507, "o", "55555555\\r\\n\r\n"] +[323.728901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997272545 (current time 26.798733579)\r\n"] +[323.731243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.731355, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.743275, "o", "66757a7a20000000\\r\\n\r\n"] +[323.743631, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981965 (current time 26.798962637)\r\n"] +[323.746463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.758868, "o", "affe781bcbf10700\\r\\n\r\n"] +[323.759281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909575 (current time 26.798969876)\r\n"] +[323.762136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.77448, "o", "418b8b411e8b8b80\\r\\n\r\n"] +[323.774819, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.774987, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494246 (current time 26.7989665875)\r\n"] +[323.777855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.790402, "o", "484e4ec800e86675\\r\\n\r\n"] +[323.790797, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950475 (current time 26.798965786)\r\n"] +[323.793698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.805816, "o", "30313233345bca37\\r\\n\r\n"] +[323.806066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496927 (current time 26.7989639065)\r\n"] +[323.808931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.821484, "o", "b7b7b7b7b7b7b732\\r\\n\r\n"] +[323.821847, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491797 (current time 26.7989690365)\r\n"] +[323.825065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[323.825156, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.836833, "o", "3031323334353637\\r\\n\r\n"] +[323.837104, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.837275, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[323.84029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.840429, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.85231, "o", "2199989898988498\\r\\n\r\n"] +[323.852681, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987175 (current time 26.798962116)\r\n"] +[323.856377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.856399, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.868661, "o", "ff103037383961f0\\r\\n\r\n"] +[323.86905, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.869154, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965605 (current time 26.798964273)\r\n"] +[323.872811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.872984, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.87309, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.883612, "o", "33333333333333\\r\\n\r\n"] +[323.883936, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.883999, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995571585 (current time 26.798903675)\r\n"] +[323.887992, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.888205, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.901374, "o", "e5e5e5e5e5e5e500\\r\\n\r\n"] +[323.901587, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.901772, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491751 (current time 26.7989690825)\r\n"] +[323.905418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.905509, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[323.905631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.913848, "o", "ab0100ab10\\r\\n\r\n"] +[323.914205, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996667465 (current time 26.798794087)\r\n"] +[323.916802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.919708, "o", "c9\\r\\n\r\n"] +[323.92014, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[323.920339, "o", "[tsffs info] Cancelling event with next time 2.999896804 (current time 26.7985640295)\r\n"] +[323.923613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.923677, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.936519, "o", "7e7e64007d7e7e7e\\r\\n\r\n"] +[323.93678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926305 (current time 26.798968203)\r\n"] +[323.940026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.940278, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.952321, "o", "f012008035353513\\r\\n\r\n"] +[323.952578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992815 (current time 26.798961552)\r\n"] +[323.956177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.95648, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.969921, "o", "fcfcfcfcfcfcfcfc\\r\\n\r\n"] +[323.970028, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.970146, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994812705 (current time 26.798979563)\r\n"] +[323.973508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[323.986649, "o", "afafafc6c6c6c6b8\\r\\n\r\n"] +[323.98705, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[323.98709, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994871965 (current time 26.798973637)\r\n"] +[323.990372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[323.990525, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.002431, "o", "3031323334353637\\r\\n\r\n"] +[324.002869, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.003071, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[324.006337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.006484, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.01348, "o", "ffffff80\\r\\n\r\n"] +[324.013836, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972024 (current time 26.7987405935)\r\n"] +[324.01613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.016334, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.020312, "o", "0151\\r\\n\r\n"] +[324.020702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.020926, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[324.023681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.023878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.035498, "o", "3233344141414141\\r\\n\r\n"] +[324.036028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004625 (current time 26.798960371)\r\n"] +[324.039329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.039481, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.039732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.044712, "o", "006451\\r\\n\r\n"] +[324.045288, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978452 (current time 26.7986763135)\r\n"] +[324.047444, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.047586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.051668, "o", "f8f3\\r\\n\r\n"] +[324.052147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838714 (current time 26.7986221195)\r\n"] +[324.055445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.055641, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.060978, "o", "6364a9\\r\\n\r\n"] +[324.061521, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997830485 (current time 26.798677785)\r\n"] +[324.063702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.063827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.068086, "o", "abfd\\r\\n\r\n"] +[324.068572, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998366485 (current time 26.798624185)\r\n"] +[324.071702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.072032, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.085127, "o", "abababababababb6\\r\\n\r\n"] +[324.085672, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999483521 (current time 26.7989773125)\r\n"] +[324.089312, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.089455, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.101539, "o", "5a5a5a6675333333\\r\\n\r\n"] +[324.101987, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949659 (current time 26.7989642435)\r\n"] +[324.105536, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.105648, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.118182, "o", "72ffff6ff031327f\\r\\n\r\n"] +[324.118634, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916575 (current time 26.798969176)\r\n"] +[324.122349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.122479, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.122587, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.125265, "o", "db\\r\\n\r\n"] +[324.125697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998958055 (current time 26.798565028)\r\n"] +[324.128676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.13395, "o", "929292\\r\\n\r\n"] +[324.134365, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997841005 (current time 26.798676733)\r\n"] +[324.137871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.138064, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.150032, "o", "a1a1414000a83031\\r\\n\r\n"] +[324.150537, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497354 (current time 26.7989634795)\r\n"] +[324.155212, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.15531, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.155658, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.167314, "o", "0909150909090937\\r\\n\r\n"] +[324.167712, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.16783, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998535 (current time 26.79896098)\r\n"] +[324.171323, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.171469, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.183248, "o", "393721f720103937\\r\\n\r\n"] +[324.183721, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498824 (current time 26.7989620095)\r\n"] +[324.187546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.187716, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.191764, "o", "76cd\\r\\n\r\n"] +[324.192225, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838782 (current time 26.7986220515)\r\n"] +[324.194519, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.199716, "o", "1a5151\\r\\n\r\n"] +[324.200066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978339 (current time 26.7986774435)\r\n"] +[324.203879, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.204011, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.216511, "o", "b8034000a8cbf107\\r\\n\r\n"] +[324.216897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494687 (current time 26.7989661465)\r\n"] +[324.220982, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.221166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.233717, "o", "c6c6c6c6c6c6c65c\\r\\n\r\n"] +[324.234025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.234059, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490552 (current time 26.7989702815)\r\n"] +[324.237953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.238142, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.251337, "o", "4b4bcfcfcfcfcfcf\\r\\n\r\n"] +[324.251655, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.251824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994837465 (current time 26.798977087)\r\n"] +[324.255298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.255414, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.255543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.260842, "o", "0151b5\\r\\n\r\n"] +[324.26119, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.26154, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783405 (current time 26.7986774285)\r\n"] +[324.263692, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.263797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.275403, "o", "040404044c001000\\r\\n\r\n"] +[324.275698, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.275895, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998225 (current time 26.798961011)\r\n"] +[324.278669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.2788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.285781, "o", "9d5e5ee9\\r\\n\r\n"] +[324.286086, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.286443, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997224765 (current time 26.798738357)\r\n"] +[324.289592, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.289724, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.295307, "o", "ff51af\\r\\n\r\n"] +[324.295597, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779668 (current time 26.7986811655)\r\n"] +[324.29777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.298042, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.309807, "o", "3535353535353535\\r\\n\r\n"] +[324.310071, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.310258, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999585 (current time 26.798960875)\r\n"] +[324.312923, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.313113, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.320122, "o", "f0f0f0f0\\r\\n\r\n"] +[324.320417, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.320793, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997230385 (current time 26.798737795)\r\n"] +[324.323502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.323718, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.335306, "o", "6162636465664141\\r\\n\r\n"] +[324.335646, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.335905, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999065 (current time 26.798960927)\r\n"] +[324.339175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.339368, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.339574, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.352579, "o", "b0f07a696e672102\\r\\n\r\n"] +[324.352904, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.353122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495458 (current time 26.7989653755)\r\n"] +[324.356625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.356755, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.35677, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.360895, "o", "41b6\\r\\n\r\n"] +[324.361244, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401105 (current time 26.798620723)\r\n"] +[324.363232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.375, "o", "52df353633383961\\r\\n\r\n"] +[324.37527, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949752 (current time 26.7989633135)\r\n"] +[324.37816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.387521, "o", "82827fa13032\\r\\n\r\n"] +[324.387865, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99961152 (current time 26.7988493135)\r\n"] +[324.390572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.403132, "o", "f118d1f3000293d2\\r\\n\r\n"] +[324.403339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.403552, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495701 (current time 26.7989651325)\r\n"] +[324.40675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.406903, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.419097, "o", "2f2f301919191819\\r\\n\r\n"] +[324.419352, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975565 (current time 26.798963277)\r\n"] +[324.422657, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.422774, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.435012, "o", "372c396162637a7a\\r\\n\r\n"] +[324.435289, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.435631, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964135 (current time 26.79896442)\r\n"] +[324.438806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.439073, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.450852, "o", "3232323232303132\\r\\n\r\n"] +[324.451203, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.451462, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500599 (current time 26.7989602345)\r\n"] +[324.454782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.455116, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.468105, "o", "e9fafafafa05fafa\\r\\n\r\n"] +[324.468348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994850245 (current time 26.798975809)\r\n"] +[324.472119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.472243, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.485113, "o", "4000a8cbf107c962\\r\\n\r\n"] +[324.485433, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945025 (current time 26.798966331)\r\n"] +[324.489153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.489273, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.501026, "o", "3434343031323334\\r\\n\r\n"] +[324.501359, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003995 (current time 26.798960434)\r\n"] +[324.505044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.50524, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.510517, "o", "015101\\r\\n\r\n"] +[324.510848, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847 (current time 26.7986761335)\r\n"] +[324.513062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.525059, "o", "0000e3376b7a3031\\r\\n\r\n"] +[324.525457, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970715 (current time 26.798963762)\r\n"] +[324.528314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.528421, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.540526, "o", "303132c4c4c4c4c4\\r\\n\r\n"] +[324.540901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494594 (current time 26.7989662395)\r\n"] +[324.543621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.555777, "o", "6969000003e8f3f2\\r\\n\r\n"] +[324.556128, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.556181, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496562 (current time 26.7989642715)\r\n"] +[324.558937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.55911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.571574, "o", "5c66847a7ae2e2e2\\r\\n\r\n"] +[324.572, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929155 (current time 26.798967918)\r\n"] +[324.575071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.578896, "o", "0151\\r\\n\r\n"] +[324.579276, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[324.581253, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.593425, "o", "ffff002935383020\\r\\n\r\n"] +[324.593801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954885 (current time 26.798965345)\r\n"] +[324.596356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.601694, "o", "805251\\r\\n\r\n"] +[324.60208, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784395 (current time 26.7986764385)\r\n"] +[324.60522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.617363, "o", "cd0000a7a7640000\\r\\n\r\n"] +[324.617697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496129 (current time 26.7989647045)\r\n"] +[324.621333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.621543, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.633161, "o", "0151513031323334\\r\\n\r\n"] +[324.633481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[324.633594, "o", "[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[324.637633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.637775, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.641632, "o", "4853\\r\\n\r\n"] +[324.642018, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998410985 (current time 26.798619735)\r\n"] +[324.644471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.656125, "o", "8030313233343536\\r\\n\r\n"] +[324.656461, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500311 (current time 26.7989605225)\r\n"] +[324.659008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.659243, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.671028, "o", "3031323334353637\\r\\n\r\n"] +[324.671207, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.671379, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[324.674401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.686241, "o", "3031667500006721\\r\\n\r\n"] +[324.686532, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.686798, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003895 (current time 26.798960444)\r\n"] +[324.689927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.690039, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.702359, "o", "00781b034000a8cb\\r\\n\r\n"] +[324.702684, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.70293, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495991 (current time 26.7989648425)\r\n"] +[324.706119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.706244, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.706446, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.718526, "o", "fb3273341a666266\\r\\n\r\n"] +[324.718883, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[324.719031, "o", "[tsffs info] Cancelling event with next time 2.999496508 (current time 26.7989643255)\r\n"] +[324.722622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.727156, "o", "aeae\\r\\n\r\n"] +[324.727533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998366615 (current time 26.798624172)\r\n"] +[324.729768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.741771, "o", "7262626266757a6e\\r\\n\r\n"] +[324.74219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973665 (current time 26.798963467)\r\n"] +[324.744774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.744824, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.744944, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.757562, "o", "9ed8d8d8d8d8d8d8\\r\\n\r\n"] +[324.757917, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899965 (current time 26.798970837)\r\n"] +[324.760551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.760684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.772426, "o", "3333333333333333\\r\\n\r\n"] +[324.772688, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.772888, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003345 (current time 26.798960499)\r\n"] +[324.77532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.775466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.787157, "o", "3031323334353637\\r\\n\r\n"] +[324.787439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[324.787693, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[324.790469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.795812, "o", "01af51\\r\\n\r\n"] +[324.79616, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822435 (current time 26.79867859)\r\n"] +[324.798105, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.798211, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.810608, "o", "00ff9f4a4a4a4ab4\\r\\n\r\n"] +[324.810967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491016 (current time 26.7989698175)\r\n"] +[324.813574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.813695, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.825659, "o", "424242a79741426e\\r\\n\r\n"] +[324.826135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497656 (current time 26.7989631775)\r\n"] +[324.828894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.840446, "o", "3031323341254141\\r\\n\r\n"] +[324.840878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500533 (current time 26.7989603005)\r\n"] +[324.843602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.843807, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.855469, "o", "e890903001000100\\r\\n\r\n"] +[324.855771, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.855792, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995305 (current time 26.798961303)\r\n"] +[324.858698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.858817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.872018, "o", "1e3bc9c9c93c3c3c\\r\\n\r\n"] +[324.87238, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906875 (current time 26.798970146)\r\n"] +[324.875395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.875444, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.882364, "o", "90fafa91\\r\\n\r\n"] +[324.882711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722805 (current time 26.7987380285)\r\n"] +[324.886367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.886456, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.886646, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.898391, "o", "3333333323232323\\r\\n\r\n"] +[324.898747, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004285 (current time 26.798960405)\r\n"] +[324.902127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.902189, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.9024, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.908238, "o", "c9ffff\\r\\n\r\n"] +[324.908523, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.908691, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999778252 (current time 26.7986825815)\r\n"] +[324.911278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[324.911375, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.918103, "o", "01a5e901\\r\\n\r\n"] +[324.918403, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.918553, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997253805 (current time 26.798735453)\r\n"] +[324.921913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.922011, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[324.922174, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.934559, "o", "6f3a17603e4f146f\\r\\n\r\n"] +[324.934927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494172 (current time 26.7989666615)\r\n"] +[324.938643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.938752, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.944166, "o", "015201\\r\\n\r\n"] +[324.944462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784678 (current time 26.7986761555)\r\n"] +[324.947337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.96002, "o", "56b91ead9f563031\\r\\n\r\n"] +[324.960416, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494158 (current time 26.7989666755)\r\n"] +[324.963033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.974151, "o", "00ff64648c1000\\r\\n\r\n"] +[324.974501, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995536945 (current time 26.798907139)\r\n"] +[324.978702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[324.978905, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.982684, "o", "5151\\r\\n\r\n"] +[324.983015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[324.986044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[324.997741, "o", "3031323334353637\\r\\n\r\n"] +[324.99806, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[324.998184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[325.0015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.001577, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.001813, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.007308, "o", "e75151\\r\\n\r\n"] +[325.007507, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.007715, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[325.007729, "o", "[tsffs info] Cancelling event with next time 2.9997831515 (current time 26.798677682)\r\n"] +[325.010236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.010249, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.010396, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.022695, "o", "66757a7a696e6c17\\r\\n\r\n"] +[325.022907, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.02311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[325.025749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.026008, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.038416, "o", "4e5f4d673d636465\\r\\n\r\n"] +[325.03877, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495034 (current time 26.7989657995)\r\n"] +[325.041755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.054531, "o", "ea5aafa6e95ae9e9\\r\\n\r\n"] +[325.054776, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994881805 (current time 26.798972653)\r\n"] +[325.058007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.058095, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.071049, "o", "e94de5313235cecf\\r\\n\r\n"] +[325.071438, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918305 (current time 26.798969003)\r\n"] +[325.0746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.086926, "o", "0151ff7f00006f6f\\r\\n\r\n"] +[325.087154, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494403 (current time 26.7989664305)\r\n"] +[325.090315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.102012, "o", "0130313233343536\\r\\n\r\n"] +[325.102618, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[325.106163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.106228, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.119245, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[325.119702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.119926, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[325.123695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.123772, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.13647, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[325.137099, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[325.140267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.140595, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.168079, "o", "d80b40a5e9\\r\\n\r\n"] +[325.16926, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[325.173098, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.173401, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.181488, "o", "d81340a5e9\\r\\n\r\n"] +[325.181697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671275 (current time 26.798793706)\r\n"] +[325.186459, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.186505, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.186684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.199629, "o", "98f4bfa5e9f4f4f4\\r\\n\r\n"] +[325.199976, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.200182, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490247 (current time 26.7989705865)\r\n"] +[325.204384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.204536, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.216865, "o", "7d7d7d7d7d7d3031\\r\\n\r\n"] +[325.217191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[325.217393, "o", "[tsffs info] Cancelling event with next time 2.999492832 (current time 26.7989680015)\r\n"] +[325.221284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.221421, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.233964, "o", "fe781b7ac9eb8003\\r\\n\r\n"] +[325.234435, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918305 (current time 26.798969003)\r\n"] +[325.238218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.238363, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.250924, "o", "303164e2deaffe78\\r\\n\r\n"] +[325.25121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918455 (current time 26.798968988)\r\n"] +[325.254983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.25516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.265021, "o", "c5fa6533f7fa\\r\\n\r\n"] +[325.265276, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.265532, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996066725 (current time 26.798854161)\r\n"] +[325.269268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.26943, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.269714, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.281879, "o", "bf005151649a0100\\r\\n\r\n"] +[325.282094, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497079 (current time 26.7989637545)\r\n"] +[325.285974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.286173, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.298049, "o", "4141353535353535\\r\\n\r\n"] +[325.298368, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.298486, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001025 (current time 26.798960731)\r\n"] +[325.301977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.302084, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.302269, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.310658, "o", "0b40e9a4e8\\r\\n\r\n"] +[325.31099, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666033 (current time 26.7987948005)\r\n"] +[325.313471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.313743, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.326236, "o", "4e4e4e4ecbf1e0e0\\r\\n\r\n"] +[325.326514, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897375 (current time 26.798971096)\r\n"] +[325.329267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.341487, "o", "3435ff9532de3434\\r\\n\r\n"] +[325.34179, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495235 (current time 26.7989655985)\r\n"] +[325.344675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.344851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.356669, "o", "de00565656565656\\r\\n\r\n"] +[325.356963, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974235 (current time 26.79896341)\r\n"] +[325.359698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.359875, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.365149, "o", "290b40\\r\\n\r\n"] +[325.365591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833475 (current time 26.798677486)\r\n"] +[325.368664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.36883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.380757, "o", "80807a62f2020000\\r\\n\r\n"] +[325.381179, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498226 (current time 26.7989626075)\r\n"] +[325.384015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.384314, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.397041, "o", "0bf3f3f3f3f37f0b\\r\\n\r\n"] +[325.397423, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490787 (current time 26.7989700465)\r\n"] +[325.400141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.400282, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.40753, "o", "fa0000fa\\r\\n\r\n"] +[325.40787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.408042, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997232765 (current time 26.798737557)\r\n"] +[325.410706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.410936, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.41927, "o", "d840a5e9e9\\r\\n\r\n"] +[325.419573, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[325.419596, "o", "[tsffs info] Cancelling event with next time 2.999665739 (current time 26.7987950945)\r\n"] +[325.423838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.42392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.436509, "o", "f0ef010000dddd30\\r\\n\r\n"] +[325.436878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925825 (current time 26.798968251)\r\n"] +[325.440086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.445441, "o", "4f40b0\\r\\n\r\n"] +[325.445819, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782219 (current time 26.7986786145)\r\n"] +[325.447764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.459502, "o", "3132333435363738\\r\\n\r\n"] +[325.459874, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[325.462434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.470767, "o", "d8cc40a5d6\\r\\n\r\n"] +[325.471214, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966487 (current time 26.7987959635)\r\n"] +[325.474272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.486138, "o", "2323232323232323\\r\\n\r\n"] +[325.486534, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005225 (current time 26.798960311)\r\n"] +[325.489976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.490203, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.495414, "o", "7f0000\\r\\n\r\n"] +[325.49572, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783442 (current time 26.7986773915)\r\n"] +[325.497695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.509503, "o", "28303132333435c9\\r\\n\r\n"] +[325.509829, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.509847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990265 (current time 26.798961807)\r\n"] +[325.51259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.512806, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.525668, "o", "ff8c8c8c008cc0c0\\r\\n\r\n"] +[325.526024, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908025 (current time 26.798970031)\r\n"] +[325.529005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.529206, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.532994, "o", "0629\\r\\n\r\n"] +[325.533299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984117 (current time 26.7986196635)\r\n"] +[325.537272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.537464, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.547656, "o", "d87fb6b6b6b6\\r\\n\r\n"] +[325.548008, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606601 (current time 26.7988542325)\r\n"] +[325.551091, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.551295, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.558172, "o", "0b40a569\\r\\n\r\n"] +[325.55852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[325.558755, "o", "[tsffs info] Cancelling event with next time 2.9997252775 (current time 26.798735556)\r\n"] +[325.56142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.573333, "o", "757a7a6900000010\\r\\n\r\n"] +[325.573689, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.5739, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981595 (current time 26.798962674)\r\n"] +[325.576438, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.578896, "o", "40\\r\\n\r\n"] +[325.57929, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.579468, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99989816 (current time 26.7985626735)\r\n"] +[325.581479, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.581685, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.587188, "o", "40d9d9\\r\\n\r\n"] +[325.587481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781884 (current time 26.7986789495)\r\n"] +[325.590305, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.590439, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.60214, "o", "3334353637303132\\r\\n\r\n"] +[325.602453, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.602719, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[325.60608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.606352, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.606441, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.618289, "o", "41414167656462c2\\r\\n\r\n"] +[325.618639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.618977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988595 (current time 26.798961974)\r\n"] +[325.622679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.622747, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.635083, "o", "4142414141414166\\r\\n\r\n"] +[325.635608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.635712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003505 (current time 26.798960483)\r\n"] +[325.639334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.639653, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.65167, "o", "0bd8303132333435\\r\\n\r\n"] +[325.652233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980825 (current time 26.798962751)\r\n"] +[325.655851, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.655987, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.668392, "o", "7a7a7a696e67217a\\r\\n\r\n"] +[325.66875, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.669044, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939345 (current time 26.798966899)\r\n"] +[325.672691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.672797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.680656, "o", "0400661016\\r\\n\r\n"] +[325.681204, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996709835 (current time 26.79878985)\r\n"] +[325.683499, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.691758, "o", "d80b401616\\r\\n\r\n"] +[325.692189, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996684865 (current time 26.798792347)\r\n"] +[325.695099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.695241, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.702241, "o", "e966fdc8\\r\\n\r\n"] +[325.702582, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.702824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997224825 (current time 26.798738351)\r\n"] +[325.706108, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.706331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.7195, "o", "d87fffa540404040\\r\\n\r\n"] +[325.720015, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.720224, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494349 (current time 26.7989664845)\r\n"] +[325.723493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.723592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.728865, "o", "d80b40\\r\\n\r\n"] +[325.729347, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821805 (current time 26.798678653)\r\n"] +[325.731499, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.744423, "o", "dd7fffffffaafff4\\r\\n\r\n"] +[325.744807, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994833965 (current time 26.798977437)\r\n"] +[325.747512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.747691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.760497, "o", "d864e9e9e9cce9e9\\r\\n\r\n"] +[325.760962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899315 (current time 26.798970902)\r\n"] +[325.763522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.76362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.776557, "o", "d80b727272727272\\r\\n\r\n"] +[325.77698, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.777011, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497553 (current time 26.7989632805)\r\n"] +[325.780751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.793502, "o", "4125414141414141\\r\\n\r\n"] +[325.793903, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500486 (current time 26.7989603475)\r\n"] +[325.796589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.796799, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.80882, "o", "5353445301535353\\r\\n\r\n"] +[325.809218, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.809427, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500135 (current time 26.7989606985)\r\n"] +[325.812152, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.812404, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.817575, "o", "870000\\r\\n\r\n"] +[325.817889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.818096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997845555 (current time 26.798676278)\r\n"] +[325.821543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.821704, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.821948, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.835021, "o", "afaf726767777bde\\r\\n\r\n"] +[325.835499, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914655 (current time 26.798969368)\r\n"] +[325.839184, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.839381, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.852482, "o", "b7f1fe0cdb305353\\r\\n\r\n"] +[325.852884, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921115 (current time 26.798968722)\r\n"] +[325.856491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.856593, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.868773, "o", "685c3031323305ff\\r\\n\r\n"] +[325.869056, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.86916, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966755 (current time 26.798964158)\r\n"] +[325.872961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.87308, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.884951, "o", "6366996641414141\\r\\n\r\n"] +[325.885377, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499809 (current time 26.7989610245)\r\n"] +[325.888731, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.888931, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.888965, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.901453, "o", "00012e2e2e2e2e2e\\r\\n\r\n"] +[325.901946, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493546 (current time 26.7989672875)\r\n"] +[325.905617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.905784, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.911405, "o", "3e4e7b\\r\\n\r\n"] +[325.911851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780808 (current time 26.7986800255)\r\n"] +[325.913854, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.913989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.926201, "o", "d80b40a5e9303132\\r\\n\r\n"] +[325.926633, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.926768, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957105 (current time 26.798965123)\r\n"] +[325.92933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.92947, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.937813, "o", "d80bc0a5d9\\r\\n\r\n"] +[325.938281, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.938539, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664928 (current time 26.7987959055)\r\n"] +[325.941228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.94141, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.95513, "o", "6263646566bfe6e6\\r\\n\r\n"] +[325.955401, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494989 (current time 26.7989658445)\r\n"] +[325.958456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.966835, "o", "412040a5e9\\r\\n\r\n"] +[325.967394, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.967535, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996684935 (current time 26.79879234)\r\n"] +[325.971509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[325.971587, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[325.971709, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.984567, "o", "6363ffff63636363\\r\\n\r\n"] +[325.98497, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[325.985168, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950195 (current time 26.798965814)\r\n"] +[325.988866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[325.996019, "o", "d80ba5d8\\r\\n\r\n"] +[325.9964, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972286 (current time 26.7987379735)\r\n"] +[325.998673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[325.998778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.001488, "o", "a0\\r\\n\r\n"] +[326.001823, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.002028, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998970735 (current time 26.79856376)\r\n"] +[326.005126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.005233, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.018359, "o", "eaeaeaeaea68032d\\r\\n\r\n"] +[326.018699, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.018897, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948754 (current time 26.7989732935)\r\n"] +[326.022329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.022545, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[326.02267, "o", "[tsffs info] Resuming simulation\r\n"] +[326.034852, "o", "6630313233343536\\r\\n\r\n"] +[326.035249, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.035395, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500205 (current time 26.7989606285)\r\n"] +[326.0388, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.038883, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.047125, "o", "030b40a5d8\\r\\n\r\n"] +[326.047694, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996674565 (current time 26.798793377)\r\n"] +[326.050077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.050184, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.062462, "o", "667551a8cb666666\\r\\n\r\n"] +[326.062925, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961315 (current time 26.798964702)\r\n"] +[326.065355, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.065427, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.07791, "o", "4a4a4a0b0b0b0b0b\\r\\n\r\n"] +[326.078226, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.078269, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917195 (current time 26.798969114)\r\n"] +[326.081067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.092895, "o", "3030303030303030\\r\\n\r\n"] +[326.093168, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.09338, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009585 (current time 26.798959875)\r\n"] +[326.095971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.096041, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.107701, "o", "67210101100e6626\\r\\n\r\n"] +[326.108219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993015 (current time 26.798961532)\r\n"] +[326.110965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.111043, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.119208, "o", "0001ff00e9\\r\\n\r\n"] +[326.119649, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667447 (current time 26.7987933865)\r\n"] +[326.123023, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.123164, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.135128, "o", "506e505030313233\\r\\n\r\n"] +[326.13536, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.135559, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993045 (current time 26.798961529)\r\n"] +[326.139106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.139254, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.151703, "o", "664141414141ff7f\\r\\n\r\n"] +[326.151995, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.152172, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965425 (current time 26.798964291)\r\n"] +[326.15582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.155942, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.164367, "o", "d8a5d8a5e9\\r\\n\r\n"] +[326.164912, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.165194, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996645855 (current time 26.798796248)\r\n"] +[326.168372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.168559, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.180995, "o", "41414166757a7ac9\\r\\n\r\n"] +[326.181397, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964175 (current time 26.798964416)\r\n"] +[326.184289, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.1844, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.196352, "o", "8031323334353637\\r\\n\r\n"] +[326.196653, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001345 (current time 26.798960699)\r\n"] +[326.199034, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.199161, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.207128, "o", "d800008000\\r\\n\r\n"] +[326.207457, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.207855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999669955 (current time 26.7987908785)\r\n"] +[326.211459, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.211528, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.211708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.224871, "o", "cdf92ff952f9f9d8\\r\\n\r\n"] +[326.225096, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.225291, "o", "[tsffs info] Cancelling event with next time 2.999490024 (current time 26.7989708095)\r\n"] +[326.228964, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.229029, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.229149, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.242175, "o", "c7c7c7c7c7c7c7c7\\r\\n\r\n"] +[326.242478, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.242563, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994902905 (current time 26.798970543)\r\n"] +[326.246466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.246568, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.246598, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.258774, "o", "41413b412f354141\\r\\n\r\n"] +[326.258966, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.259184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980855 (current time 26.798962748)\r\n"] +[326.262093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.273908, "o", "3839616263646566\\r\\n\r\n"] +[326.274226, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996025 (current time 26.798961231)\r\n"] +[326.276565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.280554, "o", "0b0b\\r\\n\r\n"] +[326.28085, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998391855 (current time 26.798621648)\r\n"] +[326.282794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.295785, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[326.296215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[326.298506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.298554, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.298591, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.302951, "o", "f200\\r\\n\r\n"] +[326.303203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840232 (current time 26.7986206015)\r\n"] +[326.306272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.306392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.318603, "o", "63462e7a808080d8\\r\\n\r\n"] +[326.318826, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.318841, "o", "[tsffs info] Cancelling event with next time 2.999496405 (current time 26.7989644285)\r\n"] +[326.322673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.322942, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.323164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.335163, "o", "0866757a6e672139\\r\\n\r\n"] +[326.33547, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.335574, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973025 (current time 26.798963531)\r\n"] +[326.339104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.339179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.339358, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.347348, "o", "1c03d26666\\r\\n\r\n"] +[326.347793, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.34789, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966835 (current time 26.7987924835)\r\n"] +[326.350236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.350351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.362233, "o", "3031323334353637\\r\\n\r\n"] +[326.362445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.362793, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[326.365021, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.365091, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.377149, "o", "38363f38394a6263\\r\\n\r\n"] +[326.377406, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.37763, "o", "[tsffs info] Cancelling event with next time 2.9994974325 (current time 26.798963401)\r\n"] +[326.380058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.380198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.393157, "o", "fe0566d5fefe0102\\r\\n\r\n"] +[326.393381, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.393554, "o", "[tsffs info] Cancelling event with next time 2.9994919515 (current time 26.798968882)\r\n"] +[326.395968, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.39625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.408124, "o", "3132333435366566\\r\\n\r\n"] +[326.408548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500015 (current time 26.7989608185)\r\n"] +[326.412357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.412623, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.425151, "o", "8e6666555e8e1231\\r\\n\r\n"] +[326.425436, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.425692, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962045 (current time 26.798964629)\r\n"] +[326.429176, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.4293, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.429663, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.44241, "o", "7a7a7a7a4f4f7a2c\\r\\n\r\n"] +[326.442851, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.44319, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906805 (current time 26.798970153)\r\n"] +[326.446833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.446953, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.447052, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.459012, "o", "748b747474747474\\r\\n\r\n"] +[326.45939, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982645 (current time 26.798962569)\r\n"] +[326.463121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.463297, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.46342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.476137, "o", "1a01b3b3ab383838\\r\\n\r\n"] +[326.47628, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.47657, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945785 (current time 26.798966255)\r\n"] +[326.479946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.480091, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.491977, "o", "4141414141416675\\r\\n\r\n"] +[326.492231, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.492404, "o", "[tsffs info] Cancelling event with next time 2.999500202 (current time 26.7989606315)\r\n"] +[326.495243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.495334, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.507403, "o", "8700041a40a5e900\\r\\n\r\n"] +[326.507635, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496992 (current time 26.7989638415)\r\n"] +[326.510458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.510678, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.523078, "o", "7e7ee7817e817e7e\\r\\n\r\n"] +[326.523408, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.523588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994924005 (current time 26.798968433)\r\n"] +[326.526192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.526405, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.539193, "o", "0500c5c5c5c5c5d6\\r\\n\r\n"] +[326.539453, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.539567, "o", "[tsffs info] Cancelling event with next time 2.9994932605 (current time 26.798967573)\r\n"] +[326.54207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.542288, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.554801, "o", "7f408a8a8a8f8a8a\\r\\n\r\n"] +[326.555036, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.555276, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916315 (current time 26.798969202)\r\n"] +[326.558194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.558369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.564799, "o", "00001e80\\r\\n\r\n"] +[326.565155, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726752 (current time 26.7987340815)\r\n"] +[326.567899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.56808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.580144, "o", "231cd86665664141\\r\\n\r\n"] +[326.580509, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.580678, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497622 (current time 26.7989632115)\r\n"] +[326.583019, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.58323, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.595286, "o", "5252525262525252\\r\\n\r\n"] +[326.59561, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500125 (current time 26.7989607085)\r\n"] +[326.598033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.598189, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.609885, "o", "0030313131313131\\r\\n\r\n"] +[326.610249, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.610456, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008415 (current time 26.798959992)\r\n"] +[326.613095, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.613296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.625409, "o", "129c1bbb82c16232\\r\\n\r\n"] +[326.625706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.625828, "o", "[tsffs info] Cancelling event with next time 2.999494555 (current time 26.7989662785)\r\n"] +[326.628645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.628844, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.644515, "o", "414141414166757a\\r\\n\r\n"] +[326.644879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989715 (current time 26.798961862)\r\n"] +[326.647553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.647691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.659815, "o", "273031320166ff3a\\r\\n\r\n"] +[326.660064, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.66039, "o", "[tsffs info] Cancelling event with next time 2.999496834 (current time 26.7989639995)\r\n"] +[326.662798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.675041, "o", "d8a5303132333561\\r\\n\r\n"] +[326.675368, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[326.675497, "o", "[tsffs info] Cancelling event with next time 2.9994979725 (current time 26.798962861)\r\n"] +[326.678344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.678497, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.687748, "o", "2424246e6475\\r\\n\r\n"] +[326.688074, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.688305, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612487 (current time 26.7988483465)\r\n"] +[326.691088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.691304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.703234, "o", "015151513f515151\\r\\n\r\n"] +[326.703467, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.703671, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499223 (current time 26.7989616105)\r\n"] +[326.706722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.706918, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.714934, "o", "0000008ee9\\r\\n\r\n"] +[326.715341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996686175 (current time 26.798792216)\r\n"] +[326.718672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.71884, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.731422, "o", "034000a8cbf107c9\\r\\n\r\n"] +[326.731701, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.731822, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946255 (current time 26.798966208)\r\n"] +[326.735066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.735179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[326.73539, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.747469, "o", "7010703939cb7060\\r\\n\r\n"] +[326.747833, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978415 (current time 26.798962992)\r\n"] +[326.750868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.750962, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.763377, "o", "40c9623a0e660101\\r\\n\r\n"] +[326.763651, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496928 (current time 26.7989639055)\r\n"] +[326.766158, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.766452, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.778653, "o", "306263ffff800000\\r\\n\r\n"] +[326.779031, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956725 (current time 26.798965161)\r\n"] +[326.781591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.781881, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.793686, "o", "d803030303030303\\r\\n\r\n"] +[326.793969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995955 (current time 26.798961238)\r\n"] +[326.797522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.797786, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.809949, "o", "f730313233343d36\\r\\n\r\n"] +[326.810205, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.810595, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978955 (current time 26.798962938)\r\n"] +[326.813172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.82566, "o", "f2f2f200ff6464f2\\r\\n\r\n"] +[326.826204, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930505 (current time 26.798967783)\r\n"] +[326.828983, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.829117, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.836008, "o", "0c40a5e9\\r\\n\r\n"] +[326.836319, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724112 (current time 26.7987367215)\r\n"] +[326.839639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.839776, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.852554, "o", "d8e9d80be9ead80b\\r\\n\r\n"] +[326.852909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489392 (current time 26.7989714415)\r\n"] +[326.8565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.856677, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.861849, "o", "000002\\r\\n\r\n"] +[326.862334, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784868 (current time 26.7986759655)\r\n"] +[326.864282, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.873975, "o", "0cd8e940e9a5\\r\\n\r\n"] +[326.874262, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999607836 (current time 26.7988529975)\r\n"] +[326.876827, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.889595, "o", "781b1dd3f3f0c3f3\\r\\n\r\n"] +[326.889867, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491988 (current time 26.7989688455)\r\n"] +[326.892357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.892575, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.904315, "o", "0030313233343536\\r\\n\r\n"] +[326.904541, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[326.907543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.919472, "o", "d9400b2530313233\\r\\n\r\n"] +[326.91977, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498155 (current time 26.7989626785)\r\n"] +[326.92298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[326.923117, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.934965, "o", "3939393939393939\\r\\n\r\n"] +[326.935281, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992025 (current time 26.798961631)\r\n"] +[326.938725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.938789, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.944003, "o", "014040\\r\\n\r\n"] +[326.944344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784693 (current time 26.7986761405)\r\n"] +[326.94652, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.946676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.95618, "o", "d3010b40a5e9\\r\\n\r\n"] +[326.956461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[326.956635, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996094475 (current time 26.798851386)\r\n"] +[326.959162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[326.959392, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.978232, "o", "d8007fa530313233\\r\\n\r\n"] +[326.978814, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496874 (current time 26.7989639595)\r\n"] +[326.981583, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[326.988281, "o", "63636363\\r\\n\r\n"] +[326.988691, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997273565 (current time 26.798733477)\r\n"] +[326.991425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.003441, "o", "a410005466545454\\r\\n\r\n"] +[327.003661, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.003763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[327.004017, "o", "[tsffs info] Cancelling event with next time 2.9994990795 (current time 26.798961754)\r\n"] +[327.007026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.00949, "o", "40\\r\\n\r\n"] +[327.009934, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99989816 (current time 26.7985626735)\r\n"] +[327.011907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.024896, "o", "f1f0f87a696e670b\\r\\n\r\n"] +[327.025349, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927685 (current time 26.798968065)\r\n"] +[327.027908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.040506, "o", "a286a2f3f3f3f3f3\\r\\n\r\n"] +[327.040909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918565 (current time 26.798968977)\r\n"] +[327.043772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.043909, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.056173, "o", "3738f7f77af7017a\\r\\n\r\n"] +[327.056529, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.056773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938625 (current time 26.798966971)\r\n"] +[327.059442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.071533, "o", "04040404040404cb\\r\\n\r\n"] +[327.071753, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.071903, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984555 (current time 26.798962378)\r\n"] +[327.074839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.07496, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.082762, "o", "d800001000\\r\\n\r\n"] +[327.083217, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670113 (current time 26.7987907205)\r\n"] +[327.087221, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.087257, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.099829, "o", "d8d80b40d80bd80b\\r\\n\r\n"] +[327.1002, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921125 (current time 26.798968721)\r\n"] +[327.104278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.10447, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.116768, "o", "d80b303132333435\\r\\n\r\n"] +[327.117073, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980825 (current time 26.798962751)\r\n"] +[327.121109, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.12135, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.129697, "o", "d80f40c8e9\\r\\n\r\n"] +[327.12996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.13011, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996658185 (current time 26.798795015)\r\n"] +[327.132383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.132502, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.144858, "o", "415b343500ff007a\\r\\n\r\n"] +[327.145175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.145329, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495775 (current time 26.7989650585)\r\n"] +[327.147714, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.147824, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.157571, "o", "f1fe0b40a5e9\\r\\n\r\n"] +[327.157996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.158126, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996068885 (current time 26.798853945)\r\n"] +[327.160859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.160952, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.172849, "o", "63646566415e6261\\r\\n\r\n"] +[327.173257, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498633 (current time 26.7989622005)\r\n"] +[327.175953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.176087, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.184404, "o", "a4a5a5a5e9\\r\\n\r\n"] +[327.184683, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.184789, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664874 (current time 26.7987959595)\r\n"] +[327.188382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.188518, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.188572, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.194342, "o", "007fe9\\r\\n\r\n"] +[327.194738, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.194849, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781943 (current time 26.7986788905)\r\n"] +[327.197117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.197275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.210937, "o", "3536373839613333\\r\\n\r\n"] +[327.211327, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.211475, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998435 (current time 26.79896099)\r\n"] +[327.214336, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.214505, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.21867, "o", "d80b\\r\\n\r\n"] +[327.218932, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.21911, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838947 (current time 26.7986218865)\r\n"] +[327.22238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.222495, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.22267, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.226564, "o", "0400\\r\\n\r\n"] +[327.226959, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.227179, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841492 (current time 26.7986193415)\r\n"] +[327.229319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.229662, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.242203, "o", "6e6e6e6ee96e6e6e\\r\\n\r\n"] +[327.242574, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.242883, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901015 (current time 26.798970732)\r\n"] +[327.245382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.245579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.253722, "o", "d8000000ff\\r\\n\r\n"] +[327.254138, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.254162, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996675375 (current time 26.798793296)\r\n"] +[327.257096, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.257179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.257506, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.269983, "o", "00dba5a5d92a6443\\r\\n\r\n"] +[327.270181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.270487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933785 (current time 26.798967455)\r\n"] +[327.273716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.273925, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.274053, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.287006, "o", "be06d0bf3031ff00\\r\\n\r\n"] +[327.287246, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.287395, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994924005 (current time 26.798968433)\r\n"] +[327.290448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.290794, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.301838, "o", "d8d8016a6a6a6a\\r\\n\r\n"] +[327.302071, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.30234, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99955001 (current time 26.7989108235)\r\n"] +[327.305962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.306225, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.318289, "o", "6767676767676767\\r\\n\r\n"] +[327.318535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[327.318772, "o", "[tsffs info] Cancelling event with next time 2.9994989985 (current time 26.798961835)\r\n"] +[327.322287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.322566, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.326669, "o", "e2e2\\r\\n\r\n"] +[327.327077, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389225 (current time 26.798621911)\r\n"] +[327.329503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.329618, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.33778, "o", "e9e940a5ea\\r\\n\r\n"] +[327.338096, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.338283, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996647155 (current time 26.798796118)\r\n"] +[327.341315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.341533, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.345529, "o", "e8a5\\r\\n\r\n"] +[327.345928, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.346305, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388105 (current time 26.798622023)\r\n"] +[327.348136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.348192, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.348462, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.360621, "o", "6868303141414141\\r\\n\r\n"] +[327.361072, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.361094, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500196 (current time 26.7989606375)\r\n"] +[327.363828, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.364059, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.377857, "o", "d81e41a530313233\\r\\n\r\n"] +[327.378188, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.378365, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969115 (current time 26.798963922)\r\n"] +[327.380898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.381088, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.396001, "o", "2121212121212121\\r\\n\r\n"] +[327.396643, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.396723, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[327.399067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.399306, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.41255, "o", "202020202016405b\\r\\n\r\n"] +[327.412969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[327.41309, "o", "[tsffs info] Cancelling event with next time 2.999499705 (current time 26.7989611285)\r\n"] +[327.415487, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.415744, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.422706, "o", "a5b91dc5\\r\\n\r\n"] +[327.423055, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997228795 (current time 26.798737954)\r\n"] +[327.425727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.425937, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.438005, "o", "2172414166757bc2\\r\\n\r\n"] +[327.43827, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.438571, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977395 (current time 26.798963094)\r\n"] +[327.441535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.441724, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.453555, "o", "3435363132333435\\r\\n\r\n"] +[327.453794, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.454053, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002 (current time 26.7989606335)\r\n"] +[327.457067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.457177, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.457381, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.469566, "o", "d80b40a580808080\\r\\n\r\n"] +[327.469905, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.47005, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967685 (current time 26.798964065)\r\n"] +[327.473335, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.473367, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.473562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.48155, "o", "d840405be9\\r\\n\r\n"] +[327.481902, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.482089, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667122 (current time 26.7987937115)\r\n"] +[327.485373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.485489, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.485674, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.498254, "o", "4167755140db657a\\r\\n\r\n"] +[327.498431, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.498637, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496485 (current time 26.7989643485)\r\n"] +[327.502102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.502185, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.502285, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.514257, "o", "3031323334353617\\r\\n\r\n"] +[327.514557, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[327.514787, "o", "[tsffs info] Cancelling event with next time 2.9995002925 (current time 26.798960541)\r\n"] +[327.517878, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.518011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.530449, "o", "4a80c36566414148\\r\\n\r\n"] +[327.530885, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949768 (current time 26.7989631535)\r\n"] +[327.533524, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.533817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.542247, "o", "d80b80a5e9\\r\\n\r\n"] +[327.542589, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659435 (current time 26.79879489)\r\n"] +[327.545384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.550767, "o", "121833\\r\\n\r\n"] +[327.551153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844565 (current time 26.798676377)\r\n"] +[327.554725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.554849, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.570232, "o", "d80a40a5e9d0d0d0\\r\\n\r\n"] +[327.570988, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.57106, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922975 (current time 26.798968536)\r\n"] +[327.574026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.57414, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[327.574226, "o", "[tsffs info] Resuming simulation\r\n"] +[327.586769, "o", "c5c5c5c53b676666\\r\\n\r\n"] +[327.586901, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.587122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493953 (current time 26.7989668805)\r\n"] +[327.590614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.590732, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.593208, "o", "67\\r\\n\r\n"] +[327.59362, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.593816, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998979355 (current time 26.798562898)\r\n"] +[327.595918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.595951, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.604127, "o", "d80b405be9\\r\\n\r\n"] +[327.604534, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.604719, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666018 (current time 26.7987948155)\r\n"] +[327.60754, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.607723, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.617638, "o", "c0c0c0c07f\\r\\n\r\n"] +[327.618387, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.618502, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[327.618569, "o", "[tsffs info] Cancelling event with next time 2.999665166 (current time 26.7987956675)\r\n"] +[327.622218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.622257, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.635657, "o", "6666666667303132\\r\\n\r\n"] +[327.636145, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.636269, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499763 (current time 26.7989610705)\r\n"] +[327.639937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.640078, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.651877, "o", "6969303132333435\\r\\n\r\n"] +[327.652135, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.652285, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499994 (current time 26.7989608395)\r\n"] +[327.655694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.655829, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.655947, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.667935, "o", "a8f4303132333435\\r\\n\r\n"] +[327.668215, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.668385, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497948 (current time 26.7989628855)\r\n"] +[327.671958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.672061, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.6722, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.684173, "o", "6363ff0001000005\\r\\n\r\n"] +[327.684401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.684477, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498368 (current time 26.7989624655)\r\n"] +[327.688135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.688373, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.688473, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.694092, "o", "dfdf00\\r\\n\r\n"] +[327.694425, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.694788, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997798135 (current time 26.79868102)\r\n"] +[327.696911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.697026, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.703767, "o", "0a40a5e9\\r\\n\r\n"] +[327.704156, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724162 (current time 26.7987366715)\r\n"] +[327.706977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.707033, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.709427, "o", "e9\\r\\n\r\n"] +[327.70988, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998967595 (current time 26.798564074)\r\n"] +[327.713063, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.713198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.725467, "o", "b7b7b7b749b700b7\\r\\n\r\n"] +[327.725748, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.725947, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929905 (current time 26.798967843)\r\n"] +[327.729721, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.729886, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.742375, "o", "3ef02b2b2b3ef02b\\r\\n\r\n"] +[327.742703, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.742929, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994912315 (current time 26.798969602)\r\n"] +[327.745808, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.745958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.75973, "o", "d866757a7a696e6c\\r\\n\r\n"] +[327.759983, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.760138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936505 (current time 26.798967183)\r\n"] +[327.762706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.762809, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.768369, "o", "40a587\\r\\n\r\n"] +[327.768674, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.76901, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783147 (current time 26.7986776865)\r\n"] +[327.772347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.772418, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.772673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.782017, "o", "d79902a616a5\\r\\n\r\n"] +[327.782245, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.782657, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996101775 (current time 26.798850656)\r\n"] +[327.785913, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.785967, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.786142, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.79803, "o", "3000000030313233\\r\\n\r\n"] +[327.798268, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.798534, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995010275 (current time 26.798959806)\r\n"] +[327.801649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.801851, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.802026, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.814052, "o", "9a9a000010200000\\r\\n\r\n"] +[327.814249, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.814501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986865 (current time 26.798962147)\r\n"] +[327.81696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.817203, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[327.81734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.827983, "o", "d80b35352b\\r\\n\r\n"] +[327.828354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.828678, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966728 (current time 26.7987935535)\r\n"] +[327.831069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.843164, "o", "00ff000000130120\\r\\n\r\n"] +[327.843525, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498777 (current time 26.7989620565)\r\n"] +[327.846213, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.846402, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.858139, "o", "3637383961626364\\r\\n\r\n"] +[327.858466, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.858742, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499688 (current time 26.7989611455)\r\n"] +[327.861457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.874015, "o", "6666665e5e5e5e5e\\r\\n\r\n"] +[327.874277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.874534, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936775 (current time 26.798967156)\r\n"] +[327.87725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.877433, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.890041, "o", "7fff41017fdddddd\\r\\n\r\n"] +[327.890309, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[327.890479, "o", "[tsffs info] Cancelling event with next time 2.999488347 (current time 26.7989724865)\r\n"] +[327.893291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.893509, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.898919, "o", "e3a5e8\\r\\n\r\n"] +[327.899201, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.899391, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780785 (current time 26.7986800485)\r\n"] +[327.90264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.902821, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.914642, "o", "4040404040404040\\r\\n\r\n"] +[327.91492, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.915272, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007945 (current time 26.798960039)\r\n"] +[327.918457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.918631, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.930635, "o", "666663646b664142\\r\\n\r\n"] +[327.930958, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985975 (current time 26.798962236)\r\n"] +[327.933871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.93394, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.946044, "o", "a59191919100a504\\r\\n\r\n"] +[327.946288, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497856 (current time 26.7989629775)\r\n"] +[327.948855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[327.949063, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.962038, "o", "28fa3f0002bcbcbc\\r\\n\r\n"] +[327.962391, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994900995 (current time 26.798970734)\r\n"] +[327.965043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.965176, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.976973, "o", "3f32333434360000\\r\\n\r\n"] +[327.977255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.977491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993345 (current time 26.798961499)\r\n"] +[327.979804, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.980047, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[327.992222, "o", "cdcd32000000390f\\r\\n\r\n"] +[327.992488, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[327.992647, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948775 (current time 26.798965956)\r\n"] +[327.995287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[327.995438, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.007294, "o", "3334353637333536\\r\\n\r\n"] +[328.007517, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999845 (current time 26.798960849)\r\n"] +[328.010352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.010628, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.022353, "o", "4c03030303030303\\r\\n\r\n"] +[328.022745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499703 (current time 26.7989611305)\r\n"] +[328.025316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.025587, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.038128, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[328.038576, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[328.041558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.041827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.054074, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.054366, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.057532, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.057742, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.070156, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.070436, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.070637, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.073537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.073697, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.08618, "o", "62726e6d6fd7d7d7\\r\\n\r\n"] +[328.086426, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.086671, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492596 (current time 26.7989682375)\r\n"] +[328.089849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.089977, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.102893, "o", "62726e6d6fd7d7d7\\r\\n\r\n"] +[328.103163, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.103191, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492596 (current time 26.7989682375)\r\n"] +[328.106774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.119346, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.11953, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.123237, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.136019, "o", "66757a7a69d7d7d7\\r\\n\r\n"] +[328.136447, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[328.136638, "o", "[tsffs info] Cancelling event with next time 2.9994936005 (current time 26.798967233)\r\n"] +[328.139971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.140064, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.152648, "o", "62726e6d6fa8a8a8\\r\\n\r\n"] +[328.152935, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.153187, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994927505 (current time 26.798968083)\r\n"] +[328.156388, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.156605, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.169406, "o", "66757a7a69d7d7d7\\r\\n\r\n"] +[328.169867, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.169941, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936005 (current time 26.798967233)\r\n"] +[328.173418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.173568, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.18607, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.186516, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.18673, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.189855, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.190043, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.20284, "o", "66756e6d6fa8a8a8\\r\\n\r\n"] +[328.203237, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.203479, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492581 (current time 26.7989682525)\r\n"] +[328.206594, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.206784, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.219236, "o", "62727a7a69a8a8a8\\r\\n\r\n"] +[328.219614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.219837, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493935 (current time 26.7989668985)\r\n"] +[328.223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.223171, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.223427, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.235771, "o", "66757a7a69a8d7d7\\r\\n\r\n"] +[328.236313, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.236386, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493652 (current time 26.7989671815)\r\n"] +[328.239686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.2398, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.252286, "o", "66757a6d6fa8a8a8\\r\\n\r\n"] +[328.252674, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.252794, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492642 (current time 26.7989681915)\r\n"] +[328.256268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.256391, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.268874, "o", "66757a7a69d7a8a8\\r\\n\r\n"] +[328.269336, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.269491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937035 (current time 26.79896713)\r\n"] +[328.272927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.27306, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.28545, "o", "66757a7a69a8d7a8\\r\\n\r\n"] +[328.285867, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937035 (current time 26.79896713)\r\n"] +[328.289631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.289866, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.302526, "o", "66757a6d69a8a8a8\\r\\n\r\n"] +[328.30287, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.303014, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937265 (current time 26.798967107)\r\n"] +[328.306367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.306568, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.319009, "o", "66757a7a69a8a8d7\\r\\n\r\n"] +[328.319387, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.319624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937035 (current time 26.79896713)\r\n"] +[328.323076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.32323, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.336218, "o", "66757a7a6fa8a8a8\\r\\n\r\n"] +[328.336516, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.33669, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492674 (current time 26.7989681595)\r\n"] +[328.34008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.340249, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.352823, "o", "66727a7a69a8a8a8\\r\\n\r\n"] +[328.353217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.353357, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938395 (current time 26.798966994)\r\n"] +[328.356767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.35681, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.369638, "o", "62757a7a69a8a8a8\\r\\n\r\n"] +[328.370014, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.370151, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938645 (current time 26.798966969)\r\n"] +[328.373412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.373666, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.373838, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.386198, "o", "66756e7a69a8a8a8\\r\\n\r\n"] +[328.386482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.38661, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493701 (current time 26.7989671325)\r\n"] +[328.390007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.390056, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.390161, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.432696, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.433671, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.433847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.436847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.436979, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.479464, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.480512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[328.480677, "o", "[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.484398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.484568, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.52758, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.528564, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.531513, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.544093, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.544231, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.546953, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.547087, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.558901, "o", "51412d3939423939\\r\\n\r\n"] +[328.559148, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.559532, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498646 (current time 26.7989621875)\r\n"] +[328.562337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.562539, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.574928, "o", "66757a7a69a8a866\\r\\n\r\n"] +[328.575254, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948375 (current time 26.798965996)\r\n"] +[328.578111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.578251, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.590551, "o", "66757a7a68a8a8a8\\r\\n\r\n"] +[328.590809, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.590987, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937875 (current time 26.798967046)\r\n"] +[328.593687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.593956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.606381, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.606738, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.60944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.609531, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.621422, "o", "4175757575757575\\r\\n\r\n"] +[328.621756, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.621849, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499341 (current time 26.7989614925)\r\n"] +[328.624641, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.624678, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.624762, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.637245, "o", "66757a85697a7aa8\\r\\n\r\n"] +[328.637457, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.637672, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494836 (current time 26.7989659975)\r\n"] +[328.640572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.640687, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.653401, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.653697, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.653886, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.656911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.657038, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.669488, "o", "66757a7afceb3031\\r\\n\r\n"] +[328.669877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.67001, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930415 (current time 26.798967792)\r\n"] +[328.673223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.67342, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.673518, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.68606, "o", "75c8c8c8c8784141\\r\\n\r\n"] +[328.686342, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.686554, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949495 (current time 26.7989658835)\r\n"] +[328.689816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.690048, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.702147, "o", "9a75797a757a8530\\r\\n\r\n"] +[328.702505, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.702599, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960625 (current time 26.798964771)\r\n"] +[328.706158, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.706253, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.706484, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.718703, "o", "66777a7a69a8a8a8\\r\\n\r\n"] +[328.719049, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.719311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937175 (current time 26.798967116)\r\n"] +[328.722742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.722814, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.722991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.735143, "o", "7a7a69a8a8303132\\r\\n\r\n"] +[328.73546, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.735631, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954215 (current time 26.798965412)\r\n"] +[328.739262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.739428, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.739454, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.751314, "o", "3031323334353637\\r\\n\r\n"] +[328.751851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[328.755618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.755791, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.769024, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[328.769393, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.769526, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[328.77309, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.773273, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.785908, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.786188, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.786395, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.789956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.790135, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.790366, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.802369, "o", "66757a7a69a83031\\r\\n\r\n"] +[328.802698, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.802967, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963175 (current time 26.798964516)\r\n"] +[328.806509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.806556, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.817878, "o", "3738fea4a40cdb\\r\\n\r\n"] +[328.818245, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.818444, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999548889 (current time 26.7989119445)\r\n"] +[328.822158, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.822342, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.822508, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.834328, "o", "64659b4140370080\\r\\n\r\n"] +[328.834653, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.834896, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989695 (current time 26.798961864)\r\n"] +[328.838561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.838625, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.838773, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.851387, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.85172, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.851982, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.855679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.855751, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.855843, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.866425, "o", "6600647a323351\\r\\n\r\n"] +[328.866779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995559015 (current time 26.798904932)\r\n"] +[328.871096, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.87115, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.871221, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.883315, "o", "66757aa830313233\\r\\n\r\n"] +[328.883731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977635 (current time 26.79896307)\r\n"] +[328.887865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.888012, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.899935, "o", "004141e8030000a9\\r\\n\r\n"] +[328.900298, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.900556, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498368 (current time 26.7989624655)\r\n"] +[328.904578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.904654, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.915856, "o", "a8a8a8a8a8a8a8\\r\\n\r\n"] +[328.916218, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.916409, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999548622 (current time 26.7989122115)\r\n"] +[328.920742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.920981, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.933573, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[328.933838, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.93412, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[328.93799, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.938172, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.9382, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.950808, "o", "66757a1069a8aea8\\r\\n\r\n"] +[328.950934, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.951178, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494002 (current time 26.7989668315)\r\n"] +[328.954991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.955108, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.955221, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.968103, "o", "66747affff396131\\r\\n\r\n"] +[328.968418, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.968523, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938465 (current time 26.798966987)\r\n"] +[328.97243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[328.972568, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[328.972689, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.978212, "o", "db7e21\\r\\n\r\n"] +[328.978533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997809265 (current time 26.798679907)\r\n"] +[328.98083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.98105, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[328.992863, "o", "416675867a695867\\r\\n\r\n"] +[328.993214, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[328.993519, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498154 (current time 26.7989626795)\r\n"] +[328.996094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[328.996296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.008489, "o", "000040d8d8d8d8d8\\r\\n\r\n"] +[329.008923, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494279 (current time 26.7989665545)\r\n"] +[329.01181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.011975, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.024267, "o", "3031e0e0e0e0e0e0\\r\\n\r\n"] +[329.02462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493717 (current time 26.7989671165)\r\n"] +[329.027459, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.027677, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.040031, "o", "a2a2a2a2a2a2a2a2\\r\\n\r\n"] +[329.040189, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.040482, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916665 (current time 26.798969167)\r\n"] +[329.043049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.043362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.050313, "o", "f1fe00eb\\r\\n\r\n"] +[329.050723, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[329.050868, "o", "[tsffs info] Cancelling event with next time 2.9997218525 (current time 26.798738981)\r\n"] +[329.054658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.054915, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.067592, "o", "21333738bcbcbcbc\\r\\n\r\n"] +[329.067805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.068067, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910665 (current time 26.798969767)\r\n"] +[329.071806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.072022, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.072212, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.084081, "o", "5757805622574057\\r\\n\r\n"] +[329.084486, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.084589, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499707 (current time 26.7989611265)\r\n"] +[329.08836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.088445, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.088631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.101278, "o", "a8a8a8a8a8b9a8a8\\r\\n\r\n"] +[329.101713, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.101842, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490532 (current time 26.7989703015)\r\n"] +[329.105425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.105572, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.105706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.117833, "o", "343500ff38393434\\r\\n\r\n"] +[329.11799, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.118228, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497676 (current time 26.7989631575)\r\n"] +[329.121821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.122021, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.12228, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.134217, "o", "373737370b131313\\r\\n\r\n"] +[329.134559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.134694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990305 (current time 26.798961803)\r\n"] +[329.138365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.138473, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.138647, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.143989, "o", "6935a8\\r\\n\r\n"] +[329.144316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.144462, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782978 (current time 26.7986778555)\r\n"] +[329.146647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.146677, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.147025, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.159273, "o", "a80000a8a8cbf180\\r\\n\r\n"] +[329.159448, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.159779, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934915 (current time 26.798967342)\r\n"] +[329.162395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.162585, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.174181, "o", "6675303132333435\\r\\n\r\n"] +[329.174524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.174536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001245 (current time 26.798960709)\r\n"] +[329.177441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.177499, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.189279, "o", "6634643635383031\\r\\n\r\n"] +[329.189577, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.189726, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949998 (current time 26.7989608535)\r\n"] +[329.192248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.205174, "o", "a857f2a8a8a8a8ff\\r\\n\r\n"] +[329.205331, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.20565, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490437 (current time 26.7989703965)\r\n"] +[329.208398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.208485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.220452, "o", "9a75303132cd3435\\r\\n\r\n"] +[329.220764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.221077, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966905 (current time 26.798964143)\r\n"] +[329.224059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.224123, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.236687, "o", "58a85f5f5f5f5f5f\\r\\n\r\n"] +[329.236922, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.237217, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913175 (current time 26.798969516)\r\n"] +[329.240255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.240396, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.250232, "o", "0b40a5febfdb\\r\\n\r\n"] +[329.250601, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996047645 (current time 26.798856069)\r\n"] +[329.254662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.254741, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.254991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.267447, "o", "7a7a69a8a8a8009d\\r\\n\r\n"] +[329.26788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.26812, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492897 (current time 26.7989679365)\r\n"] +[329.271837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.272021, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.285288, "o", "a5a533fe69bbd80c\\r\\n\r\n"] +[329.285701, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.285893, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490776 (current time 26.7989700575)\r\n"] +[329.289447, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.289643, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.302462, "o", "757a7a69a8a8a8a8\\r\\n\r\n"] +[329.302827, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949269 (current time 26.7989681435)\r\n"] +[329.306366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.306485, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.319091, "o", "7a467a7a7aa8a8a8\\r\\n\r\n"] +[329.319412, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.319642, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491765 (current time 26.7989690685)\r\n"] +[329.323038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.32328, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.323416, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.32596, "o", "af\\r\\n\r\n"] +[329.326343, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998957695 (current time 26.798565064)\r\n"] +[329.328372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.328646, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.340888, "o", "a8f0808080918680\\r\\n\r\n"] +[329.341201, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.341487, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497552 (current time 26.7989632815)\r\n"] +[329.34427, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.356721, "o", "00800bd80bbf6675\\r\\n\r\n"] +[329.357141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494445 (current time 26.7989663885)\r\n"] +[329.359799, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.359901, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.372279, "o", "66757a66757a7a69\\r\\n\r\n"] +[329.372616, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959325 (current time 26.798964901)\r\n"] +[329.375356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.37543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.388212, "o", "f0efe9f0f0f0f93d\\r\\n\r\n"] +[329.388657, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489432 (current time 26.7989714015)\r\n"] +[329.39174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.391886, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.405101, "o", "f1fe0cdba8a8a8cb\\r\\n\r\n"] +[329.405462, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.405843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994874105 (current time 26.798973423)\r\n"] +[329.408611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.408687, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.420892, "o", "42cb4142d241a800\\r\\n\r\n"] +[329.421149, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.421375, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958965 (current time 26.798964937)\r\n"] +[329.424523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.424645, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.42485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.436804, "o", "8585858585858585\\r\\n\r\n"] +[329.437045, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.437239, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990585 (current time 26.798961775)\r\n"] +[329.440241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.440357, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.453188, "o", "6675ff7afe1fdba8\\r\\n\r\n"] +[329.453416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.453615, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489263 (current time 26.7989715705)\r\n"] +[329.456673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.456864, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.469881, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[329.470161, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.470495, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[329.473381, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.473619, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.485502, "o", "2525252525252524\\r\\n\r\n"] +[329.485874, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500173 (current time 26.7989606605)\r\n"] +[329.4894, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.489535, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.502249, "o", "a8a8a80010d33031\\r\\n\r\n"] +[329.502725, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959065 (current time 26.798964927)\r\n"] +[329.506512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.50659, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.519459, "o", "a7a8a8a8a8a8a8a8\\r\\n\r\n"] +[329.519856, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905925 (current time 26.798970241)\r\n"] +[329.523388, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.535913, "o", "66757a757a7a69a8\\r\\n\r\n"] +[329.536335, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949485 (current time 26.7989659835)\r\n"] +[329.539938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.540083, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.551927, "o", "00a8303132653366\\r\\n\r\n"] +[329.55215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991655 (current time 26.798961668)\r\n"] +[329.555874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.555906, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.568019, "o", "333333333333f0f0\\r\\n\r\n"] +[329.568399, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980385 (current time 26.798962795)\r\n"] +[329.572157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.572343, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.585086, "o", "7c686e68696e66b2\\r\\n\r\n"] +[329.585255, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[329.585289, "o", "[tsffs info] Cancelling event with next time 2.999494729 (current time 26.7989661045)\r\n"] +[329.589008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.589244, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.601617, "o", "a8a8a8a810303132\\r\\n\r\n"] +[329.601856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.602188, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495727 (current time 26.7989651065)\r\n"] +[329.605781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.605852, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.618593, "o", "3031dfdfdfdfdf31\\r\\n\r\n"] +[329.61897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488511 (current time 26.7989723225)\r\n"] +[329.622699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.622815, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.635326, "o", "f6f4f4f4f4f4f461\\r\\n\r\n"] +[329.635516, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.635593, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491538 (current time 26.7989692955)\r\n"] +[329.639318, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.639412, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.651935, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[329.652315, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.652417, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[329.656016, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.65605, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.668187, "o", "848484843738391f\\r\\n\r\n"] +[329.668368, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.668485, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982695 (current time 26.798962564)\r\n"] +[329.672233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.672256, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.684113, "o", "0000008038414141\\r\\n\r\n"] +[329.684262, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.684323, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[329.68451, "o", "[tsffs info] Cancelling event with next time 2.9995007305 (current time 26.798960103)\r\n"] +[329.688376, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.688453, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.688496, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.700926, "o", "1f66656641414141\\r\\n\r\n"] +[329.70121, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.701311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988645 (current time 26.798961969)\r\n"] +[329.705295, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.705616, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.717618, "o", "262626262626260c\\r\\n\r\n"] +[329.717956, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989405 (current time 26.798961893)\r\n"] +[329.721776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.721866, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.72188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.734462, "o", "62fa0000fa7a7a69\\r\\n\r\n"] +[329.73482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.735023, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933145 (current time 26.798967519)\r\n"] +[329.738671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.738777, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.738956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.751594, "o", "2b0dab2b2b2b0e2b\\r\\n\r\n"] +[329.75205, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949038 (current time 26.7989704535)\r\n"] +[329.755873, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.756013, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.768773, "o", "a8a8a8d80bbfa5e9\\r\\n\r\n"] +[329.769041, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.769228, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489497 (current time 26.7989713365)\r\n"] +[329.773031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.773147, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.785958, "o", "57371b03d2f3a8cb\\r\\n\r\n"] +[329.786345, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.786469, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932135 (current time 26.79896762)\r\n"] +[329.790021, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.790168, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.802376, "o", "ab677f0051414145\\r\\n\r\n"] +[329.802639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.802922, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967485 (current time 26.798964085)\r\n"] +[329.806399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.806557, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.818663, "o", "66757a8669303939\\r\\n\r\n"] +[329.818954, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.819223, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949824 (current time 26.7989625935)\r\n"] +[329.822798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.822915, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[329.823091, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.834964, "o", "6263677a14141414\\r\\n\r\n"] +[329.835196, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.835439, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989485 (current time 26.798961885)\r\n"] +[329.839166, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.839297, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.852079, "o", "750000ffffa8a8a8\\r\\n\r\n"] +[329.852514, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919385 (current time 26.798968895)\r\n"] +[329.856363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.856513, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.868532, "o", "4ce3014646464646\\r\\n\r\n"] +[329.868986, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497634 (current time 26.7989631995)\r\n"] +[329.872842, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.872942, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.88529, "o", "7b66531f1f1f1f1f\\r\\n\r\n"] +[329.885676, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.885825, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493025 (current time 26.7989678085)\r\n"] +[329.889533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.889615, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.902241, "o", "7da8a8a8a8a87d7d\\r\\n\r\n"] +[329.902768, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.90296, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490424 (current time 26.7989704095)\r\n"] +[329.906468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.906589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.918226, "o", "3080323334353637\\r\\n\r\n"] +[329.918689, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.918774, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500167 (current time 26.7989606665)\r\n"] +[329.92246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.922579, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.934958, "o", "7666665f757a7a69\\r\\n\r\n"] +[329.935363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495854 (current time 26.7989649795)\r\n"] +[329.939195, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.939465, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.952215, "o", "7a7a69660cdb6666\\r\\n\r\n"] +[329.952636, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939265 (current time 26.798966907)\r\n"] +[329.957171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.957343, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.969183, "o", "6650313233343536\\r\\n\r\n"] +[329.96953, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500158 (current time 26.7989606755)\r\n"] +[329.972866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[329.973049, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[329.985579, "o", "8c8c8c8c3334356e\\r\\n\r\n"] +[329.985833, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[329.986094, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493919 (current time 26.7989669145)\r\n"] +[329.990178, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[329.990421, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.003094, "o", "a8a8a8a8a8a80029\\r\\n\r\n"] +[330.003266, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.003515, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930555 (current time 26.798967778)\r\n"] +[330.006807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.006895, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.007092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.018951, "o", "a800303132303132\\r\\n\r\n"] +[330.019288, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.01961, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499565 (current time 26.7989612685)\r\n"] +[330.023312, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.023534, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.023572, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.035967, "o", "66757a7a69a88000\\r\\n\r\n"] +[330.03642, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.036742, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963155 (current time 26.798964518)\r\n"] +[330.040008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.040143, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.052754, "o", "a8a8a80469a8a8a8\\r\\n\r\n"] +[330.053086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492865 (current time 26.7989679685)\r\n"] +[330.056559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.056704, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.068608, "o", "9292926548656565\\r\\n\r\n"] +[330.068864, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.069086, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993855 (current time 26.798961448)\r\n"] +[330.072715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.072857, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.073031, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.079407, "o", "98819881\\r\\n\r\n"] +[330.079832, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997269885 (current time 26.798733845)\r\n"] +[330.082123, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.082229, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.094917, "o", "f6f6f6f6f6f6f6f6\\r\\n\r\n"] +[330.095161, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.095426, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899785 (current time 26.798970855)\r\n"] +[330.097849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.098017, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.109955, "o", "b530203132333430\\r\\n\r\n"] +[330.11016, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.110367, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499469 (current time 26.7989613645)\r\n"] +[330.112835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.113035, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.125164, "o", "75967f96a5969696\\r\\n\r\n"] +[330.125746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966605 (current time 26.798964173)\r\n"] +[330.128463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.128643, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.138098, "o", "00000080bcde\\r\\n\r\n"] +[330.138546, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.138799, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996097605 (current time 26.798851073)\r\n"] +[330.141444, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.141638, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.153386, "o", "fa36373839614141\\r\\n\r\n"] +[330.153784, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976075 (current time 26.798963226)\r\n"] +[330.15698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.17009, "o", "4d4da8a8a8a8f0f0\\r\\n\r\n"] +[330.170506, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907745 (current time 26.798970059)\r\n"] +[330.173687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.173787, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.177719, "o", "a820\\r\\n\r\n"] +[330.178174, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401605 (current time 26.798620673)\r\n"] +[330.180124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.1804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.192589, "o", "0166757a7a69a9a8\\r\\n\r\n"] +[330.192843, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.192913, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950865 (current time 26.798965747)\r\n"] +[330.19562, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.195808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.207527, "o", "69a8353830313233\\r\\n\r\n"] +[330.207804, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.208106, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988925 (current time 26.798961941)\r\n"] +[330.21071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.210888, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.222881, "o", "69696969698aa8a8\\r\\n\r\n"] +[330.223409, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495626 (current time 26.7989652075)\r\n"] +[330.225928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.225945, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.237095, "o", "61f0f0f0b7029b\\r\\n\r\n"] +[330.237624, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551304 (current time 26.7989095295)\r\n"] +[330.240555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.240678, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.252565, "o", "8282828282828282\\r\\n\r\n"] +[330.252801, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.253105, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996225 (current time 26.798961211)\r\n"] +[330.256446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.256625, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.269183, "o", "66757a3569a8a8a8\\r\\n\r\n"] +[330.269352, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.269502, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949205 (current time 26.798965913)\r\n"] +[330.273181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.273247, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.286339, "o", "cbcbcbcbcbc5c5c5\\r\\n\r\n"] +[330.286562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.286933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485315 (current time 26.7989755185)\r\n"] +[330.289992, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.290269, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.290401, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.302785, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[330.302949, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.303296, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[330.306633, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.306915, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.318678, "o", "3434323031363334\\r\\n\r\n"] +[330.318965, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.319154, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003515 (current time 26.798960482)\r\n"] +[330.322824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.322907, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.323069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.33534, "o", "01002e2aff009c9c\\r\\n\r\n"] +[330.335607, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.335935, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994934595 (current time 26.798967374)\r\n"] +[330.339529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.33967, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.349668, "o", "a9a856cbf1fe\\r\\n\r\n"] +[330.350089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[330.350337, "o", "[tsffs info] Cancelling event with next time 2.9996055095 (current time 26.798855324)\r\n"] +[330.354389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.354658, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.367619, "o", "66a8a8a8a8a8a8a8\\r\\n\r\n"] +[330.36791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916575 (current time 26.798969176)\r\n"] +[330.371927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.372072, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.37218, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.384745, "o", "a7757a0b0b0b0b0b\\r\\n\r\n"] +[330.38489, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.385149, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925455 (current time 26.798968288)\r\n"] +[330.388884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.389037, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.389224, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.40182, "o", "a8a8a8a8a8a87a69\\r\\n\r\n"] +[330.402388, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.402662, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491602 (current time 26.7989692315)\r\n"] +[330.406228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.406328, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.419386, "o", "c703f6c762c8065f\\r\\n\r\n"] +[330.419714, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494029 (current time 26.7989668045)\r\n"] +[330.423327, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.423474, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.435334, "o", "2118666666000006\\r\\n\r\n"] +[330.435689, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.435915, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[330.439523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.43976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.45227, "o", "a8a8a8a8a8a8a810\\r\\n\r\n"] +[330.452745, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.452891, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919215 (current time 26.798968912)\r\n"] +[330.456421, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.456504, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.469077, "o", "37dff86669101010\\r\\n\r\n"] +[330.469532, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.469731, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965225 (current time 26.798964311)\r\n"] +[330.473136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.473237, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.485916, "o", "17de50fbff17de50\\r\\n\r\n"] +[330.48621, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.486415, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949074 (current time 26.7989700935)\r\n"] +[330.489897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.502503, "o", "f4e6eb6767676767\\r\\n\r\n"] +[330.502901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494657 (current time 26.7989661765)\r\n"] +[330.506391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.506659, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.519228, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[330.51957, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.519794, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[330.523271, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.523386, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.53565, "o", "0029707966ff3a81\\r\\n\r\n"] +[330.536007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496349 (current time 26.7989644845)\r\n"] +[330.5398, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.539897, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.552679, "o", "347430317a7ab974\\r\\n\r\n"] +[330.552987, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.553143, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965225 (current time 26.798964311)\r\n"] +[330.556537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.556628, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.556844, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.564789, "o", "8b5f303132\\r\\n\r\n"] +[330.565079, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996684435 (current time 26.79879239)\r\n"] +[330.568198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.580431, "o", "38396162ff1d0080\\r\\n\r\n"] +[330.580744, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.580898, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496555 (current time 26.7989642785)\r\n"] +[330.583603, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.583931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.595816, "o", "0002000038c66162\\r\\n\r\n"] +[330.59615, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.596185, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499498 (current time 26.7989613355)\r\n"] +[330.598805, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.599028, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.610659, "o", "9494949449850094\\r\\n\r\n"] +[330.611077, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.611172, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499359 (current time 26.7989614745)\r\n"] +[330.613761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.613932, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.626447, "o", "7a7a699da9bcbcbc\\r\\n\r\n"] +[330.626923, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883065 (current time 26.798972527)\r\n"] +[330.629353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.629579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.641566, "o", "ff00642200203630\\r\\n\r\n"] +[330.64181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.642025, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982635 (current time 26.79896257)\r\n"] +[330.644806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.644914, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.648929, "o", "6675\\r\\n\r\n"] +[330.649346, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.649525, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840989 (current time 26.7986198445)\r\n"] +[330.652745, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.652923, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.653138, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.657269, "o", "7df0\\r\\n\r\n"] +[330.657598, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.65773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388595 (current time 26.798621974)\r\n"] +[330.660349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.660577, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.672775, "o", "8000303118c0e330\\r\\n\r\n"] +[330.673132, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949831 (current time 26.7989625235)\r\n"] +[330.675773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.675825, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.676025, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.68815, "o", "66757a7a69010000\\r\\n\r\n"] +[330.688619, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.688737, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497849 (current time 26.7989629845)\r\n"] +[330.691268, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.691419, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.691485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.703395, "o", "414141414166f0f0\\r\\n\r\n"] +[330.703859, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.704012, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980265 (current time 26.798962807)\r\n"] +[330.706903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.707145, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.719359, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[330.719536, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.719891, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[330.723142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.723206, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.723364, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.729812, "o", "04007556\\r\\n\r\n"] +[330.730119, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.730236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727583 (current time 26.7987332505)\r\n"] +[330.732337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.732447, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.745036, "o", "66a8fe0cdba8a8a8\\r\\n\r\n"] +[330.745355, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.74543, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994895125 (current time 26.798971321)\r\n"] +[330.748219, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.748343, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.753711, "o", "35356d\\r\\n\r\n"] +[330.754058, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.754412, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997831195 (current time 26.798677714)\r\n"] +[330.757015, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.757064, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.757175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.769513, "o", "ff0000a8a893a800\\r\\n\r\n"] +[330.769938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.770135, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945505 (current time 26.798966283)\r\n"] +[330.773533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.773734, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.773895, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.77782, "o", "a5e9\\r\\n\r\n"] +[330.778154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.778346, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998387815 (current time 26.798622052)\r\n"] +[330.780965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.793209, "o", "ad757a9369f10606\\r\\n\r\n"] +[330.793591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495191 (current time 26.7989656425)\r\n"] +[330.796301, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.796495, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.808667, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[330.809096, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[330.809276, "o", "[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[330.81168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.81184, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.823448, "o", "6675757575757575\\r\\n\r\n"] +[330.823823, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499172 (current time 26.7989616615)\r\n"] +[330.826431, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.826607, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.839221, "o", "b3b3b3b3b3b3b3b3\\r\\n\r\n"] +[330.83951, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.83969, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913385 (current time 26.798969495)\r\n"] +[330.842369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.842521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.850417, "o", "4848208281\\r\\n\r\n"] +[330.850767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.851291, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670486 (current time 26.7987903475)\r\n"] +[330.854908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.854985, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.867117, "o", "9b93939393939393\\r\\n\r\n"] +[330.867601, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498078 (current time 26.7989627555)\r\n"] +[330.871523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.871683, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.871822, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.884308, "o", "66757a7a971000a8\\r\\n\r\n"] +[330.88473, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.884832, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496447 (current time 26.7989643865)\r\n"] +[330.888527, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.888602, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.897919, "o", "6685100069a8\\r\\n\r\n"] +[330.898353, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996125325 (current time 26.798848301)\r\n"] +[330.901247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.901588, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.913775, "o", "626364223e313031\\r\\n\r\n"] +[330.914342, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991465 (current time 26.798961687)\r\n"] +[330.91673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[330.916839, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[330.917197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.924841, "o", "ecececec\\r\\n\r\n"] +[330.925277, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997181965 (current time 26.798742637)\r\n"] +[330.928005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.928167, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.940229, "o", "8686866c17de8686\\r\\n\r\n"] +[330.94057, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495777 (current time 26.7989650565)\r\n"] +[330.943228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.943461, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.955908, "o", "e7e718e7e7e7e7e7\\r\\n\r\n"] +[330.956179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.956335, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911675 (current time 26.798969666)\r\n"] +[330.959171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.959487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.971336, "o", "66757a7f00300000\\r\\n\r\n"] +[330.971788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.972001, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980575 (current time 26.798962776)\r\n"] +[330.974934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.975045, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[330.986951, "o", "4848632c48484848\\r\\n\r\n"] +[330.987218, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[330.987467, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983345 (current time 26.798962499)\r\n"] +[330.990472, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[330.990598, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.003046, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[331.003477, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[331.006954, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.007175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.019941, "o", "ffe59ee7ae722e2e\\r\\n\r\n"] +[331.020363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994892515 (current time 26.798971582)\r\n"] +[331.02389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.024015, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.037601, "o", "a8a8a8a8a8a8a8a8\\r\\n\r\n"] +[331.03799, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905785 (current time 26.798970255)\r\n"] +[331.041303, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.041377, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.053922, "o", "66667a7a697a69b2\\r\\n\r\n"] +[331.05416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.054277, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949195 (current time 26.798965914)\r\n"] +[331.057464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.057655, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.062868, "o", "383a61\\r\\n\r\n"] +[331.063261, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783212 (current time 26.7986776215)\r\n"] +[331.065328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.065484, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.077216, "o", "2141414141c13366\\r\\n\r\n"] +[331.077717, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499255 (current time 26.7989615785)\r\n"] +[331.080412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.092273, "o", "66696e6730313233\\r\\n\r\n"] +[331.092553, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.09281, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498694 (current time 26.7989621395)\r\n"] +[331.095551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.0957, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.108792, "o", "00ff12ffffffffff\\r\\n\r\n"] +[331.109142, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.109375, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994858475 (current time 26.798974986)\r\n"] +[331.112262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.112364, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.125222, "o", "00ffa8cbf1fe0cdb\\r\\n\r\n"] +[331.12565, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994875535 (current time 26.79897328)\r\n"] +[331.128479, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.128517, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.128656, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.140724, "o", "6675303164003334\\r\\n\r\n"] +[331.141011, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.141197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500215 (current time 26.7989606185)\r\n"] +[331.144017, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.144123, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.154089, "o", "6666662000a9\\r\\n\r\n"] +[331.154401, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612577 (current time 26.7988482565)\r\n"] +[331.157472, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.157756, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.169607, "o", "3435353535353535\\r\\n\r\n"] +[331.169783, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.169944, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499985 (current time 26.7989608485)\r\n"] +[331.173204, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.173322, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.181061, "o", "e910000000\\r\\n\r\n"] +[331.181523, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670055 (current time 26.7987907785)\r\n"] +[331.184367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.184446, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.184651, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.197255, "o", "f1f1f1f1f1f1f1f1\\r\\n\r\n"] +[331.197646, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908905 (current time 26.798969943)\r\n"] +[331.200488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.200733, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.2009, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.213027, "o", "66757a7a6da80030\\r\\n\r\n"] +[331.213474, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954005 (current time 26.798965433)\r\n"] +[331.216038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.216165, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.228415, "o", "66757a7a6957a8a8\\r\\n\r\n"] +[331.228786, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.228809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494829 (current time 26.7989660045)\r\n"] +[331.23163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.231713, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.243436, "o", "3738396762303132\\r\\n\r\n"] +[331.243795, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.244016, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499917 (current time 26.7989609165)\r\n"] +[331.246586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.246693, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.258483, "o", "66757a7930313233\\r\\n\r\n"] +[331.258784, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498743 (current time 26.7989620905)\r\n"] +[331.261666, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.261815, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.273504, "o", "1313131313131313\\r\\n\r\n"] +[331.273817, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006985 (current time 26.798960135)\r\n"] +[331.276707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.289412, "o", "b500e2e2e2e2e2e2\\r\\n\r\n"] +[331.289637, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492251 (current time 26.7989685825)\r\n"] +[331.292449, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.292698, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.304531, "o", "9595959595959595\\r\\n\r\n"] +[331.304847, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988265 (current time 26.798962007)\r\n"] +[331.308012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.308165, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.320064, "o", "6566414141414141\\r\\n\r\n"] +[331.320299, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.320321, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500232 (current time 26.7989606015)\r\n"] +[331.323746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.323933, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.324019, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.336467, "o", "c7e430bfa5e936c9\\r\\n\r\n"] +[331.336855, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.336936, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917205 (current time 26.798969113)\r\n"] +[331.340315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.353015, "o", "f1a8f3eff1f1f1d0\\r\\n\r\n"] +[331.353397, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.353583, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489645 (current time 26.7989711885)\r\n"] +[331.356881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.357038, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.357146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.369007, "o", "4444444464444444\\r\\n\r\n"] +[331.369326, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.369495, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999585 (current time 26.798960875)\r\n"] +[331.373284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.373436, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.385953, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[331.386192, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.386453, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[331.390033, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.390088, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.402944, "o", "adadad7a0c0c0c0c\\r\\n\r\n"] +[331.403195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.403458, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994879745 (current time 26.798972859)\r\n"] +[331.406909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.4071, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.407206, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.419566, "o", "807a7a0b40a5e969\\r\\n\r\n"] +[331.419971, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.420161, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494193 (current time 26.7989666405)\r\n"] +[331.423667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.42387, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.436399, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[331.436795, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[331.440278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.440413, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.44045, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.452288, "o", "7254313911545454\\r\\n\r\n"] +[331.45255, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.453065, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999845 (current time 26.798960849)\r\n"] +[331.456543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.456643, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.456778, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.469365, "o", "f3f3f3e8f3f3f3b8\\r\\n\r\n"] +[331.469693, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.469809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904275 (current time 26.798970406)\r\n"] +[331.473158, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.473457, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.481834, "o", "0b0bfe0bdb\\r\\n\r\n"] +[331.482408, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996629425 (current time 26.798797891)\r\n"] +[331.48625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.486435, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.497712, "o", "8da80064a87a7a\\r\\n\r\n"] +[331.498054, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995510905 (current time 26.798909743)\r\n"] +[331.501163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.501376, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.513631, "o", "66757a7a69a858a8\\r\\n\r\n"] +[331.514026, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494815 (current time 26.7989660185)\r\n"] +[331.516699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.529443, "o", "a8a8a8bea8a8a8a8\\r\\n\r\n"] +[331.529897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489472 (current time 26.7989713615)\r\n"] +[331.532294, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.532472, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.544979, "o", "66757a7a69a8a9a8\\r\\n\r\n"] +[331.545388, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493726 (current time 26.7989671075)\r\n"] +[331.548117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.548245, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.560947, "o", "6e67dfbaba45baba\\r\\n\r\n"] +[331.561353, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994875055 (current time 26.798973328)\r\n"] +[331.563881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.56409, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.576673, "o", "5d65e2e2e2e2e2e2\\r\\n\r\n"] +[331.57703, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919315 (current time 26.798968902)\r\n"] +[331.579817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.579941, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.592438, "o", "66757a7a6935a8a8\\r\\n\r\n"] +[331.592985, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949275 (current time 26.798965906)\r\n"] +[331.595868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.596067, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.608703, "o", "fe0cdba8c2a8cbf1\\r\\n\r\n"] +[331.609138, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994874965 (current time 26.798973337)\r\n"] +[331.61211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.612243, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.624602, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[331.62511, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[331.627915, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.628031, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.640153, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[331.64053, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[331.643403, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.643619, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.655915, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[331.656266, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.656457, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[331.659119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.659283, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.671722, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[331.672131, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.672409, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[331.675234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.675395, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.703482, "o", "d80b40a5e9\\r\\n\r\n"] +[331.70451, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[331.708356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.708411, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[331.708532, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.716589, "o", "d81240a5e9\\r\\n\r\n"] +[331.717134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667151 (current time 26.7987936825)\r\n"] +[331.721324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.721504, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.72983, "o", "d81340a5e9\\r\\n\r\n"] +[331.730253, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671275 (current time 26.798793706)\r\n"] +[331.732819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.732901, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.745181, "o", "e985ff7f85858546\\r\\n\r\n"] +[331.745588, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494488 (current time 26.7989663455)\r\n"] +[331.748286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.760785, "o", "f80b40a5e940a5e9\\r\\n\r\n"] +[331.761228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930705 (current time 26.798967763)\r\n"] +[331.763848, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.770757, "o", "0b40a5ea\\r\\n\r\n"] +[331.771191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723179 (current time 26.7987376545)\r\n"] +[331.773987, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.786117, "o", "646566413a3a5e41\\r\\n\r\n"] +[331.786598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965805 (current time 26.798964253)\r\n"] +[331.790016, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[331.79014, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.795532, "o", "d80b1d\\r\\n\r\n"] +[331.795908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780996 (current time 26.7986798375)\r\n"] +[331.79802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.809799, "o", "69406940e9302669\\r\\n\r\n"] +[331.810236, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985095 (current time 26.798962324)\r\n"] +[331.812961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.824706, "o", "696e672134343443\\r\\n\r\n"] +[331.825215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986745 (current time 26.798962159)\r\n"] +[331.828025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.836559, "o", "fd6f919d6f\\r\\n\r\n"] +[331.837001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664409 (current time 26.7987964245)\r\n"] +[331.840029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.846473, "o", "18301033\\r\\n\r\n"] +[331.846847, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727765 (current time 26.7987330685)\r\n"] +[331.849116, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.849274, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.861716, "o", "e0e0e0e0e0e0e0e0\\r\\n\r\n"] +[331.862117, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913465 (current time 26.798969487)\r\n"] +[331.864727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.864868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.876622, "o", "6060606060609595\\r\\n\r\n"] +[331.87691, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[331.877169, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000145 (current time 26.798960819)\r\n"] +[331.879822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.879847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.892397, "o", "000140a57a7a69fe\\r\\n\r\n"] +[331.892901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494469 (current time 26.7989663645)\r\n"] +[331.895686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.898178, "o", "d8\\r\\n\r\n"] +[331.898637, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968175 (current time 26.798564016)\r\n"] +[331.901121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.90125, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.91303, "o", "2466616161616161\\r\\n\r\n"] +[331.913591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000625 (current time 26.798960771)\r\n"] +[331.915971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.91621, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.928635, "o", "a59e7474e7744000\\r\\n\r\n"] +[331.928948, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496394 (current time 26.7989644395)\r\n"] +[331.931577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.931878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.944226, "o", "f2f2f3f200f330ff\\r\\n\r\n"] +[331.944609, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492057 (current time 26.7989687765)\r\n"] +[331.947433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.959708, "o", "a2a280d800000000\\r\\n\r\n"] +[331.96028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497472 (current time 26.7989633615)\r\n"] +[331.962735, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.963001, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[331.974693, "o", "6d30313233343536\\r\\n\r\n"] +[331.97502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991045 (current time 26.798961729)\r\n"] +[331.977981, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[331.978149, "o", "[tsffs info] Resuming simulation\r\n"] +[331.990408, "o", "d80b40a5e9d80b40\\r\\n\r\n"] +[331.990879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932895 (current time 26.798967544)\r\n"] +[331.993556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[331.993874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.006192, "o", "99999999999999c3\\r\\n\r\n"] +[332.006559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.00676, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971965 (current time 26.798963637)\r\n"] +[332.009373, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.009524, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.021505, "o", "32333435e940a527\\r\\n\r\n"] +[332.021899, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497776 (current time 26.7989630575)\r\n"] +[332.024872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.02512, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.035835, "o", "c8379937dc3737\\r\\n\r\n"] +[332.036346, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.036703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995528825 (current time 26.798907951)\r\n"] +[332.040197, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.040503, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.052496, "o", "4141414141413c00\\r\\n\r\n"] +[332.052856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.053081, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994835 (current time 26.79896135)\r\n"] +[332.056522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.056646, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.068445, "o", "3300332172333432\\r\\n\r\n"] +[332.068923, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.069141, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004875 (current time 26.798960346)\r\n"] +[332.072486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.072765, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.085152, "o", "e5adc8c8c8c83031\\r\\n\r\n"] +[332.085581, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.085784, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491852 (current time 26.7989689815)\r\n"] +[332.089486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.08955, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[332.089694, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.098051, "o", "d82bb8a5e9\\r\\n\r\n"] +[332.098505, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996646865 (current time 26.798796147)\r\n"] +[332.10144, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.101519, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.113915, "o", "6d6d6d6d816d7070\\r\\n\r\n"] +[332.114303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940215 (current time 26.798966812)\r\n"] +[332.117032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.117213, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.129797, "o", "3b3b3031c3c3c3c3\\r\\n\r\n"] +[332.130191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493581 (current time 26.7989672525)\r\n"] +[332.132685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.132816, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.145905, "o", "eaeaeaeaeaeaea4d\\r\\n\r\n"] +[332.146216, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.146428, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999482982 (current time 26.7989778515)\r\n"] +[332.1488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.148921, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.158102, "o", "412000400040\\r\\n\r\n"] +[332.158441, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999614536 (current time 26.7988462975)\r\n"] +[332.161251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.161368, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.16821, "o", "ec4085e9\\r\\n\r\n"] +[332.168515, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.168698, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999723827 (current time 26.7987370065)\r\n"] +[332.172138, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.172248, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.184927, "o", "d80b0b0b0b0b0b0b\\r\\n\r\n"] +[332.185213, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.18549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491724 (current time 26.7989691095)\r\n"] +[332.189189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.189277, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[332.189296, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.201383, "o", "37383961313233b7\\r\\n\r\n"] +[332.201547, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.201749, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498805 (current time 26.7989620285)\r\n"] +[332.205482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.205633, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[332.205846, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.218068, "o", "d80b403f51404040\\r\\n\r\n"] +[332.218404, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[332.218613, "o", "[tsffs info] Cancelling event with next time 2.9994970055 (current time 26.798963828)\r\n"] +[332.222359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.222599, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.234658, "o", "757a7a4141404169\\r\\n\r\n"] +[332.235081, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977005 (current time 26.798963133)\r\n"] +[332.238905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.238975, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.251767, "o", "0b0bff7fffff5127\\r\\n\r\n"] +[332.252255, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994894845 (current time 26.798971349)\r\n"] +[332.25621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.256335, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.26887, "o", "ff05ffec05414141\\r\\n\r\n"] +[332.269221, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.269417, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493209 (current time 26.7989676245)\r\n"] +[332.273189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.273307, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.286425, "o", "00eb0080a540a51e\\r\\n\r\n"] +[332.286649, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.286928, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948795 (current time 26.798965954)\r\n"] +[332.290423, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.290538, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.298746, "o", "7fff405a30\\r\\n\r\n"] +[332.299197, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660115 (current time 26.798794822)\r\n"] +[332.302769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.302828, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.308544, "o", "400b40\\r\\n\r\n"] +[332.308815, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783523 (current time 26.7986773105)\r\n"] +[332.311623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.311708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.320211, "o", "0c40a5e9e9\\r\\n\r\n"] +[332.320542, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.320737, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999665945 (current time 26.7987948885)\r\n"] +[332.323722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.332312, "o", "d80b24d8e9\\r\\n\r\n"] +[332.332706, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966585 (current time 26.7987949835)\r\n"] +[332.336191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.348205, "o", "0030713234303132\\r\\n\r\n"] +[332.348481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006655 (current time 26.798960168)\r\n"] +[332.351908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.363766, "o", "3200000020373839\\r\\n\r\n"] +[332.364097, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500575 (current time 26.7989602585)\r\n"] +[332.366511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.366658, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.37857, "o", "40404040404040d8\\r\\n\r\n"] +[332.37878, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.379007, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499452 (current time 26.7989613815)\r\n"] +[332.381335, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.381467, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.393502, "o", "ff41003b41000010\\r\\n\r\n"] +[332.393767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.393938, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973995 (current time 26.798963434)\r\n"] +[332.396427, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.396588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.408405, "o", "61646120658f4161\\r\\n\r\n"] +[332.408676, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498849 (current time 26.7989619845)\r\n"] +[332.411509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.411616, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.423224, "o", "0000000000000000\\r\\n\r\n"] +[332.423587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[332.426256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.426389, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.438171, "o", "3532272701300101\\r\\n\r\n"] +[332.438615, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006095 (current time 26.798960224)\r\n"] +[332.441741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.449587, "o", "00000010e9\\r\\n\r\n"] +[332.449915, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670055 (current time 26.7987907785)\r\n"] +[332.454464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.45462, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.466479, "o", "1818171880800092\\r\\n\r\n"] +[332.466821, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000495 (current time 26.798960784)\r\n"] +[332.471149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.471222, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.484155, "o", "e8fdfdfde9fd6e98\\r\\n\r\n"] +[332.484595, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994865595 (current time 26.798974274)\r\n"] +[332.488575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.488639, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.501571, "o", "d80b40a40b40a534\\r\\n\r\n"] +[332.501997, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994947695 (current time 26.798966064)\r\n"] +[332.50579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.505864, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.518556, "o", "a5a5a5a5a5a5a5a5\\r\\n\r\n"] +[332.518804, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911025 (current time 26.798969731)\r\n"] +[332.522625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.522807, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.536005, "o", "ce4132cfcece4ece\\r\\n\r\n"] +[332.536398, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.536613, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487344 (current time 26.7989734895)\r\n"] +[332.540179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.54035, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.545794, "o", "40a5e9\\r\\n\r\n"] +[332.546109, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.546322, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782015 (current time 26.7986788185)\r\n"] +[332.54835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.548521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.560558, "o", "fe307f3233343536\\r\\n\r\n"] +[332.560924, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496548 (current time 26.7989642855)\r\n"] +[332.563486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.570342, "o", "0b40a501\\r\\n\r\n"] +[332.570818, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725611 (current time 26.7987352225)\r\n"] +[332.573767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.581649, "o", "ff0400004f\\r\\n\r\n"] +[332.581954, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996674775 (current time 26.798793356)\r\n"] +[332.585175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.596911, "o", "6364656641414141\\r\\n\r\n"] +[332.597311, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[332.599724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.611982, "o", "fe781b0340200096\\r\\n\r\n"] +[332.612242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968 (current time 26.7989640335)\r\n"] +[332.61486, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.623094, "o", "400b40fba5\\r\\n\r\n"] +[332.623473, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996663705 (current time 26.798794463)\r\n"] +[332.625977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.629884, "o", "d842\\r\\n\r\n"] +[332.630284, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998399965 (current time 26.798620837)\r\n"] +[332.632112, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.644245, "o", "ff00da3031323334\\r\\n\r\n"] +[332.644528, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958855 (current time 26.798964948)\r\n"] +[332.646923, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.65879, "o", "48f9303132333435\\r\\n\r\n"] +[332.659093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989135 (current time 26.79896192)\r\n"] +[332.662829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.663096, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.671236, "o", "d80c40ade9\\r\\n\r\n"] +[332.671711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996648775 (current time 26.798795956)\r\n"] +[332.675097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.681776, "o", "289b40a5\\r\\n\r\n"] +[332.682126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725179 (current time 26.7987356545)\r\n"] +[332.684919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.684967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.697405, "o", "de0001f07a7a696e\\r\\n\r\n"] +[332.697703, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.697809, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493201 (current time 26.7989676325)\r\n"] +[332.700378, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.712646, "o", "3730313233343536\\r\\n\r\n"] +[332.713033, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[332.715457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.715556, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.721132, "o", "7a7a40\\r\\n\r\n"] +[332.72142, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782101 (current time 26.7986787325)\r\n"] +[332.724404, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.733893, "o", "7a6900ff4201\\r\\n\r\n"] +[332.734174, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.734364, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996103975 (current time 26.798850436)\r\n"] +[332.738299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.738421, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.747862, "o", "d80b19313233\\r\\n\r\n"] +[332.748143, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611624 (current time 26.7988492095)\r\n"] +[332.751092, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.764016, "o", "dedede383838dede\\r\\n\r\n"] +[332.764338, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488127 (current time 26.7989727065)\r\n"] +[332.767073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.775659, "o", "d80bffa530\\r\\n\r\n"] +[332.776135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664947 (current time 26.7987958865)\r\n"] +[332.7789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.784307, "o", "40a556\\r\\n\r\n"] +[332.784782, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832425 (current time 26.798677591)\r\n"] +[332.788367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.788483, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.798399, "o", "8a75a8a8caa8\\r\\n\r\n"] +[332.798739, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606695 (current time 26.7988541385)\r\n"] +[332.802308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.802473, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.815302, "o", "d80b28a5a5a5a5a5\\r\\n\r\n"] +[332.815724, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492144 (current time 26.7989686895)\r\n"] +[332.819536, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.819606, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[332.819717, "o", "[tsffs info] Resuming simulation\r\n"] +[332.832391, "o", "ca36647fff55ce66\\r\\n\r\n"] +[332.832822, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491547 (current time 26.7989692865)\r\n"] +[332.836933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.837006, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.848642, "o", "a4405d5d5d5d7f\\r\\n\r\n"] +[332.848972, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999549886 (current time 26.7989109475)\r\n"] +[332.852798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.85297, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.86526, "o", "a5a5a13031323334\\r\\n\r\n"] +[332.865666, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970915 (current time 26.798963742)\r\n"] +[332.86932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.869415, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.878219, "o", "d87fffa5e9\\r\\n\r\n"] +[332.87866, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663248 (current time 26.7987975855)\r\n"] +[332.881147, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.881259, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.893977, "o", "a8c962c2ebfedbdb\\r\\n\r\n"] +[332.894367, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994872905 (current time 26.798973543)\r\n"] +[332.897136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.90978, "o", "d80b4040a5d8d8d8\\r\\n\r\n"] +[332.910061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493109 (current time 26.7989677245)\r\n"] +[332.912783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.923706, "o", "4003030080ffff\\r\\n\r\n"] +[332.923901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995525895 (current time 26.798908244)\r\n"] +[332.926839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.926922, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.937634, "o", "00dc0182686f00\\r\\n\r\n"] +[332.937936, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995537 (current time 26.7989071335)\r\n"] +[332.941061, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[332.941159, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.949192, "o", "d80b40a569\\r\\n\r\n"] +[332.949615, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[332.949892, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996671685 (current time 26.798793665)\r\n"] +[332.953131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[332.953351, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.961571, "o", "d80b444040\\r\\n\r\n"] +[332.962157, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999668549 (current time 26.7987922845)\r\n"] +[332.964673, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.976765, "o", "d80b406675333333\\r\\n\r\n"] +[332.977035, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497778 (current time 26.7989630555)\r\n"] +[332.979622, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[332.991601, "o", "9741415f66662424\\r\\n\r\n"] +[332.991774, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986035 (current time 26.79896223)\r\n"] +[332.994585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.006318, "o", "0066666430313233\\r\\n\r\n"] +[333.006763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002745 (current time 26.798960559)\r\n"] +[333.009377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.022871, "o", "d803d2f3a8cbf207\\r\\n\r\n"] +[333.023141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[333.023256, "o", "[tsffs info] Cancelling event with next time 2.9994920285 (current time 26.798968805)\r\n"] +[333.025923, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.026012, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.038016, "o", "6665626364656641\\r\\n\r\n"] +[333.038203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[333.038365, "o", "[tsffs info] Cancelling event with next time 2.9994996485 (current time 26.798961185)\r\n"] +[333.041445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.054367, "o", "1c1c1cf4f4f4ffff\\r\\n\r\n"] +[333.054628, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.054737, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883565 (current time 26.798972477)\r\n"] +[333.057898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.069768, "o", "2843434343434343\\r\\n\r\n"] +[333.070105, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500102 (current time 26.7989607315)\r\n"] +[333.073513, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.073633, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.085928, "o", "6466867ac5c5c5c5\\r\\n\r\n"] +[333.08623, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493906 (current time 26.7989669275)\r\n"] +[333.089895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.090004, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.102428, "o", "8f8f8f8f30316465\\r\\n\r\n"] +[333.102751, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.102942, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948995 (current time 26.798965934)\r\n"] +[333.10645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.106637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.114732, "o", "270b40a5e9\\r\\n\r\n"] +[333.115134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996672455 (current time 26.798793588)\r\n"] +[333.11781, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.129674, "o", "0101010101013d01\\r\\n\r\n"] +[333.129937, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000265 (current time 26.798960807)\r\n"] +[333.132405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.144215, "o", "3031323053323334\\r\\n\r\n"] +[333.144479, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005155 (current time 26.798960318)\r\n"] +[333.147158, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.160385, "o", "6e6e6e6e6e6e6e6e\\r\\n\r\n"] +[333.160643, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994901745 (current time 26.798970659)\r\n"] +[333.163297, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.175338, "o", "d80b362033346436\\r\\n\r\n"] +[333.175669, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497858 (current time 26.7989629755)\r\n"] +[333.179538, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.179623, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.186837, "o", "ff7fa57f\\r\\n\r\n"] +[333.187122, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.187307, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997213755 (current time 26.798739458)\r\n"] +[333.191056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.191206, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.203487, "o", "51e9244051e9eb14\\r\\n\r\n"] +[333.203845, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.204001, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495405 (current time 26.7989654285)\r\n"] +[333.207775, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.207921, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.220314, "o", "63cbf107c962c207\\r\\n\r\n"] +[333.22063, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.22083, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494286 (current time 26.7989665475)\r\n"] +[333.224593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.224673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.237302, "o", "cfcfcf9c869c9c9c\\r\\n\r\n"] +[333.23763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994878105 (current time 26.798973023)\r\n"] +[333.241326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.241486, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.244049, "o", "34\\r\\n\r\n"] +[333.244421, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898082 (current time 26.7985627515)\r\n"] +[333.247241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.247394, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.259401, "o", "0bd8f4c364000000\\r\\n\r\n"] +[333.259772, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.259885, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959785 (current time 26.798964855)\r\n"] +[333.26331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.263522, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.276157, "o", "d80b0b0bf50b0a1a\\r\\n\r\n"] +[333.276443, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915 (current time 26.7989693335)\r\n"] +[333.279922, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.279943, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[333.280311, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.292007, "o", "6641414141414141\\r\\n\r\n"] +[333.292105, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.292341, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500369 (current time 26.7989604645)\r\n"] +[333.295009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.306859, "o", "d81b403031323334\\r\\n\r\n"] +[333.307192, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981545 (current time 26.798962679)\r\n"] +[333.310044, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.318733, "o", "d805fffbfb\\r\\n\r\n"] +[333.319242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996623995 (current time 26.798798434)\r\n"] +[333.322762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.331122, "o", "d7f548a5d0\\r\\n\r\n"] +[333.331651, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999665881 (current time 26.7987949525)\r\n"] +[333.334356, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.341492, "o", "5be93fd2\\r\\n\r\n"] +[333.341695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722741 (current time 26.7987380925)\r\n"] +[333.344399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.356159, "o", "30313234857a6968\\r\\n\r\n"] +[333.356369, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498705 (current time 26.7989621285)\r\n"] +[333.359172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.371548, "o", "e400000000e5f0f0\\r\\n\r\n"] +[333.371827, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496192 (current time 26.7989646415)\r\n"] +[333.374934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.380353, "o", "40a5ea\\r\\n\r\n"] +[333.380692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997810495 (current time 26.798679784)\r\n"] +[333.382595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.394264, "o", "0030313233343536\\r\\n\r\n"] +[333.394589, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[333.397132, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.405481, "o", "d80b40a50b\\r\\n\r\n"] +[333.405598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666332 (current time 26.7987945015)\r\n"] +[333.408662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.421255, "o", "630b40a5e9a8a863\\r\\n\r\n"] +[333.421662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942725 (current time 26.798966561)\r\n"] +[333.424736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.424878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.437488, "o", "e9e9e96641ffffff\\r\\n\r\n"] +[333.437727, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994888375 (current time 26.798971996)\r\n"] +[333.441694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.441823, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.450513, "o", "80fffaffe9\\r\\n\r\n"] +[333.450995, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999662192 (current time 26.7987986415)\r\n"] +[333.454635, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.454747, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.467131, "o", "87c78787866f9167\\r\\n\r\n"] +[333.467549, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.467653, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967075 (current time 26.798964126)\r\n"] +[333.471641, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.471717, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[333.471894, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.477388, "o", "40a5d2\\r\\n\r\n"] +[333.477762, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782209 (current time 26.7986786245)\r\n"] +[333.480066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.480188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.485607, "o", "d8a5c9\\r\\n\r\n"] +[333.485997, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.486173, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780717 (current time 26.7986801165)\r\n"] +[333.489389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[333.489486, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.502115, "o", "1760a8a8cbf1fe0c\\r\\n\r\n"] +[333.502591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908835 (current time 26.79896995)\r\n"] +[333.506242, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.506359, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.518553, "o", "9bd6303132333435\\r\\n\r\n"] +[333.518921, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497907 (current time 26.7989629265)\r\n"] +[333.522469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.522617, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.535149, "o", "8548486a3a6a4748\\r\\n\r\n"] +[333.535553, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.535665, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496199 (current time 26.7989646345)\r\n"] +[333.539159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.539235, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.551926, "o", "4c4c4c696e6c17de\\r\\n\r\n"] +[333.552242, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.552496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994916695 (current time 26.798969164)\r\n"] +[333.556279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.556477, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[333.556635, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.568728, "o", "5b7a696e67213914\\r\\n\r\n"] +[333.569121, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.569148, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496263 (current time 26.7989645705)\r\n"] +[333.573704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.573866, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.586397, "o", "4040b8b8b8b8b8b8\\r\\n\r\n"] +[333.586728, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[333.58682, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930275 (current time 26.798967806)\r\n"] +[333.590952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.591053, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.60292, "o", "0808080808082608\\r\\n\r\n"] +[333.603191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500048 (current time 26.7989607855)\r\n"] +[333.606647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.606742, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.618727, "o", "d80b303132333435\\r\\n\r\n"] +[333.619149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980825 (current time 26.798962751)\r\n"] +[333.622552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.622638, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.63105, "o", "d8a5a5a8a5\\r\\n\r\n"] +[333.631457, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966484 (current time 26.7987959935)\r\n"] +[333.633918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.646676, "o", "d8d8d7d8d8d8d8cc\\r\\n\r\n"] +[333.647128, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994890395 (current time 26.798971794)\r\n"] +[333.649526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.655424, "o", "3434a8\\r\\n\r\n"] +[333.655854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783194 (current time 26.7986776395)\r\n"] +[333.658563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.671245, "o", "d80b40ff7f7a7a7a\\r\\n\r\n"] +[333.671686, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906675 (current time 26.798970166)\r\n"] +[333.674706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.677254, "o", "04\\r\\n\r\n"] +[333.677654, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99989816 (current time 26.7985626735)\r\n"] +[333.679602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.691985, "o", "dc6962c2f9b2d0db\\r\\n\r\n"] +[333.692495, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907565 (current time 26.798970077)\r\n"] +[333.695036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.703419, "o", "d80b52a5e9\\r\\n\r\n"] +[333.703804, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659545 (current time 26.798794879)\r\n"] +[333.707063, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.707157, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.717318, "o", "d8ffffff7fe9\\r\\n\r\n"] +[333.717596, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999602674 (current time 26.7988581595)\r\n"] +[333.721523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.721619, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.734089, "o", "04ff8f0ca6a63131\\r\\n\r\n"] +[333.734513, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932625 (current time 26.798967571)\r\n"] +[333.738408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.738492, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.750872, "o", "64646464d830ff7f\\r\\n\r\n"] +[333.75135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494995 (current time 26.7989658385)\r\n"] +[333.755214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.755283, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.76785, "o", "b9b9b9b9b9b9b930\\r\\n\r\n"] +[333.768229, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915505 (current time 26.798969283)\r\n"] +[333.771991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.772133, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.77649, "o", "dddf\\r\\n\r\n"] +[333.776851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999836535 (current time 26.7986242985)\r\n"] +[333.77917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.791337, "o", "4141414141416675\\r\\n\r\n"] +[333.791775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500202 (current time 26.7989606315)\r\n"] +[333.794446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.807153, "o", "f7f7f71f1f1f1f1f\\r\\n\r\n"] +[333.807552, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904585 (current time 26.798970375)\r\n"] +[333.81022, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.814138, "o", "6666\\r\\n\r\n"] +[333.814544, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841001 (current time 26.7986198325)\r\n"] +[333.816453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.828171, "o", "3031323334353637\\r\\n\r\n"] +[333.828519, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[333.830996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.843089, "o", "304f000030626364\\r\\n\r\n"] +[333.843372, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993535 (current time 26.79896148)\r\n"] +[333.846135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.858013, "o", "3031313441416465\\r\\n\r\n"] +[333.858344, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003285 (current time 26.798960505)\r\n"] +[333.861926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.862037, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[333.862225, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.874553, "o", "a0631bc87a7a69b4\\r\\n\r\n"] +[333.874919, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931225 (current time 26.798967711)\r\n"] +[333.878751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.878867, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.888214, "o", "4040a5323334\\r\\n\r\n"] +[333.888692, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[333.888792, "o", "[tsffs info] Cancelling event with next time 2.9996129465 (current time 26.798847887)\r\n"] +[333.891786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.904976, "o", "dbdbdbdbdbdbdbdb\\r\\n\r\n"] +[333.905208, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994819585 (current time 26.798978875)\r\n"] +[333.908347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.908431, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.917622, "o", "708130313232\\r\\n\r\n"] +[333.918091, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996140655 (current time 26.798846768)\r\n"] +[333.921716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.921792, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.936152, "o", "a50b40f4ae327bda\\r\\n\r\n"] +[333.936571, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911575 (current time 26.798969676)\r\n"] +[333.940094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.940182, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.95278, "o", "d80be9e940a5e9\\r\\n\r\n"] +[333.953186, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995497015 (current time 26.798911132)\r\n"] +[333.956879, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[333.957052, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.961466, "o", "7f00\\r\\n\r\n"] +[333.961828, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984011 (current time 26.7986207235)\r\n"] +[333.963941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.977215, "o", "61f0daf0f0d5d780\\r\\n\r\n"] +[333.977491, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492063 (current time 26.7989687705)\r\n"] +[333.980197, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[333.992709, "o", "0029635666ff5e8b\\r\\n\r\n"] +[333.992955, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495114 (current time 26.7989657195)\r\n"] +[333.995771, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.004463, "o", "b4722133eb\\r\\n\r\n"] +[334.004855, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996673295 (current time 26.798793504)\r\n"] +[334.007861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.020341, "o", "d80bda3031323334\\r\\n\r\n"] +[334.020762, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949585 (current time 26.7989649835)\r\n"] +[334.023697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.035734, "o", "0b40a54040404040\\r\\n\r\n"] +[334.036095, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498479 (current time 26.7989623545)\r\n"] +[334.039686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.039787, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.052427, "o", "d80bd805f0f0f0f0\\r\\n\r\n"] +[334.052943, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492157 (current time 26.7989686765)\r\n"] +[334.056579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.056711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.068933, "o", "66666666666600ff\\r\\n\r\n"] +[334.069269, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497213 (current time 26.7989636205)\r\n"] +[334.072919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.084961, "o", "a851690000800010\\r\\n\r\n"] +[334.08524, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994605 (current time 26.798961373)\r\n"] +[334.088987, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.101088, "o", "6364656641414141\\r\\n\r\n"] +[334.101392, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[334.105414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.117611, "o", "ff20010000000009\\r\\n\r\n"] +[334.118123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498668 (current time 26.7989621655)\r\n"] +[334.122191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.122224, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.130453, "o", "d80c40a5a8\\r\\n\r\n"] +[334.130803, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996661265 (current time 26.798794707)\r\n"] +[334.13322, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.145608, "o", "4108a8b24108f3a8\\r\\n\r\n"] +[334.145909, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955495 (current time 26.798965284)\r\n"] +[334.148475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.148632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.160759, "o", "35ec353031323334\\r\\n\r\n"] +[334.161043, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980085 (current time 26.798962825)\r\n"] +[334.163559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.163735, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.175454, "o", "0000000030313233\\r\\n\r\n"] +[334.175789, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995011055 (current time 26.798959728)\r\n"] +[334.178564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.1787, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.191178, "o", "4130313233343536\\r\\n\r\n"] +[334.191435, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.19157, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003705 (current time 26.798960463)\r\n"] +[334.194331, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.194424, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.194542, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.206909, "o", "00007fff04040404\\r\\n\r\n"] +[334.207283, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971 (current time 26.7989637335)\r\n"] +[334.210038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.210163, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.210287, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.221838, "o", "411040412f2ff2\\r\\n\r\n"] +[334.222117, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.222339, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999553782 (current time 26.7989070515)\r\n"] +[334.225196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.225316, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.236514, "o", "d800000000007f\\r\\n\r\n"] +[334.236803, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.236997, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999555329 (current time 26.7989055045)\r\n"] +[334.240103, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.240244, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.248401, "o", "6666666666\\r\\n\r\n"] +[334.248871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670118 (current time 26.7987907155)\r\n"] +[334.252206, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.252285, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.25721, "o", "d8e9\\r\\n\r\n"] +[334.257637, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.257792, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998386505 (current time 26.798622183)\r\n"] +[334.260169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.260415, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.263021, "o", "ff\\r\\n\r\n"] +[334.263536, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998956505 (current time 26.798565183)\r\n"] +[334.265326, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.265485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.277561, "o", "d830313233343536\\r\\n\r\n"] +[334.277936, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.278083, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990605 (current time 26.798961773)\r\n"] +[334.280458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.280745, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.29416, "o", "4e644ea8a8a8a8a8\\r\\n\r\n"] +[334.29455, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491704 (current time 26.7989691295)\r\n"] +[334.297101, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.297263, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.309576, "o", "0030313233343536\\r\\n\r\n"] +[334.309986, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.310122, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[334.312716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.312937, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.325232, "o", "d8c8313131313131\\r\\n\r\n"] +[334.325625, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.325827, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498053 (current time 26.7989627805)\r\n"] +[334.328688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.328867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.340707, "o", "640000001a1a1a11\\r\\n\r\n"] +[334.341093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949762 (current time 26.7989632135)\r\n"] +[334.344065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.344188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.356445, "o", "0010e5545e5b06ac\\r\\n\r\n"] +[334.356858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946235 (current time 26.79896621)\r\n"] +[334.359476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.371303, "o", "3031323334353637\\r\\n\r\n"] +[334.371704, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[334.374663, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.374839, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.382986, "o", "d80b40ffe9\\r\\n\r\n"] +[334.383407, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996647375 (current time 26.798796096)\r\n"] +[334.387546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.387627, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.387779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.400316, "o", "c380c3a87a6e6721\\r\\n\r\n"] +[334.400716, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494193 (current time 26.7989666405)\r\n"] +[334.404891, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.405037, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.417222, "o", "3031326675797a30\\r\\n\r\n"] +[334.417509, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.417874, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988315 (current time 26.798962002)\r\n"] +[334.421685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.421877, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.433875, "o", "cd33343536373839\\r\\n\r\n"] +[334.434155, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975165 (current time 26.798963317)\r\n"] +[334.438064, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.438197, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.438406, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.446572, "o", "e7017fa5e9\\r\\n\r\n"] +[334.446945, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996658085 (current time 26.798795025)\r\n"] +[334.449521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.449557, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.461931, "o", "010b212177010bf1\\r\\n\r\n"] +[334.462182, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.462196, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497249 (current time 26.7989635845)\r\n"] +[334.464822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.47725, "o", "cba91226ef006410\\r\\n\r\n"] +[334.477743, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945915 (current time 26.798966242)\r\n"] +[334.480353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.480443, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.492359, "o", "4000000100000bd8\\r\\n\r\n"] +[334.492778, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498808 (current time 26.7989620255)\r\n"] +[334.495772, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.495863, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.501686, "o", "e4ffff\\r\\n\r\n"] +[334.501877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.502255, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997783285 (current time 26.798682505)\r\n"] +[334.505479, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.50566, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.509815, "o", "a5e9\\r\\n\r\n"] +[334.510144, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998387815 (current time 26.798622052)\r\n"] +[334.512545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.52067, "o", "203839619d\\r\\n\r\n"] +[334.520938, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.52124, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999669317 (current time 26.7987915165)\r\n"] +[334.52445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.524761, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.537179, "o", "c0c0c0c0c0c0c0c0\\r\\n\r\n"] +[334.537603, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917025 (current time 26.798969131)\r\n"] +[334.540625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.540814, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.553116, "o", "6675757a896c6e6c\\r\\n\r\n"] +[334.553635, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494719 (current time 26.7989661145)\r\n"] +[334.557411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.557606, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.566684, "o", "003140396161\\r\\n\r\n"] +[334.566949, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999614054 (current time 26.7988467795)\r\n"] +[334.570934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.571287, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.583536, "o", "7ed80b40a5e94100\\r\\n\r\n"] +[334.583922, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.584141, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944445 (current time 26.798966389)\r\n"] +[334.587885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.588112, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.588279, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.600607, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[334.600955, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.601158, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[334.604796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.605031, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.605229, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.617731, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[334.618285, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.618489, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[334.621893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.62222, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.638692, "o", "015151\\r\\n\r\n"] +[334.639863, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.639905, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[334.644588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.64478, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.644924, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.650001, "o", "085151\\r\\n\r\n"] +[334.650365, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[334.654284, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.65439, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.659666, "o", "085151\\r\\n\r\n"] +[334.660012, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784417 (current time 26.7986764165)\r\n"] +[334.662471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.667659, "o", "015151\\r\\n\r\n"] +[334.667939, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[334.671348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.671533, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.67672, "o", "015151\\r\\n\r\n"] +[334.677014, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[334.67937, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.684568, "o", "015151\\r\\n\r\n"] +[334.684787, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[334.68831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.688421, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.69372, "o", "015151\\r\\n\r\n"] +[334.694006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[334.696198, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.69623, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.708773, "o", "2f1e2f2f2f2f2f2f\\r\\n\r\n"] +[334.709156, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490761 (current time 26.7989700725)\r\n"] +[334.711918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.724193, "o", "4141f0f0f0f87a20\\r\\n\r\n"] +[334.724631, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494498 (current time 26.7989663355)\r\n"] +[334.727264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.739152, "o", "500200d850505066\\r\\n\r\n"] +[334.739553, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499294 (current time 26.7989615395)\r\n"] +[334.742051, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.75459, "o", "b8b8b8b8b801b8b8\\r\\n\r\n"] +[334.755014, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491799 (current time 26.7989690345)\r\n"] +[334.757859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.757983, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.770586, "o", "fef6fef621d3d3d3\\r\\n\r\n"] +[334.771001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489442 (current time 26.7989713915)\r\n"] +[334.773877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.785599, "o", "6982670000519e52\\r\\n\r\n"] +[334.786252, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988125 (current time 26.798962021)\r\n"] +[334.789533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.789735, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.800915, "o", "d80004ebfe0c51\\r\\n\r\n"] +[334.801203, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999550253 (current time 26.7989105805)\r\n"] +[334.805124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.817357, "o", "6d30313231346336\\r\\n\r\n"] +[334.817677, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991285 (current time 26.798961705)\r\n"] +[334.82172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.821769, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.824341, "o", "01\\r\\n\r\n"] +[334.824791, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[334.827264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.82737, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.831175, "o", "3031\\r\\n\r\n"] +[334.831697, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[334.833561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.845747, "o", "d98282828282f9d8\\r\\n\r\n"] +[334.84626, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495923 (current time 26.7989649105)\r\n"] +[334.848783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.849, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.854088, "o", "518001\\r\\n\r\n"] +[334.854458, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.854652, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784542 (current time 26.7986762915)\r\n"] +[334.857383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.857701, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.86122, "o", "0151\\r\\n\r\n"] +[334.861559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.861821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[334.863766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.864015, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.869356, "o", "01a217\\r\\n\r\n"] +[334.869646, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.870027, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[334.870221, "o", "[tsffs info] Cancelling event with next time 2.9997834415 (current time 26.798677392)\r\n"] +[334.873106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.873301, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.885381, "o", "01b00ff08e51018e\\r\\n\r\n"] +[334.885992, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946095 (current time 26.798966224)\r\n"] +[334.889391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.889462, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[334.889668, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.895151, "o", "fb8e44\\r\\n\r\n"] +[334.895363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780749 (current time 26.7986800845)\r\n"] +[334.897445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.909635, "o", "0200b0e6de303132\\r\\n\r\n"] +[334.909911, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960485 (current time 26.798964785)\r\n"] +[334.912577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.912754, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.924413, "o", "4141414141414141\\r\\n\r\n"] +[334.924707, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[334.927353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.92765, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.939234, "o", "3062633637383961\\r\\n\r\n"] +[334.939632, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[334.939983, "o", "[tsffs info] Cancelling event with next time 2.999499855 (current time 26.7989609785)\r\n"] +[334.942662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.942745, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.954639, "o", "51000000007f7f7f\\r\\n\r\n"] +[334.955049, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[334.955228, "o", "[tsffs info] Cancelling event with next time 2.9994969835 (current time 26.79896385)\r\n"] +[334.95889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[334.959001, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.97203, "o", "cccccccccccccce4\\r\\n\r\n"] +[334.972466, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[334.972988, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994829145 (current time 26.798977919)\r\n"] +[334.977384, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[334.977508, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.981454, "o", "3031\\r\\n\r\n"] +[334.981793, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[334.984211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[334.995956, "o", "0041414141414141\\r\\n\r\n"] +[334.996273, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006655 (current time 26.798960168)\r\n"] +[334.998801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.011662, "o", "3019afafafafafaf\\r\\n\r\n"] +[335.012028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994863185 (current time 26.798974515)\r\n"] +[335.0148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.020598, "o", "9cafaf\\r\\n\r\n"] +[335.02096, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99977849 (current time 26.7986823435)\r\n"] +[335.023726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.023898, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.035917, "o", "0151515151ae5151\\r\\n\r\n"] +[335.03618, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981405 (current time 26.798962693)\r\n"] +[335.039757, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.039999, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.052427, "o", "781b03d2f303d2f3\\r\\n\r\n"] +[335.05277, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944505 (current time 26.798966383)\r\n"] +[335.05655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.05681, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.0621, "o", "1f5151\\r\\n\r\n"] +[335.062425, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783271 (current time 26.7986775625)\r\n"] +[335.064645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.067172, "o", "a8\\r\\n\r\n"] +[335.06761, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896883 (current time 26.7985639505)\r\n"] +[335.07126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.07162, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.084051, "o", "f1f1f1f1f1f1a5a5\\r\\n\r\n"] +[335.084414, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.084605, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994909435 (current time 26.79896989)\r\n"] +[335.088383, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.08842, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.095776, "o", "7fffffff\\r\\n\r\n"] +[335.09614, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.09651, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99971895 (current time 26.7987418835)\r\n"] +[335.09864, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.098728, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.104095, "o", "cb5130\\r\\n\r\n"] +[335.104439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[335.104762, "o", "[tsffs info] Cancelling event with next time 2.9997822495 (current time 26.798678584)\r\n"] +[335.107412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.107525, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.119487, "o", "00010000d3d3e866\\r\\n\r\n"] +[335.119722, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.120085, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949713 (current time 26.7989637035)\r\n"] +[335.123341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.123465, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.136746, "o", "b8a78c8c8c8c8c8c\\r\\n\r\n"] +[335.137059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.137353, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490275 (current time 26.7989705585)\r\n"] +[335.140367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.140559, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.144789, "o", "ab30\\r\\n\r\n"] +[335.145239, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839125 (current time 26.7986217085)\r\n"] +[335.147313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.147443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.152652, "o", "037575\\r\\n\r\n"] +[335.152996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.153237, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842415 (current time 26.798676592)\r\n"] +[335.156412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.156625, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.169938, "o", "01af2e2e2e2e2e2e\\r\\n\r\n"] +[335.170437, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491057 (current time 26.7989697765)\r\n"] +[335.173733, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.173763, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.173908, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.177792, "o", "d532\\r\\n\r\n"] +[335.178153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400825 (current time 26.798620751)\r\n"] +[335.180249, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.180471, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.192126, "o", "f388313233543536\\r\\n\r\n"] +[335.192611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987695 (current time 26.798962064)\r\n"] +[335.195584, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.195717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.207762, "o", "5f6666d899000003\\r\\n\r\n"] +[335.208043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.208256, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976095 (current time 26.798963224)\r\n"] +[335.21088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.222848, "o", "9768686870686866\\r\\n\r\n"] +[335.223173, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.223451, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499032 (current time 26.7989618015)\r\n"] +[335.225696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.225926, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.237517, "o", "4141414141200000\\r\\n\r\n"] +[335.237821, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.237852, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500873 (current time 26.7989599605)\r\n"] +[335.240936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.24108, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.250263, "o", "32320000ff01\\r\\n\r\n"] +[335.250612, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.250775, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612013 (current time 26.7988488205)\r\n"] +[335.254705, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.254827, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.255036, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.258969, "o", "1611\\r\\n\r\n"] +[335.259216, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.259426, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413465 (current time 26.798619487)\r\n"] +[335.261722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.261862, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.273786, "o", "2f32787878787878\\r\\n\r\n"] +[335.274057, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.274165, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978895 (current time 26.798962944)\r\n"] +[335.277247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.27733, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.289339, "o", "0130643031303132\\r\\n\r\n"] +[335.289739, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007175 (current time 26.798960116)\r\n"] +[335.292596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.292845, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.305928, "o", "5666fb3b8bcbcbe5\\r\\n\r\n"] +[335.306334, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[335.306635, "o", "[tsffs info] Cancelling event with next time 2.9994895585 (current time 26.798971275)\r\n"] +[335.309399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.309601, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.321741, "o", "515166757a7ae2e2\\r\\n\r\n"] +[335.32199, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.322365, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495282 (current time 26.7989655515)\r\n"] +[335.325247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.32545, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.337286, "o", "004100000000e1e1\\r\\n\r\n"] +[335.337478, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.337751, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988275 (current time 26.798962006)\r\n"] +[335.340734, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.340907, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.343576, "o", "ae\\r\\n\r\n"] +[335.344178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895794 (current time 26.7985650395)\r\n"] +[335.345948, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.346154, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.357658, "o", "0151713031323334\\r\\n\r\n"] +[335.357961, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[335.358094, "o", "[tsffs info] Cancelling event with next time 2.99950053 (current time 26.7989603035)\r\n"] +[335.360918, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.361135, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.372744, "o", "4141414141414141\\r\\n\r\n"] +[335.37298, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.37335, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[335.375876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.375991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.379786, "o", "9751\\r\\n\r\n"] +[335.38006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841037 (current time 26.7986197965)\r\n"] +[335.382069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.382232, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.394212, "o", "218778787a7a4e80\\r\\n\r\n"] +[335.394602, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496103 (current time 26.7989647305)\r\n"] +[335.39725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.409062, "o", "30302d3000806263\\r\\n\r\n"] +[335.409541, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994275 (current time 26.798961406)\r\n"] +[335.412374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.41252, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.424341, "o", "e450515151515150\\r\\n\r\n"] +[335.424636, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.424769, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499167 (current time 26.7989616665)\r\n"] +[335.427605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.427798, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.432886, "o", "020004\\r\\n\r\n"] +[335.433196, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847695 (current time 26.798676064)\r\n"] +[335.436893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.437076, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.449081, "o", "1440438e00797979\\r\\n\r\n"] +[335.449499, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985185 (current time 26.798962315)\r\n"] +[335.453317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.453422, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.453537, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.456153, "o", "00\\r\\n\r\n"] +[335.456544, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.456837, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998982585 (current time 26.798562575)\r\n"] +[335.459149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.471202, "o", "3abb203031323334\\r\\n\r\n"] +[335.471507, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.471752, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972065 (current time 26.798963627)\r\n"] +[335.474785, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.475037, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.479999, "o", "013030\\r\\n\r\n"] +[335.480408, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784734 (current time 26.7986760995)\r\n"] +[335.48234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.482676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.49195, "o", "057e5101827e\\r\\n\r\n"] +[335.49223, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.492629, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996114465 (current time 26.798849387)\r\n"] +[335.495163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.495394, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.507654, "o", "30313230ce323031\\r\\n\r\n"] +[335.507981, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.50825, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498348 (current time 26.7989624855)\r\n"] +[335.510862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.510941, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.52317, "o", "61626364657a4141\\r\\n\r\n"] +[335.523482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.523741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498838 (current time 26.7989619955)\r\n"] +[335.526159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.526447, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.531808, "o", "018a4e\\r\\n\r\n"] +[335.532376, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821365 (current time 26.798678697)\r\n"] +[335.534787, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.534897, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.546947, "o", "fff31010101033c2\\r\\n\r\n"] +[335.547369, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496017 (current time 26.7989648165)\r\n"] +[335.549838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.55565, "o", "afaf00\\r\\n\r\n"] +[335.555972, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.556289, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997799445 (current time 26.798680889)\r\n"] +[335.559019, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.559305, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.571613, "o", "06a8a8a8a8a8a8a8\\r\\n\r\n"] +[335.572057, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.572312, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918075 (current time 26.798969026)\r\n"] +[335.575167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.579186, "o", "ac52\\r\\n\r\n"] +[335.57958, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.579773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838991 (current time 26.7986218425)\r\n"] +[335.5816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.581717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.59333, "o", "0151015151015151\\r\\n\r\n"] +[335.593678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006975 (current time 26.798960136)\r\n"] +[335.596533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.596814, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.600874, "o", "ff51\\r\\n\r\n"] +[335.60117, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.601197, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838825 (current time 26.7986220085)\r\n"] +[335.605011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.605193, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.617585, "o", "106b6b736b6b6b94\\r\\n\r\n"] +[335.617907, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.618162, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942325 (current time 26.798966601)\r\n"] +[335.621756, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.621956, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.622048, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.633945, "o", "3531323031323334\\r\\n\r\n"] +[335.634365, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.634566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500483 (current time 26.7989603505)\r\n"] +[335.63819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.638272, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.638529, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.650318, "o", "f044216465f04421\\r\\n\r\n"] +[335.650707, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949789 (current time 26.7989629435)\r\n"] +[335.654668, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.654792, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.654974, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.658777, "o", "6406\\r\\n\r\n"] +[335.659071, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.65951, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841199 (current time 26.7986196345)\r\n"] +[335.66194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.662056, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.665631, "o", "0000\\r\\n\r\n"] +[335.665992, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[335.668786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.672718, "o", "8080\\r\\n\r\n"] +[335.673134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412095 (current time 26.798619624)\r\n"] +[335.675812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.676193, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.684036, "o", "a2a2878787\\r\\n\r\n"] +[335.684773, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996680065 (current time 26.798792827)\r\n"] +[335.688476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.688606, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.692679, "o", "3e01\\r\\n\r\n"] +[335.69303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402005 (current time 26.798620633)\r\n"] +[335.695513, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.70736, "o", "28d7664141667564\\r\\n\r\n"] +[335.707687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498516 (current time 26.7989623175)\r\n"] +[335.710488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.710713, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.722365, "o", "3031323334353637\\r\\n\r\n"] +[335.722808, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[335.725424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.725605, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.738244, "o", "626400669b9b9b9b\\r\\n\r\n"] +[335.738672, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951555 (current time 26.798965678)\r\n"] +[335.742009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.742117, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.746211, "o", "a0d4\\r\\n\r\n"] +[335.746614, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998390565 (current time 26.798621777)\r\n"] +[335.74872, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.748847, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.761704, "o", "bfbfbfbfbfbfbf10\\r\\n\r\n"] +[335.762142, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.762332, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994840045 (current time 26.798976829)\r\n"] +[335.764858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.765029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.776814, "o", "41f5f54141414141\\r\\n\r\n"] +[335.777346, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979385 (current time 26.798962895)\r\n"] +[335.779873, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.78007, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.791759, "o", "3233343536373839\\r\\n\r\n"] +[335.792339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.792534, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998695 (current time 26.798960964)\r\n"] +[335.79522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.807661, "o", "d0d0d0d0d0d0d0d0\\r\\n\r\n"] +[335.807942, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.808138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915785 (current time 26.798969255)\r\n"] +[335.8111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.81127, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.822915, "o", "5151515151515151\\r\\n\r\n"] +[335.823478, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003225 (current time 26.798960511)\r\n"] +[335.826172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.826237, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.837924, "o", "01121000651f2e10\\r\\n\r\n"] +[335.838217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.838436, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498456 (current time 26.7989623775)\r\n"] +[335.841437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.841624, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.853449, "o", "21757f3333332175\\r\\n\r\n"] +[335.853807, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.85402, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498857 (current time 26.7989619765)\r\n"] +[335.857201, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.857376, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.869059, "o", "1010101010101010\\r\\n\r\n"] +[335.869426, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.869584, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995013225 (current time 26.798959511)\r\n"] +[335.873177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.873361, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.885204, "o", "6364656641414141\\r\\n\r\n"] +[335.885488, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.885694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[335.8893, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.889447, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.889615, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.90149, "o", "6666666640990011\\r\\n\r\n"] +[335.901785, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.901936, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998045 (current time 26.798961029)\r\n"] +[335.905436, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.9056, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.910999, "o", "0151ae\\r\\n\r\n"] +[335.911506, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[335.913716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.919182, "o", "f60a51\\r\\n\r\n"] +[335.919539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821295 (current time 26.798678704)\r\n"] +[335.92295, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.923124, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.935533, "o", "413042aeb7b7b737\\r\\n\r\n"] +[335.935742, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.935989, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943645 (current time 26.798966469)\r\n"] +[335.93944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.939649, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[335.939849, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.944854, "o", "303030\\r\\n\r\n"] +[335.945192, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.945278, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846885 (current time 26.798676145)\r\n"] +[335.947978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.948095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.960356, "o", "0151cba8cbf107c9\\r\\n\r\n"] +[335.960883, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921745 (current time 26.798968659)\r\n"] +[335.963487, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.963752, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.975905, "o", "42417fff00217a67\\r\\n\r\n"] +[335.976306, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.976615, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954385 (current time 26.798965395)\r\n"] +[335.979106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[335.979363, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[335.984575, "o", "01ae51\\r\\n\r\n"] +[335.984826, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[335.985018, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[335.988497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[335.988705, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.001899, "o", "b8b8b8b8b8b8b8b8\\r\\n\r\n"] +[336.002268, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904385 (current time 26.798970395)\r\n"] +[336.00601, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.006163, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.018205, "o", "650b417777777798\\r\\n\r\n"] +[336.018659, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981555 (current time 26.798962678)\r\n"] +[336.022264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.02238, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[336.022639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.034594, "o", "1b001bf107c86200\\r\\n\r\n"] +[336.034965, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.035169, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495973 (current time 26.7989648605)\r\n"] +[336.038676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.038866, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.051918, "o", "83f3f3f3f3f3f3f3\\r\\n\r\n"] +[336.052319, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949164 (current time 26.7989691935)\r\n"] +[336.056201, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.056358, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.061815, "o", "02e3e3\\r\\n\r\n"] +[336.062242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782153 (current time 26.7986786805)\r\n"] +[336.064554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.064652, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.076267, "o", "3031323334353637\\r\\n\r\n"] +[336.076628, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.076878, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[336.079501, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.07963, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.083457, "o", "019d\\r\\n\r\n"] +[336.083839, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.084009, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840088 (current time 26.7986207455)\r\n"] +[336.087696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.087821, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[336.087989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.093142, "o", "010040\\r\\n\r\n"] +[336.093463, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.093735, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847915 (current time 26.798676042)\r\n"] +[336.096022, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.096166, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.108118, "o", "0151a7a7a7a75151\\r\\n\r\n"] +[336.108501, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.108533, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956315 (current time 26.798965202)\r\n"] +[336.111203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.111232, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[336.111341, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.123879, "o", "cb80cb25cb757afa\\r\\n\r\n"] +[336.124437, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489748 (current time 26.7989710855)\r\n"] +[336.127248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.127442, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.139135, "o", "3536373839616247\\r\\n\r\n"] +[336.139407, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.139589, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996795 (current time 26.798961154)\r\n"] +[336.142163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.142224, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.146223, "o", "3032\\r\\n\r\n"] +[336.146515, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984138 (current time 26.7986194535)\r\n"] +[336.148647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.148877, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.160943, "o", "609a72627a696e67\\r\\n\r\n"] +[336.161238, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.161372, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496123 (current time 26.7989647105)\r\n"] +[336.164039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.174582, "o", "4141414141be41\\r\\n\r\n"] +[336.174946, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.175011, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995549825 (current time 26.798905851)\r\n"] +[336.177859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.178019, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.190288, "o", "000100010066000d\\r\\n\r\n"] +[336.190684, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499974 (current time 26.7989608595)\r\n"] +[336.193432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.193667, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.20675, "o", "012a2a7bdeaffe8f\\r\\n\r\n"] +[336.207168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488595 (current time 26.7989722385)\r\n"] +[336.209808, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.209879, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.21528, "o", "01516e\\r\\n\r\n"] +[336.215648, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833065 (current time 26.798677527)\r\n"] +[336.21841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.218566, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.230413, "o", "363636380001360c\\r\\n\r\n"] +[336.230698, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991485 (current time 26.798961685)\r\n"] +[336.233188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.245303, "o", "00000000efe70606\\r\\n\r\n"] +[336.245717, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[336.245969, "o", "[tsffs info] Cancelling event with next time 2.99949725 (current time 26.7989635835)\r\n"] +[336.248597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.251161, "o", "00\\r\\n\r\n"] +[336.25154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.251813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998982585 (current time 26.798562575)\r\n"] +[336.255078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.255183, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.267143, "o", "00106400000056ae\\r\\n\r\n"] +[336.267554, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.267756, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498569 (current time 26.7989622645)\r\n"] +[336.271386, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.271637, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.283792, "o", "66666666666666ff\\r\\n\r\n"] +[336.284217, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[336.284446, "o", "[tsffs info] Cancelling event with next time 2.99949692 (current time 26.7989639135)\r\n"] +[336.288248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.288499, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.301087, "o", "66757a7a4169a8a8\\r\\n\r\n"] +[336.3015, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.301691, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495003 (current time 26.7989658305)\r\n"] +[336.305319, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.305641, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.311124, "o", "1d0f51\\r\\n\r\n"] +[336.311494, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782178 (current time 26.7986786555)\r\n"] +[336.313774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.314049, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.326319, "o", "c4c4f0f1f1f1f1f1\\r\\n\r\n"] +[336.326553, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.326793, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490929 (current time 26.7989699045)\r\n"] +[336.329492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.329666, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.342125, "o", "413c3c3b3c3c37c4\\r\\n\r\n"] +[336.342526, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493331 (current time 26.7989675025)\r\n"] +[336.345503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.345679, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.358274, "o", "cbeeb8eeeeb8b847\\r\\n\r\n"] +[336.35862, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.35899, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487014 (current time 26.7989738195)\r\n"] +[336.361773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.361846, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.365635, "o", "3a80\\r\\n\r\n"] +[336.366001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840137 (current time 26.7986206965)\r\n"] +[336.369553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.369678, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.381902, "o", "f010f0f0f0f03031\\r\\n\r\n"] +[336.382218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948415 (current time 26.798965992)\r\n"] +[336.385897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.386208, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.396897, "o", "50af5050505050\\r\\n\r\n"] +[336.39706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.397324, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995550115 (current time 26.798905822)\r\n"] +[336.399595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.399913, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.402577, "o", "41\\r\\n\r\n"] +[336.403054, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.403138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981275 (current time 26.798562706)\r\n"] +[336.406297, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.406467, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.414188, "o", "0151515151\\r\\n\r\n"] +[336.41483, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670924 (current time 26.7987899095)\r\n"] +[336.417684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.430489, "o", "8484848484848484\\r\\n\r\n"] +[336.430924, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992705 (current time 26.798961563)\r\n"] +[336.433424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.433589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.438142, "o", "7fff\\r\\n\r\n"] +[336.438505, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.438813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[336.441643, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.441706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.453772, "o", "0130cf323334cb36\\r\\n\r\n"] +[336.454111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495806 (current time 26.7989650275)\r\n"] +[336.457302, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.457636, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.470676, "o", "4201fff9ef0530cf\\r\\n\r\n"] +[336.47098, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.471193, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949194 (current time 26.7989688935)\r\n"] +[336.474629, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.474703, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.486865, "o", "75757575c14f7830\\r\\n\r\n"] +[336.487092, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972615 (current time 26.798963572)\r\n"] +[336.490636, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.490735, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.495958, "o", "015151\\r\\n\r\n"] +[336.496213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[336.498189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.503807, "o", "e9e8e8\\r\\n\r\n"] +[336.504139, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997804835 (current time 26.79868035)\r\n"] +[336.50691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.519071, "o", "38696e67000000ff\\r\\n\r\n"] +[336.519406, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.519622, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496591 (current time 26.7989642425)\r\n"] +[336.523119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.52335, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.535353, "o", "41414166757a7a69\\r\\n\r\n"] +[336.535782, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497506 (current time 26.7989633275)\r\n"] +[336.5392, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.539428, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.542016, "o", "d2\\r\\n\r\n"] +[336.542382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.542553, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969535 (current time 26.79856388)\r\n"] +[336.544695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.544976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.556416, "o", "0000000100000000\\r\\n\r\n"] +[336.55686, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950155 (current time 26.7989592835)\r\n"] +[336.559353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.55961, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.571925, "o", "de24dfe4bb012330\\r\\n\r\n"] +[336.572232, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.572439, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492319 (current time 26.7989685145)\r\n"] +[336.575328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.575556, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.587851, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[336.588134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[336.591465, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.591686, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.6044, "o", "01511b03d2f3a8cb\\r\\n\r\n"] +[336.60475, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935795 (current time 26.798967254)\r\n"] +[336.608076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.608279, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.620193, "o", "5151515149515151\\r\\n\r\n"] +[336.620399, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.620654, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500162 (current time 26.7989606715)\r\n"] +[336.623762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.623905, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.636285, "o", "6334672f2f2f2f0b\\r\\n\r\n"] +[336.636571, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.6368, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494222 (current time 26.7989666115)\r\n"] +[336.640189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.640311, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[336.640419, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.649611, "o", "00a30010019e\\r\\n\r\n"] +[336.649978, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996120915 (current time 26.798848742)\r\n"] +[336.654194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.654356, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.666038, "o", "3233343537373900\\r\\n\r\n"] +[336.666508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500108 (current time 26.7989607255)\r\n"] +[336.670415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.670566, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.67449, "o", "0100\\r\\n\r\n"] +[336.674839, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841558 (current time 26.7986192755)\r\n"] +[336.677259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.682745, "o", "01ffff\\r\\n\r\n"] +[336.683091, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779674 (current time 26.7986811595)\r\n"] +[336.686308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.69838, "o", "311981e8781b0340\\r\\n\r\n"] +[336.698868, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977485 (current time 26.798963085)\r\n"] +[336.701858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.701878, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.714152, "o", "fbf8223738f0f03e\\r\\n\r\n"] +[336.714522, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492984 (current time 26.7989678495)\r\n"] +[336.716971, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.72132, "o", "7fff\\r\\n\r\n"] +[336.721721, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[336.724382, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.729518, "o", "094351\\r\\n\r\n"] +[336.729858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784369 (current time 26.7986764645)\r\n"] +[336.731711, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.743387, "o", "0130313233343537\\r\\n\r\n"] +[336.743708, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.743952, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500439 (current time 26.7989603945)\r\n"] +[336.746439, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.746649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.758952, "o", "695cfb000020ff40\\r\\n\r\n"] +[336.759323, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.759618, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494589 (current time 26.7989662445)\r\n"] +[336.762202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.762435, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.775371, "o", "a8a8a8a8a8e956eb\\r\\n\r\n"] +[336.775764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.776121, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904525 (current time 26.798970381)\r\n"] +[336.778612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.790526, "o", "6060606060603031\\r\\n\r\n"] +[336.790764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.791092, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500515 (current time 26.7989603185)\r\n"] +[336.793744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.793923, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.797666, "o", "5b01\\r\\n\r\n"] +[336.797987, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402305 (current time 26.798620603)\r\n"] +[336.800054, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.800206, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.805404, "o", "229566\\r\\n\r\n"] +[336.805854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784176 (current time 26.7986766575)\r\n"] +[336.808625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.808748, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.821332, "o", "fbfbff0066757a01\\r\\n\r\n"] +[336.821851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491973 (current time 26.7989688605)\r\n"] +[336.825085, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.825211, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.837857, "o", "9e9e9e9e9e9e9e96\\r\\n\r\n"] +[336.838146, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907235 (current time 26.79897011)\r\n"] +[336.841348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.841465, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.853862, "o", "01516c6c6c6c6c6c\\r\\n\r\n"] +[336.854082, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.854339, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994931035 (current time 26.79896773)\r\n"] +[336.857369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.857562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.87058, "o", "ededed30edededed\\r\\n\r\n"] +[336.870875, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994837945 (current time 26.798977039)\r\n"] +[336.874069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.874249, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.886073, "o", "0151015130313233\\r\\n\r\n"] +[336.886312, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.886566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007255 (current time 26.798960108)\r\n"] +[336.889969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.890129, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.90246, "o", "39377fff39666666\\r\\n\r\n"] +[336.90301, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957655 (current time 26.798965068)\r\n"] +[336.906454, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.906531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.910433, "o", "5051\\r\\n\r\n"] +[336.910729, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841308 (current time 26.7986195255)\r\n"] +[336.913126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.913322, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.924939, "o", "010201a4a6101010\\r\\n\r\n"] +[336.925409, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987505 (current time 26.798962083)\r\n"] +[336.928158, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.928263, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.935156, "o", "fdd80b51\\r\\n\r\n"] +[336.935471, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.93572, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722899 (current time 26.7987379345)\r\n"] +[336.938928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[336.938967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.950781, "o", "0130313233343536\\r\\n\r\n"] +[336.95103, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[336.951165, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[336.954899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.954964, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[336.955445, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.963009, "o", "0101015151\\r\\n\r\n"] +[336.963437, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671174 (current time 26.7987896595)\r\n"] +[336.96578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.977851, "o", "1d807a696e672139\\r\\n\r\n"] +[336.978236, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496248 (current time 26.7989645855)\r\n"] +[336.980505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[336.992759, "o", "6061f1f110f1f1f1\\r\\n\r\n"] +[336.99328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494542 (current time 26.7989662915)\r\n"] +[336.996526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[336.996629, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.000954, "o", "20af\\r\\n\r\n"] +[337.00123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839047 (current time 26.7986217865)\r\n"] +[337.004565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.004821, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.017438, "o", "bf799c9c9c9cbf00\\r\\n\r\n"] +[337.017841, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903555 (current time 26.798970478)\r\n"] +[337.0219, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.027441, "o", "fe5151\\r\\n\r\n"] +[337.027829, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782024 (current time 26.7986788095)\r\n"] +[337.029884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.032305, "o", "39\\r\\n\r\n"] +[337.032843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999897961 (current time 26.7985628725)\r\n"] +[337.035661, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.04841, "o", "a8a8a8cbf1fe0cdb\\r\\n\r\n"] +[337.048834, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994874105 (current time 26.798973423)\r\n"] +[337.052089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.052271, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.064537, "o", "4f340bca368d8337\\r\\n\r\n"] +[337.064886, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941925 (current time 26.798966641)\r\n"] +[337.067998, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.079931, "o", "191e404644390000\\r\\n\r\n"] +[337.08032, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991805 (current time 26.798961653)\r\n"] +[337.082844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.092139, "o", "01af01512626\\r\\n\r\n"] +[337.092793, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611805 (current time 26.7988490285)\r\n"] +[337.095351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.107485, "o", "422b2b4100422b2b\\r\\n\r\n"] +[337.107784, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961175 (current time 26.798964716)\r\n"] +[337.110613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.122002, "o", "3333383010323341\\r\\n\r\n"] +[337.122393, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500472 (current time 26.7989603615)\r\n"] +[337.125145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.137104, "o", "6767676767676767\\r\\n\r\n"] +[337.137389, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989985 (current time 26.798961835)\r\n"] +[337.140549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.140687, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.143152, "o", "ac\\r\\n\r\n"] +[337.143544, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998958385 (current time 26.798564995)\r\n"] +[337.14566, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.157392, "o", "5858696941666666\\r\\n\r\n"] +[337.157612, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992095 (current time 26.798961624)\r\n"] +[337.160508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.172421, "o", "7b41413132333435\\r\\n\r\n"] +[337.172783, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499163 (current time 26.7989616705)\r\n"] +[337.175645, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.175797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.187286, "o", "3132333434414141\\r\\n\r\n"] +[337.187494, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004375 (current time 26.798960396)\r\n"] +[337.190541, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.194371, "o", "5151\\r\\n\r\n"] +[337.194805, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[337.196783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.208547, "o", "6e63646566414141\\r\\n\r\n"] +[337.208847, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987295 (current time 26.798962104)\r\n"] +[337.211807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.223911, "o", "303132333435ffff\\r\\n\r\n"] +[337.224213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949551 (current time 26.7989653235)\r\n"] +[337.22686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.238677, "o", "3838384141414166\\r\\n\r\n"] +[337.239012, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949996 (current time 26.7989608735)\r\n"] +[337.241905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.254243, "o", "a53e3e3e0b3e3114\\r\\n\r\n"] +[337.254532, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933985 (current time 26.798967435)\r\n"] +[337.257585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.262733, "o", "255151\\r\\n\r\n"] +[337.263067, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784428 (current time 26.7986764055)\r\n"] +[337.265013, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.276941, "o", "9494949494949494\\r\\n\r\n"] +[337.277193, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990385 (current time 26.798961795)\r\n"] +[337.279761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.285078, "o", "005151\\r\\n\r\n"] +[337.285437, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[337.288841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.301259, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[337.30143, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[337.305089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.30519, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.317745, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[337.318123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[337.322097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.338621, "o", "015151\\r\\n\r\n"] +[337.339657, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.339859, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.342504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.342608, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.347771, "o", "015151\\r\\n\r\n"] +[337.348123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.350236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.355632, "o", "015151\\r\\n\r\n"] +[337.35577, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.358505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.363634, "o", "015151\\r\\n\r\n"] +[337.364011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.365834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.371094, "o", "015151\\r\\n\r\n"] +[337.371449, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.374196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.37928, "o", "015151\\r\\n\r\n"] +[337.37962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.381488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.386776, "o", "015151\\r\\n\r\n"] +[337.38711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.390105, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.39523, "o", "015151\\r\\n\r\n"] +[337.395566, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.397544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.402879, "o", "015151\\r\\n\r\n"] +[337.40328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.406282, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.411442, "o", "015151\\r\\n\r\n"] +[337.41174, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.413928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.419186, "o", "015151\\r\\n\r\n"] +[337.419591, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.422707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.427858, "o", "015151\\r\\n\r\n"] +[337.428177, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.430295, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.435502, "o", "015151\\r\\n\r\n"] +[337.435848, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.439028, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.444277, "o", "015151\\r\\n\r\n"] +[337.44456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.446829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.452101, "o", "015151\\r\\n\r\n"] +[337.452487, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.4556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.460837, "o", "015151\\r\\n\r\n"] +[337.461139, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[337.463324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.474955, "o", "0132323251515151\\r\\n\r\n"] +[337.475328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005225 (current time 26.798960311)\r\n"] +[337.477906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.489813, "o", "ba66313233341010\\r\\n\r\n"] +[337.490003, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982615 (current time 26.798962572)\r\n"] +[337.492728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.49665, "o", "019e\\r\\n\r\n"] +[337.496959, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840059 (current time 26.7986207745)\r\n"] +[337.498876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.510639, "o", "3132333435363738\\r\\n\r\n"] +[337.510961, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000565 (current time 26.798960777)\r\n"] +[337.513372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.52498, "o", "4132320065413031\\r\\n\r\n"] +[337.525288, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005955 (current time 26.798960238)\r\n"] +[337.528062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.540168, "o", "cfe6363630312d33\\r\\n\r\n"] +[337.540492, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495519 (current time 26.7989653145)\r\n"] +[337.543073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.554821, "o", "4141303132333435\\r\\n\r\n"] +[337.555229, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500464 (current time 26.7989603695)\r\n"] +[337.558255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.570949, "o", "01c90101510150ff\\r\\n\r\n"] +[337.571287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971075 (current time 26.798963726)\r\n"] +[337.574625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.574734, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.586687, "o", "4141414141416695\\r\\n\r\n"] +[337.586817, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[337.586934, "o", "[tsffs info] Cancelling event with next time 2.999500159 (current time 26.7989606745)\r\n"] +[337.590339, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.59045, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.602459, "o", "626364031919197b\\r\\n\r\n"] +[337.602743, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498699 (current time 26.7989621345)\r\n"] +[337.606363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.606458, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.618602, "o", "3031323334353031\\r\\n\r\n"] +[337.618924, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005375 (current time 26.798960296)\r\n"] +[337.62247, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.62255, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.635246, "o", "e2e4e2e4e5e5e5e5\\r\\n\r\n"] +[337.635432, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.635466, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905405 (current time 26.798970293)\r\n"] +[337.639275, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.639545, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.644688, "o", "999975\\r\\n\r\n"] +[337.645112, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783743 (current time 26.7986770905)\r\n"] +[337.647169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.659065, "o", "38004030ce333334\\r\\n\r\n"] +[337.65944, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981345 (current time 26.798962699)\r\n"] +[337.662187, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.674007, "o", "10100400032b2b2b\\r\\n\r\n"] +[337.674398, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949757 (current time 26.7989632635)\r\n"] +[337.677369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.689764, "o", "4aafbc7a7a696e67\\r\\n\r\n"] +[337.690131, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905345 (current time 26.798970299)\r\n"] +[337.692728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.705368, "o", "e3e3e3e3e3e3e330\\r\\n\r\n"] +[337.705498, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.705706, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492002 (current time 26.7989688315)\r\n"] +[337.708658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.708795, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.720686, "o", "30fe513030303030\\r\\n\r\n"] +[337.720983, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.721214, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983735 (current time 26.79896246)\r\n"] +[337.724153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.724239, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.736424, "o", "0c0c1e9797979797\\r\\n\r\n"] +[337.736752, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.736908, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958205 (current time 26.798965013)\r\n"] +[337.740278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.740399, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.753322, "o", "800064de2988ff30\\r\\n\r\n"] +[337.753855, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.754047, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495276 (current time 26.7989655575)\r\n"] +[337.757232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.757504, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.760016, "o", "01\\r\\n\r\n"] +[337.760404, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.760642, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[337.762531, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.762715, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.77474, "o", "7a696e6721d07f00\\r\\n\r\n"] +[337.774979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.775338, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495288 (current time 26.7989655455)\r\n"] +[337.778087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.778277, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.791537, "o", "cfcfcfcfcfcfcfcf\\r\\n\r\n"] +[337.791935, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994812705 (current time 26.798979563)\r\n"] +[337.79478, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.794905, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.806781, "o", "75343541653934ff\\r\\n\r\n"] +[337.807303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497417 (current time 26.7989634165)\r\n"] +[337.81005, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.810231, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.823223, "o", "bcbcbcbcbcbcbcbc\\r\\n\r\n"] +[337.823623, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994820825 (current time 26.798978751)\r\n"] +[337.826597, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.826725, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.831806, "o", "002032\\r\\n\r\n"] +[337.832154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.832358, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847355 (current time 26.798676098)\r\n"] +[337.835126, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.8405, "o", "00015a\\r\\n\r\n"] +[337.84089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978358 (current time 26.7986772535)\r\n"] +[337.843409, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.843535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.848588, "o", "512001\\r\\n\r\n"] +[337.848923, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.849086, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784678 (current time 26.7986761555)\r\n"] +[337.851807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.851873, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.861151, "o", "00d000803a24\\r\\n\r\n"] +[337.861587, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996120615 (current time 26.798848772)\r\n"] +[337.863959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.864164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.876925, "o", "ffff01ffffffe0e0\\r\\n\r\n"] +[337.877377, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999485951 (current time 26.7989748825)\r\n"] +[337.880051, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.880261, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.884043, "o", "8000\\r\\n\r\n"] +[337.884387, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.884654, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414 (current time 26.7986194335)\r\n"] +[337.888149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.888361, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.900263, "o", "ba30212121212131\\r\\n\r\n"] +[337.900667, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.900868, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985715 (current time 26.798962262)\r\n"] +[337.904708, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.904817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.916667, "o", "3235434343437a40\\r\\n\r\n"] +[337.917052, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499081 (current time 26.7989617525)\r\n"] +[337.921043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.921223, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[337.921349, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.93327, "o", "65664141bf410000\\r\\n\r\n"] +[337.933706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.933914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981185 (current time 26.798962715)\r\n"] +[337.937824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.938029, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[337.938151, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.950772, "o", "eb020cdb757a7a69\\r\\n\r\n"] +[337.950996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.951275, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919675 (current time 26.798968866)\r\n"] +[337.955065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.955288, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[337.95544, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.960787, "o", "7d3031\\r\\n\r\n"] +[337.961221, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.961411, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783307 (current time 26.7986775265)\r\n"] +[337.963599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.963734, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.967605, "o", "5150\\r\\n\r\n"] +[337.968012, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.968236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841308 (current time 26.7986195255)\r\n"] +[337.97139, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.971612, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[337.971788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.977018, "o", "30007f\\r\\n\r\n"] +[337.977428, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[337.977601, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783364 (current time 26.7986774695)\r\n"] +[337.979824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[337.979989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[337.992411, "o", "6c17deaffe781b03\\r\\n\r\n"] +[337.992967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907095 (current time 26.798970124)\r\n"] +[337.995697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[337.995884, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.00805, "o", "a4bdb43031323334\\r\\n\r\n"] +[338.008375, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.008559, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958915 (current time 26.798964942)\r\n"] +[338.011093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.011183, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.015063, "o", "3131\\r\\n\r\n"] +[338.015384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413695 (current time 26.798619464)\r\n"] +[338.017773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.018011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.024499, "o", "63646566\\r\\n\r\n"] +[338.024778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.024928, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997272205 (current time 26.798733613)\r\n"] +[338.027763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.027819, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.039357, "o", "3031323334353637\\r\\n\r\n"] +[338.039794, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[338.042437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.042639, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.055392, "o", "94c83794c8373737\\r\\n\r\n"] +[338.055876, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970775 (current time 26.798963756)\r\n"] +[338.058696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.058794, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.070939, "o", "2351232323fe781b\\r\\n\r\n"] +[338.071209, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967095 (current time 26.798964124)\r\n"] +[338.074453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.074551, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.086942, "o", "42424266757a7afe\\r\\n\r\n"] +[338.087089, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.087458, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952225 (current time 26.798965611)\r\n"] +[338.090733, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.090848, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.102665, "o", "5151025151515110\\r\\n\r\n"] +[338.102963, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.103157, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005505 (current time 26.798960283)\r\n"] +[338.106602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.106792, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.106863, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.118801, "o", "767676ff00000040\\r\\n\r\n"] +[338.118998, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.119217, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497907 (current time 26.7989629265)\r\n"] +[338.122707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.122802, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.12297, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.128179, "o", "225251\\r\\n\r\n"] +[338.128458, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.128661, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844765 (current time 26.798676357)\r\n"] +[338.130717, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.130884, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.142722, "o", "d830317248483536\\r\\n\r\n"] +[338.142978, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.143202, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987165 (current time 26.798962117)\r\n"] +[338.14592, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.146066, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.149753, "o", "3131\\r\\n\r\n"] +[338.150173, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.150302, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413695 (current time 26.798619464)\r\n"] +[338.153984, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.154105, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.154353, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.167239, "o", "f0f0f0f1f0f0f0f0\\r\\n\r\n"] +[338.167642, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.167834, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491118 (current time 26.7989697155)\r\n"] +[338.171564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.171956, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.177349, "o", "640079\\r\\n\r\n"] +[338.177755, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997842815 (current time 26.798676552)\r\n"] +[338.180124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.191982, "o", "1717016464646434\\r\\n\r\n"] +[338.192322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999755 (current time 26.798960858)\r\n"] +[338.195077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.198863, "o", "5151\\r\\n\r\n"] +[338.199095, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[338.201934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.21428, "o", "64095f81ff817fff\\r\\n\r\n"] +[338.214585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925465 (current time 26.798968287)\r\n"] +[338.219066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.219181, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.231319, "o", "305c363738396162\\r\\n\r\n"] +[338.231565, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987195 (current time 26.798962114)\r\n"] +[338.234991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.235092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.239022, "o", "e600\\r\\n\r\n"] +[338.239324, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.239489, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401645 (current time 26.798620669)\r\n"] +[338.241979, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.254357, "o", "7a69b1b1a1b1b133\\r\\n\r\n"] +[338.254615, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.254781, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935415 (current time 26.798967292)\r\n"] +[338.257763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.257876, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.270342, "o", "3575f5c7c7c7c7c7\\r\\n\r\n"] +[338.270718, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925915 (current time 26.798968242)\r\n"] +[338.273944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.274244, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.286328, "o", "f101218b41414141\\r\\n\r\n"] +[338.286453, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982095 (current time 26.798962624)\r\n"] +[338.289952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.29002, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.290287, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.302118, "o", "0217171717171717\\r\\n\r\n"] +[338.302283, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.302566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500065 (current time 26.7989607685)\r\n"] +[338.306013, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.306174, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.306188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.318376, "o", "81ffd85015153115\\r\\n\r\n"] +[338.318719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966025 (current time 26.798964231)\r\n"] +[338.322275, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.322365, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.322551, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.326256, "o", "3031\\r\\n\r\n"] +[338.326571, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[338.328899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.340832, "o", "781b666666666666\\r\\n\r\n"] +[338.341134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982225 (current time 26.798962611)\r\n"] +[338.343766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.349289, "o", "ff51ff\\r\\n\r\n"] +[338.349613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779549 (current time 26.7986812845)\r\n"] +[338.35276, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.352853, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.358323, "o", "51bb51\\r\\n\r\n"] +[338.358663, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822025 (current time 26.798678631)\r\n"] +[338.361014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.361096, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.373456, "o", "ff000100007fffff\\r\\n\r\n"] +[338.373738, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922455 (current time 26.798968588)\r\n"] +[338.376269, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.388088, "o", "0200014114020002\\r\\n\r\n"] +[338.388361, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995011245 (current time 26.798959709)\r\n"] +[338.391351, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.404107, "o", "2b6bcbf1fe0cdb4a\\r\\n\r\n"] +[338.404385, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994876475 (current time 26.798973186)\r\n"] +[338.407335, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.409972, "o", "ab\\r\\n\r\n"] +[338.410313, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999895871 (current time 26.7985649625)\r\n"] +[338.412353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.424, "o", "4100804141414141\\r\\n\r\n"] +[338.424269, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500606 (current time 26.7989602275)\r\n"] +[338.427071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.427231, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.439725, "o", "7a7a66757addfc04\\r\\n\r\n"] +[338.439976, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.440177, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491765 (current time 26.7989690685)\r\n"] +[338.442765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.442886, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.447995, "o", "000451\\r\\n\r\n"] +[338.448261, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.448505, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846665 (current time 26.798676167)\r\n"] +[338.450716, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.450823, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.462768, "o", "3434347350e30c00\\r\\n\r\n"] +[338.463084, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.463325, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498081 (current time 26.7989627525)\r\n"] +[338.465457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.47744, "o", "00b8d63031323334\\r\\n\r\n"] +[338.47773, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.477974, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498139 (current time 26.7989626945)\r\n"] +[338.480514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.492929, "o", "37f0f0f0f0647a7a\\r\\n\r\n"] +[338.493418, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493144 (current time 26.7989676895)\r\n"] +[338.496168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.49632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.508678, "o", "418c8e8e8e8e8e8e\\r\\n\r\n"] +[338.50907, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491206 (current time 26.7989696275)\r\n"] +[338.512077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.524534, "o", "615366e2deaffe66\\r\\n\r\n"] +[338.524809, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.524991, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491678 (current time 26.7989691555)\r\n"] +[338.527784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.527828, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.540151, "o", "31316e6e6e6e6d6e\\r\\n\r\n"] +[338.540426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928345 (current time 26.798967999)\r\n"] +[338.543189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.543322, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.554992, "o", "4141414141413435\\r\\n\r\n"] +[338.555325, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500417 (current time 26.7989604165)\r\n"] +[338.558435, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.558614, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.570297, "o", "5151515152513680\\r\\n\r\n"] +[338.570547, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.570798, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002005 (current time 26.798960633)\r\n"] +[338.573819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.57395, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.579001, "o", "015130\\r\\n\r\n"] +[338.579322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846545 (current time 26.798676179)\r\n"] +[338.581419, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[338.581639, "o", "[tsffs info] Resuming simulation\r\n"] +[338.585455, "o", "0101\\r\\n\r\n"] +[338.585936, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415255 (current time 26.798619308)\r\n"] +[338.589308, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.589391, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.601415, "o", "8181818161656641\\r\\n\r\n"] +[338.601718, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499816 (current time 26.7989610175)\r\n"] +[338.605425, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.60559, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.618029, "o", "63649ae3e3409f0b\\r\\n\r\n"] +[338.618337, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.61861, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494169 (current time 26.7989666645)\r\n"] +[338.622086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.622266, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.634976, "o", "008f8f8f8f8f8f8f\\r\\n\r\n"] +[338.635277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.635566, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491121 (current time 26.7989697125)\r\n"] +[338.639083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.639246, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.639351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.645828, "o", "00510051\\r\\n\r\n"] +[338.646228, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997279395 (current time 26.798732894)\r\n"] +[338.648616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[338.648783, "o", "[tsffs info] Resuming simulation\r\n"] +[338.66119, "o", "f9f9f903d2f3a8cb\\r\\n\r\n"] +[338.661512, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490434 (current time 26.7989703995)\r\n"] +[338.664336, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.664459, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.677171, "o", "05c0c0c0c0c0c0c0\\r\\n\r\n"] +[338.67751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928125 (current time 26.798968021)\r\n"] +[338.68022, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.680475, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.692509, "o", "2828282828282828\\r\\n\r\n"] +[338.692818, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.692993, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996225 (current time 26.798961211)\r\n"] +[338.695719, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.695855, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.708948, "o", "1f1ee21ebcbcbcbc\\r\\n\r\n"] +[338.709348, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486538 (current time 26.7989742955)\r\n"] +[338.712359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.712612, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.724615, "o", "41384b6d996e3031\\r\\n\r\n"] +[338.724923, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964315 (current time 26.798964402)\r\n"] +[338.727545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.732869, "o", "0002f8\\r\\n\r\n"] +[338.73315, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997833735 (current time 26.79867746)\r\n"] +[338.73656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.741958, "o", "00995b\\r\\n\r\n"] +[338.742328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783156 (current time 26.7986776775)\r\n"] +[338.7458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.745923, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.746098, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.757723, "o", "4142413463640000\\r\\n\r\n"] +[338.758021, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.758203, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005215 (current time 26.798960312)\r\n"] +[338.76114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.761318, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.773307, "o", "ef312e3131313131\\r\\n\r\n"] +[338.773596, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.773765, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497002 (current time 26.7989638315)\r\n"] +[338.776464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.776693, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.789065, "o", "ff1aff7f002300c9\\r\\n\r\n"] +[338.789584, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920815 (current time 26.798968752)\r\n"] +[338.792429, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.792619, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.800274, "o", "3031308005\\r\\n\r\n"] +[338.800602, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.800779, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996710045 (current time 26.798789829)\r\n"] +[338.804608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.804738, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.80487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.817923, "o", "0151adadadadadad\\r\\n\r\n"] +[338.818179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.818373, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994867795 (current time 26.798974054)\r\n"] +[338.821926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.822023, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.822265, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.834594, "o", "51f8f8f99a303232\\r\\n\r\n"] +[338.834791, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.834967, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495165 (current time 26.7989656685)\r\n"] +[338.838653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.838815, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[338.839006, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.850797, "o", "5151515151515151\\r\\n\r\n"] +[338.851146, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.851241, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003225 (current time 26.798960511)\r\n"] +[338.854989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.855243, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.860638, "o", "67b810\\r\\n\r\n"] +[338.860985, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.861273, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783174 (current time 26.7986776595)\r\n"] +[338.863471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.863677, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.876061, "o", "010151d8d8d8edfb\\r\\n\r\n"] +[338.87639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.876652, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920005 (current time 26.798968833)\r\n"] +[338.879406, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.885925, "o", "00008000\\r\\n\r\n"] +[338.886276, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.886375, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999728064 (current time 26.7987327695)\r\n"] +[338.889801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.889997, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.894027, "o", "f0e2\\r\\n\r\n"] +[338.894508, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389525 (current time 26.798621881)\r\n"] +[338.896722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.902046, "o", "828251\\r\\n\r\n"] +[338.902398, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[338.902653, "o", "[tsffs info] Cancelling event with next time 2.999784275 (current time 26.7986765585)\r\n"] +[338.90584, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.90603, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.91879, "o", "32333435ffffffff\\r\\n\r\n"] +[338.919207, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904825 (current time 26.798970351)\r\n"] +[338.922834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[338.923041, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.925861, "o", "bd\\r\\n\r\n"] +[338.926296, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998958055 (current time 26.798565028)\r\n"] +[338.92859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[338.928771, "o", "[tsffs info] Resuming simulation\r\n"] +[338.940409, "o", "6e67213961363738\\r\\n\r\n"] +[338.940769, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985225 (current time 26.798962311)\r\n"] +[338.943626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.943699, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.956344, "o", "0a0029704666ff3a\\r\\n\r\n"] +[338.956743, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495538 (current time 26.7989652955)\r\n"] +[338.959567, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.959732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.964999, "o", "004d51\\r\\n\r\n"] +[338.965251, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783416 (current time 26.7986774175)\r\n"] +[338.968127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.980437, "o", "00a8cbf107c96288\\r\\n\r\n"] +[338.980709, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.98099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949422 (current time 26.7989666135)\r\n"] +[338.983483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.983632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[338.996013, "o", "80ffa832333435ff\\r\\n\r\n"] +[338.996247, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[338.996368, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941325 (current time 26.798966701)\r\n"] +[338.998929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[338.99914, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.005735, "o", "01515051\\r\\n\r\n"] +[339.006016, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.006208, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727782 (current time 26.7987330515)\r\n"] +[339.008778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.008953, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.01577, "o", "d8d8fe51\\r\\n\r\n"] +[339.016055, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.016373, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997226315 (current time 26.798738202)\r\n"] +[339.019687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.019756, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[339.019945, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.032504, "o", "61acb1b13d303132\\r\\n\r\n"] +[339.03278, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494864 (current time 26.7989659695)\r\n"] +[339.036829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.03689, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[339.036914, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.048783, "o", "7f51000000005151\\r\\n\r\n"] +[339.049075, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996295 (current time 26.798961204)\r\n"] +[339.053788, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.053862, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.060634, "o", "01516b51\\r\\n\r\n"] +[339.060979, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726558 (current time 26.7987342755)\r\n"] +[339.064118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.064301, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.066775, "o", "a5\\r\\n\r\n"] +[339.067094, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.067397, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969485 (current time 26.798563885)\r\n"] +[339.071445, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.071561, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.075566, "o", "af08\\r\\n\r\n"] +[339.07603, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838911 (current time 26.7986219225)\r\n"] +[339.079093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.079384, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.091068, "o", "4136373839416263\\r\\n\r\n"] +[339.091452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949985 (current time 26.7989609835)\r\n"] +[339.093818, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.093977, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.105736, "o", "414141414166757a\\r\\n\r\n"] +[339.106024, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.10614, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989715 (current time 26.798961862)\r\n"] +[339.108779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.108913, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.120766, "o", "036400000032fe03\\r\\n\r\n"] +[339.120995, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984655 (current time 26.798962368)\r\n"] +[339.124127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.124276, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.136253, "o", "1b151b3031323334\\r\\n\r\n"] +[339.136404, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.136707, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983015 (current time 26.798962532)\r\n"] +[339.140022, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.14011, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.145561, "o", "00ae51\\r\\n\r\n"] +[339.145896, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823005 (current time 26.798678533)\r\n"] +[339.148075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.148336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.153939, "o", "a5d1cb\\r\\n\r\n"] +[339.15422, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779892 (current time 26.7986809415)\r\n"] +[339.157011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.157271, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.162278, "o", "013031\\r\\n\r\n"] +[339.162475, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.162829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847015 (current time 26.798676132)\r\n"] +[339.164707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.164841, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.176664, "o", "6b232323238c5050\\r\\n\r\n"] +[339.177015, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498028 (current time 26.7989628055)\r\n"] +[339.179509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.179757, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.192048, "o", "a8e5e5e5e5403031\\r\\n\r\n"] +[339.192327, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[339.192459, "o", "[tsffs info] Cancelling event with next time 2.999494302 (current time 26.7989665315)\r\n"] +[339.195285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.195601, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.207614, "o", "66757a73734d4c73\\r\\n\r\n"] +[339.207886, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949617 (current time 26.7989646635)\r\n"] +[339.210656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.210853, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.222677, "o", "37c7396131323335\\r\\n\r\n"] +[339.223072, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498838 (current time 26.7989619955)\r\n"] +[339.225578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.225829, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.238981, "o", "aeaeaeaeaeaeaeae\\r\\n\r\n"] +[339.239445, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.239492, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994818665 (current time 26.798978967)\r\n"] +[339.242369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.242565, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.251748, "o", "06060f040505\\r\\n\r\n"] +[339.252044, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.252338, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612973 (current time 26.7988478605)\r\n"] +[339.255763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.256056, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.268632, "o", "17deaffef107c930\\r\\n\r\n"] +[339.268906, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994907255 (current time 26.798970108)\r\n"] +[339.272886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.272965, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.284923, "o", "f37a313233343566\\r\\n\r\n"] +[339.285276, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977675 (current time 26.798963066)\r\n"] +[339.28888, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.289048, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.301591, "o", "005e636414fe0cdb\\r\\n\r\n"] +[339.301915, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493306 (current time 26.7989675275)\r\n"] +[339.305642, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.305722, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[339.305955, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.31832, "o", "fef0f06060606060\\r\\n\r\n"] +[339.31844, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.318724, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956585 (current time 26.798965175)\r\n"] +[339.322414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.322485, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.334394, "o", "3113333435363738\\r\\n\r\n"] +[339.334746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000785 (current time 26.798960755)\r\n"] +[339.338596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.338705, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.34405, "o", "015137\\r\\n\r\n"] +[339.344317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.344421, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784478 (current time 26.7986763555)\r\n"] +[339.346667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.346918, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.359005, "o", "00c9fde7f8667533\\r\\n\r\n"] +[339.359486, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938725 (current time 26.798966961)\r\n"] +[339.362341, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.36254, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.367845, "o", "303031\\r\\n\r\n"] +[339.368227, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.368257, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784656 (current time 26.7986761775)\r\n"] +[339.37175, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.371822, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.383705, "o", "6731203300000080\\r\\n\r\n"] +[339.384087, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[339.38428, "o", "[tsffs info] Cancelling event with next time 2.999500748 (current time 26.7989600855)\r\n"] +[339.388057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.388336, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.390815, "o", "13\\r\\n\r\n"] +[339.391179, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898148 (current time 26.7985626855)\r\n"] +[339.39399, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.405901, "o", "b6373839616c5480\\r\\n\r\n"] +[339.406311, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974385 (current time 26.798963395)\r\n"] +[339.408842, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.412639, "o", "0151\\r\\n\r\n"] +[339.412972, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[339.414835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.42699, "o", "cbf108c942120003\\r\\n\r\n"] +[339.427287, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958455 (current time 26.798964988)\r\n"] +[339.429794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.439426, "o", "ff0130ce321f\\r\\n\r\n"] +[339.439798, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996082165 (current time 26.798852617)\r\n"] +[339.442191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.442259, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.454421, "o", "663c414141396162\\r\\n\r\n"] +[339.454822, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989025 (current time 26.798961931)\r\n"] +[339.457697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.464123, "o", "51515151\\r\\n\r\n"] +[339.46446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997276245 (current time 26.798733209)\r\n"] +[339.466448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.47819, "o", "00c5424242423031\\r\\n\r\n"] +[339.478595, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499422 (current time 26.7989614115)\r\n"] +[339.481127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.491587, "o", "01515151205151\\r\\n\r\n"] +[339.491873, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999557376 (current time 26.7989034575)\r\n"] +[339.494623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.506599, "o", "66757a6e67213937\\r\\n\r\n"] +[339.506781, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[339.509415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.51316, "o", "0000\\r\\n\r\n"] +[339.513462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[339.515205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.515225, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.520874, "o", "afaf51\\r\\n\r\n"] +[339.521168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999779787 (current time 26.7986810465)\r\n"] +[339.523874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.523959, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.536087, "o", "7c5a5a5a40004764\\r\\n\r\n"] +[339.536309, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.53646, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994956225 (current time 26.798965211)\r\n"] +[339.540008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.540139, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.552263, "o", "51c962040404d2f3\\r\\n\r\n"] +[339.552546, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.552785, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496787 (current time 26.7989640465)\r\n"] +[339.556172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.556341, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.561643, "o", "01af51\\r\\n\r\n"] +[339.562011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822435 (current time 26.79867859)\r\n"] +[339.564083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.569385, "o", "747451\\r\\n\r\n"] +[339.569676, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.56985, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784215 (current time 26.7986766185)\r\n"] +[339.572817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.572984, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.578249, "o", "01a975\\r\\n\r\n"] +[339.578518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783184 (current time 26.7986776495)\r\n"] +[339.580699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.591697, "o", "d20004f38acbf1\\r\\n\r\n"] +[339.592012, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.592211, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995503155 (current time 26.798910518)\r\n"] +[339.594793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.594855, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.607616, "o", "cececece966e6c17\\r\\n\r\n"] +[339.608033, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[339.608217, "o", "[tsffs info] Cancelling event with next time 2.999488142 (current time 26.7989726915)\r\n"] +[339.610784, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.623001, "o", "5101515151ffff7f\\r\\n\r\n"] +[339.623348, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.623545, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942235 (current time 26.79896661)\r\n"] +[339.625866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.631013, "o", "016951\\r\\n\r\n"] +[339.631363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997843665 (current time 26.798676467)\r\n"] +[339.633269, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.645193, "o", "18e72f3031323334\\r\\n\r\n"] +[339.645545, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978915 (current time 26.798962942)\r\n"] +[339.647824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.648026, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.651906, "o", "5101\\r\\n\r\n"] +[339.652286, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[339.655414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.667885, "o", "0000fbfbfbfb0000\\r\\n\r\n"] +[339.66823, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994915565 (current time 26.798969277)\r\n"] +[339.67182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.671922, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.676106, "o", "00c9\\r\\n\r\n"] +[339.676542, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840136 (current time 26.7986206975)\r\n"] +[339.678655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.678911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.690614, "o", "e493696666753031\\r\\n\r\n"] +[339.69107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498465 (current time 26.7989623685)\r\n"] +[339.69367, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.705445, "o", "3031003334353637\\r\\n\r\n"] +[339.705726, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003795 (current time 26.798960454)\r\n"] +[339.708582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.708645, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.721118, "o", "cbf107c962c214fe\\r\\n\r\n"] +[339.721428, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919725 (current time 26.798968861)\r\n"] +[339.724378, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.724486, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.736465, "o", "f00100f0344651f0\\r\\n\r\n"] +[339.736763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497059 (current time 26.7989637745)\r\n"] +[339.740128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.740386, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.749353, "o", "000151010150\\r\\n\r\n"] +[339.749719, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996145385 (current time 26.798846295)\r\n"] +[339.753157, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.753332, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.761245, "o", "0130313233\\r\\n\r\n"] +[339.761578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671077 (current time 26.7987897565)\r\n"] +[339.76386, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.77604, "o", "686868682f4949eb\\r\\n\r\n"] +[339.7764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495758 (current time 26.7989650755)\r\n"] +[339.779085, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.790824, "o", "3233343536373839\\r\\n\r\n"] +[339.791157, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998695 (current time 26.798960964)\r\n"] +[339.793765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.796217, "o", "52\\r\\n\r\n"] +[339.79664, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898079 (current time 26.7985627545)\r\n"] +[339.79847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.810128, "o", "6866656641414141\\r\\n\r\n"] +[339.810714, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499864 (current time 26.7989609695)\r\n"] +[339.813074, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.818598, "o", "fa0002\\r\\n\r\n"] +[339.818845, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782379 (current time 26.7986784545)\r\n"] +[339.821914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.828912, "o", "e87fffe8\\r\\n\r\n"] +[339.829436, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999721226 (current time 26.7987396075)\r\n"] +[339.831526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.843142, "o", "4141040404040404\\r\\n\r\n"] +[339.843533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995007295 (current time 26.798960104)\r\n"] +[339.846135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.850279, "o", "d99f\\r\\n\r\n"] +[339.850686, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838597 (current time 26.7986222365)\r\n"] +[339.85417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.854419, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.858394, "o", "64d0\\r\\n\r\n"] +[339.858896, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840095 (current time 26.7986207385)\r\n"] +[339.861094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.873031, "o", "85858585781b03d2\\r\\n\r\n"] +[339.873414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973355 (current time 26.798963498)\r\n"] +[339.875896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.887931, "o", "020202027a0200ff\\r\\n\r\n"] +[339.888263, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973405 (current time 26.798963493)\r\n"] +[339.891117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.891263, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.903235, "o", "a5a500002066757a\\r\\n\r\n"] +[339.903568, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496952 (current time 26.7989638815)\r\n"] +[339.90691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[339.907028, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.914849, "o", "0020515151\\r\\n\r\n"] +[339.915242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996710595 (current time 26.798789774)\r\n"] +[339.917932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.930126, "o", "4166757a7a696e67\\r\\n\r\n"] +[339.930413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496019 (current time 26.7989648145)\r\n"] +[339.933016, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.945706, "o", "267a7aa8a8a8a8a8\\r\\n\r\n"] +[339.94604, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491781 (current time 26.7989690525)\r\n"] +[339.94865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.952885, "o", "66b8\\r\\n\r\n"] +[339.953238, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839901 (current time 26.7986209325)\r\n"] +[339.956282, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.968806, "o", "f00ff0c3c3c3c3c3\\r\\n\r\n"] +[339.969153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911055 (current time 26.798969728)\r\n"] +[339.971903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.984191, "o", "a6a6a6a641410251\\r\\n\r\n"] +[339.984554, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[339.984929, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957825 (current time 26.798965051)\r\n"] +[339.989446, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.989588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[339.993767, "o", "3b51\\r\\n\r\n"] +[339.994207, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998401525 (current time 26.798620681)\r\n"] +[339.996618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[339.996793, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.008939, "o", "3959f1ff7f004141\\r\\n\r\n"] +[340.009548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952535 (current time 26.79896558)\r\n"] +[340.012191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.012333, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.024505, "o", "3662f0f0ef303031\\r\\n\r\n"] +[340.024884, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495699 (current time 26.7989651345)\r\n"] +[340.027623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.031592, "o", "51ae\\r\\n\r\n"] +[340.032026, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389685 (current time 26.798621865)\r\n"] +[340.034827, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.037383, "o", "51\\r\\n\r\n"] +[340.037918, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898101 (current time 26.7985627325)\r\n"] +[340.040616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.053156, "o", "0010a9a9a980a9a9\\r\\n\r\n"] +[340.053405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494337 (current time 26.7989664965)\r\n"] +[340.056722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.056819, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.069097, "o", "5b8f303132333435\\r\\n\r\n"] +[340.069265, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497904 (current time 26.7989629295)\r\n"] +[340.073092, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.08564, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[340.086147, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[340.090209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.1028, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[340.10322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[340.106963, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.107153, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.118992, "o", "66757a6e67213937\\r\\n\r\n"] +[340.119317, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.122873, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.123036, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.135123, "o", "66757a6e67213937\\r\\n\r\n"] +[340.135534, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.139131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.139253, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.139445, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.151435, "o", "66757a6e67213937\\r\\n\r\n"] +[340.151888, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.152169, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.155807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.155896, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.168017, "o", "66757a6e67213937\\r\\n\r\n"] +[340.1685, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.168687, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.17257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.172686, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.184867, "o", "66757a6e67213937\\r\\n\r\n"] +[340.185166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[340.185357, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.18906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.189231, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.189346, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.189755, "o", "\\r\\n\r\n"] +[340.190251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.190453, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.192257, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.192608, "o", "\\r\\n\r\n"] +[340.193083, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.193288, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.194976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.195289, "o", "\\r\\n\r\n"] +[340.195878, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.197434, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.210004, "o", "f0f0f0f0f0f0f0f0\\r\\n\r\n"] +[340.210246, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.210446, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[340.213078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.213246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.225111, "o", "66757a6e67213937\\r\\n\r\n"] +[340.225559, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.228289, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.228542, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.240391, "o", "757a6e6721393738\\r\\n\r\n"] +[340.240762, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497263 (current time 26.7989635705)\r\n"] +[340.243549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.243751, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.255653, "o", "667a6e6721393738\\r\\n\r\n"] +[340.255996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.256245, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497268 (current time 26.7989635655)\r\n"] +[340.258824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.258967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.270811, "o", "66756e6721393738\\r\\n\r\n"] +[340.271191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983245 (current time 26.798962509)\r\n"] +[340.274397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.274511, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.286422, "o", "66757a6721393738\\r\\n\r\n"] +[340.286703, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.286937, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983855 (current time 26.798962448)\r\n"] +[340.290121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.290309, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.302281, "o", "66757a2139373839\\r\\n\r\n"] +[340.302741, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498411 (current time 26.7989624225)\r\n"] +[340.306596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.306652, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.306835, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.318688, "o", "66757a3937383961\\r\\n\r\n"] +[340.318965, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.319127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498319 (current time 26.7989625145)\r\n"] +[340.322699, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.322985, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.323276, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.33517, "o", "66757a37383961f0\\r\\n\r\n"] +[340.335388, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.335588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973125 (current time 26.798963521)\r\n"] +[340.339403, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.339597, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.339738, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.351909, "o", "66757a383961f0f0\\r\\n\r\n"] +[340.352075, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.352307, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496263 (current time 26.7989645705)\r\n"] +[340.355982, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.3561, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.356295, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.368663, "o", "66757a3961f0f0f0\\r\\n\r\n"] +[340.368883, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.369099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952275 (current time 26.798965606)\r\n"] +[340.372849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.372961, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.373156, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.385502, "o", "66757a61f0f0f0f0\\r\\n\r\n"] +[340.385747, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.385941, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494221 (current time 26.7989666125)\r\n"] +[340.389518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.389674, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.389965, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.402271, "o", "66757af0f0f0f0f0\\r\\n\r\n"] +[340.402639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.402984, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493096 (current time 26.7989677375)\r\n"] +[340.406233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.40639, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.406589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.418995, "o", "66757af0f0f0f0f0\\r\\n\r\n"] +[340.41932, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.419533, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493096 (current time 26.7989677375)\r\n"] +[340.42302, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.42328, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.435661, "o", "66757af0f0f0f07a\\r\\n\r\n"] +[340.435995, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930385 (current time 26.798967795)\r\n"] +[340.439537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.451922, "o", "66757af0f0f07a69\\r\\n\r\n"] +[340.452221, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939765 (current time 26.798966857)\r\n"] +[340.455929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.456146, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.468506, "o", "66757af0f07a696e\\r\\n\r\n"] +[340.468764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938545 (current time 26.798966979)\r\n"] +[340.472438, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.472547, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.472683, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.485024, "o", "66757af07a696e67\\r\\n\r\n"] +[340.485324, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.485588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948355 (current time 26.798965998)\r\n"] +[340.489413, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.489588, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.501616, "o", "66757a7a696e6721\\r\\n\r\n"] +[340.502181, "o", "All characters were correct!\\r\\n\r\n"] +[340.510399, "o", "[tsffs info] on_simulation_stopped(Solution(Solution { kind: Exception }))\r\n[tsffs info] Cancelling event with next time 2.998783565 (current time 26.7996772685)\r\n"] +[340.513214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.51334, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.525383, "o", "66757af0696e6721\\r\\n\r\n"] +[340.525748, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949611 (current time 26.7989647235)\r\n"] +[340.528608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.541205, "o", "66757af06e672139\\r\\n\r\n"] +[340.541566, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.541682, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961785 (current time 26.798964655)\r\n"] +[340.544364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.544514, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.556611, "o", "66757af067213937\\r\\n\r\n"] +[340.556778, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.55683, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949735 (current time 26.7989634835)\r\n"] +[340.559353, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.559402, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.5715, "o", "66757af021393738\\r\\n\r\n"] +[340.571775, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.571904, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974045 (current time 26.798963429)\r\n"] +[340.574773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.574817, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.586806, "o", "66757af039373839\\r\\n\r\n"] +[340.587152, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.587311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497194 (current time 26.7989636395)\r\n"] +[340.590585, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.590773, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.590842, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.603021, "o", "66757af037383961\\r\\n\r\n"] +[340.603379, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.603584, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973125 (current time 26.798963521)\r\n"] +[340.606614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.606842, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.606986, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.619074, "o", "66757af0383961f0\\r\\n\r\n"] +[340.619415, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.619584, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496263 (current time 26.7989645705)\r\n"] +[340.623037, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.623179, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.623317, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.635474, "o", "66757af03961f0f0\\r\\n\r\n"] +[340.635846, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.636099, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952275 (current time 26.798965606)\r\n"] +[340.639577, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.639714, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.639829, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.652132, "o", "66757af061f0f0f0\\r\\n\r\n"] +[340.652483, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.652834, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494221 (current time 26.7989666125)\r\n"] +[340.656428, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.656448, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.656542, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.668958, "o", "66757af0f0f0f0f0\\r\\n\r\n"] +[340.669317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.66959, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493096 (current time 26.7989677375)\r\n"] +[340.673102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.67326, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.685749, "o", "66757af0f0f0f0f0\\r\\n\r\n"] +[340.686082, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.686368, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493096 (current time 26.7989677375)\r\n"] +[340.689758, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.689938, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.69011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.701117, "o", "66757af0f0f0f0\\r\\n\r\n"] +[340.701416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.701645, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551068 (current time 26.7989097655)\r\n"] +[340.705417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.705581, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.705599, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.71514, "o", "66757af0f0f0\\r\\n\r\n"] +[340.715448, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.715594, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99960904 (current time 26.7988517935)\r\n"] +[340.719048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.719191, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.719278, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.727698, "o", "66757af0f0\\r\\n\r\n"] +[340.728127, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667012 (current time 26.7987938215)\r\n"] +[340.730465, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.730576, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.737242, "o", "66757af0\\r\\n\r\n"] +[340.737482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724984 (current time 26.7987358495)\r\n"] +[340.740313, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.746909, "o", "66757af0\\r\\n\r\n"] +[340.747284, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724984 (current time 26.7987358495)\r\n"] +[340.749271, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.749578, "o", "\\r\\n\r\n"] +[340.750127, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.753415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.753456, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.753826, "o", "\\r\\n\r\n"] +[340.754322, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.756672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.757022, "o", "\\r\\n\r\n"] +[340.757505, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.759335, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.759551, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.759576, "o", "\\r\\n\r\n"] +[340.760175, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.761802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.762062, "o", "\\r\\n\r\n"] +[340.762627, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.764163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.764805, "o", "\\r\\n\r\n"] +[340.765108, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.766613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.766782, "o", "\\r\\n\r\n"] +[340.76742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9999549245 (current time 26.798505909)\r\n"] +[340.770774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.77083, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.813472, "o", "66757a6e67213937\\r\\n\r\n"] +[340.814356, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.814381, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.81832, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.818397, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.830831, "o", "f0696e6726c7372d\\r\\n\r\n"] +[340.831035, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.831214, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949915 (current time 26.798965842)\r\n"] +[340.834418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.834675, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.834811, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.841415, "o", "67696e67\\r\\n\r\n"] +[340.84181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997258165 (current time 26.798735017)\r\n"] +[340.844631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.844754, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.85617, "o", "0000000000000000\\r\\n\r\n"] +[340.856491, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.856592, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995015825 (current time 26.798959251)\r\n"] +[340.859287, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.859497, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.872059, "o", "408d2d2d88636311\\r\\n\r\n"] +[340.872341, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.872624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496538 (current time 26.7989642955)\r\n"] +[340.87514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.875222, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.875338, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.887226, "o", "3330313233343536\\r\\n\r\n"] +[340.887534, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[340.887624, "o", "[tsffs info] Cancelling event with next time 2.9995003455 (current time 26.798960488)\r\n"] +[340.890544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[340.89072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.903057, "o", "00383738f0f0f0f4\\r\\n\r\n"] +[340.903481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954765 (current time 26.798965357)\r\n"] +[340.906921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.90703, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.919404, "o", "66757a00ff213937\\r\\n\r\n"] +[340.919713, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496369 (current time 26.7989644645)\r\n"] +[340.92321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.92345, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.935703, "o", "66757a6e4d213937\\r\\n\r\n"] +[340.936108, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496202 (current time 26.7989646315)\r\n"] +[340.939726, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.939876, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.951766, "o", "011d414130313233\\r\\n\r\n"] +[340.952043, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.952334, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499528 (current time 26.7989613055)\r\n"] +[340.956048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.956143, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.95634, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.968348, "o", "66757a6e67213937\\r\\n\r\n"] +[340.968612, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[340.96888, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[340.972579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.972728, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.982427, "o", "7a8e8ef83031\\r\\n\r\n"] +[340.982687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999608934 (current time 26.7988518995)\r\n"] +[340.987031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[340.987101, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[340.987353, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[340.999536, "o", "37383961f0f0f0f0\\r\\n\r\n"] +[340.999962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495367 (current time 26.7989654665)\r\n"] +[341.004264, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.004365, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.016535, "o", "66757a6e5c213937\\r\\n\r\n"] +[341.016883, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.017125, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496191 (current time 26.7989646425)\r\n"] +[341.0212, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.021482, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.021609, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.033735, "o", "ffff300054755900\\r\\n\r\n"] +[341.03411, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.034384, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495419 (current time 26.7989654145)\r\n"] +[341.038199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.038271, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.038309, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.042583, "o", "f0f0\\r\\n\r\n"] +[341.042885, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.042933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.043106, "o", "[tsffs info] Cancelling event with next time 2.9998389825 (current time 26.798621851)\r\n"] +[341.045413, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.04556, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.057589, "o", "66757a6e67213937\\r\\n\r\n"] +[341.057764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.057931, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.057954, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.060892, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.060925, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.061052, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.073353, "o", "66757af0f0f0f0f0\\r\\n\r\n"] +[341.073702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.073829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493096 (current time 26.7989677375)\r\n"] +[341.076489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.076687, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.089239, "o", "7a7a7a7a7a7a7a7a\\r\\n\r\n"] +[341.0897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906905 (current time 26.798970143)\r\n"] +[341.092461, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.092834, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.104802, "o", "66757a6e67213937\\r\\n\r\n"] +[341.105215, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.108182, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.108345, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.120275, "o", "66757a6e67213937\\r\\n\r\n"] +[341.120737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.120914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.123606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.12384, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.135757, "o", "3435003739399762\\r\\n\r\n"] +[341.136059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.136129, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997565 (current time 26.798961077)\r\n"] +[341.139623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.139816, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.139965, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.151848, "o", "66757a6e67213937\\r\\n\r\n"] +[341.152128, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.152468, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.156, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.156238, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.156259, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.168113, "o", "4031394040404040\\r\\n\r\n"] +[341.168355, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.168604, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005835 (current time 26.79896025)\r\n"] +[341.172153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.172429, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.172582, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.184847, "o", "373839d3d3d3d3d3\\r\\n\r\n"] +[341.185405, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.185459, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941195 (current time 26.798966714)\r\n"] +[341.189049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.189379, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.201328, "o", "213937383961f037\\r\\n\r\n"] +[341.201853, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949864 (current time 26.7989621935)\r\n"] +[341.20538, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.205655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.217761, "o", "66757a2d67213937\\r\\n\r\n"] +[341.21836, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497349 (current time 26.7989634845)\r\n"] +[341.222148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.222232, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.234326, "o", "66757a6e67e53937\\r\\n\r\n"] +[341.234932, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959105 (current time 26.798964923)\r\n"] +[341.238773, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.238835, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.251494, "o", "66d87a6e6721393b\\r\\n\r\n"] +[341.252033, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950695 (current time 26.798965764)\r\n"] +[341.255686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.255978, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.268166, "o", "0e7ff23333331433\\r\\n\r\n"] +[341.268432, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.268643, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496709 (current time 26.7989641245)\r\n"] +[341.27226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.272378, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.284732, "o", "66757a6e67213937\\r\\n\r\n"] +[341.285052, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.288829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.288899, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.301045, "o", "66757a6e67213937\\r\\n\r\n"] +[341.301487, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.301623, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.305291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.305392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.317583, "o", "75757a6e98213928\\r\\n\r\n"] +[341.317901, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.318082, "o", "[tsffs info] Cancelling event with next time 2.9994971525 (current time 26.798963681)\r\n"] +[341.321916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.322068, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.334568, "o", "b6b6b6d8b61800ef\\r\\n\r\n"] +[341.334807, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.335119, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491939 (current time 26.7989688945)\r\n"] +[341.338824, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.339027, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.351043, "o", "696ed03132333469\\r\\n\r\n"] +[341.351216, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.351536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975985 (current time 26.798963235)\r\n"] +[341.355346, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.355443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.368136, "o", "47b1b1b1b1b11732\\r\\n\r\n"] +[341.368447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.368608, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494791 (current time 26.7989660425)\r\n"] +[341.372531, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.372607, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.385273, "o", "3f2167cd8aa58aa6\\r\\n\r\n"] +[341.385503, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.385642, "o", "[tsffs info] Cancelling event with next time 2.9994919125 (current time 26.798968921)\r\n"] +[341.38952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.389659, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.402288, "o", "f0f0f0eff1f0f0f0\\r\\n\r\n"] +[341.402559, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.402851, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994898385 (current time 26.798970995)\r\n"] +[341.406378, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.406521, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.406705, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.418656, "o", "ff01010101013000\\r\\n\r\n"] +[341.41894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.419171, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498734 (current time 26.7989620995)\r\n"] +[341.422875, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.422958, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.423088, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.435148, "o", "7a6e6721393761f0\\r\\n\r\n"] +[341.435533, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.435782, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949635 (current time 26.7989644835)\r\n"] +[341.439225, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.43943, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.443637, "o", "0baf\\r\\n\r\n"] +[341.444111, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837899 (current time 26.7986229345)\r\n"] +[341.446235, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.44649, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.458394, "o", "f06364659a4141a8\\r\\n\r\n"] +[341.458839, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964955 (current time 26.798964338)\r\n"] +[341.461615, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.461883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.473475, "o", "7140303132333435\\r\\n\r\n"] +[341.47378, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004185 (current time 26.798960415)\r\n"] +[341.476258, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.476435, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.48846, "o", "a73031146f3a1760\\r\\n\r\n"] +[341.488719, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.489006, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968325 (current time 26.798964001)\r\n"] +[341.491728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.491883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.504304, "o", "8e8ed874f479758e\\r\\n\r\n"] +[341.504612, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.504682, "o", "[tsffs info] Cancelling event with next time 2.9994933565 (current time 26.798967477)\r\n"] +[341.50779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.508069, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.519808, "o", "4141414141404110\\r\\n\r\n"] +[341.520085, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.520236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006655 (current time 26.798960168)\r\n"] +[341.523369, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.52367, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.53646, "o", "bbe2e2deaf63c39d\\r\\n\r\n"] +[341.536932, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.537096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488483 (current time 26.7989723505)\r\n"] +[341.540311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.540424, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.540645, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.552794, "o", "757a6e6733346436\\r\\n\r\n"] +[341.553021, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.553385, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973685 (current time 26.798963465)\r\n"] +[341.556926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.556967, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.569908, "o", "6ef0f0f0f0f07a69\\r\\n\r\n"] +[341.570136, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.570408, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491909 (current time 26.7989689245)\r\n"] +[341.573641, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.573831, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.585781, "o", "3435363738396162\\r\\n\r\n"] +[341.586172, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.586382, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499778 (current time 26.7989610555)\r\n"] +[341.589839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.59005, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.60239, "o", "d8757a6e67213937\\r\\n\r\n"] +[341.602788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.602947, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960905 (current time 26.798964743)\r\n"] +[341.606593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.606831, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.619623, "o", "3132332635363d38\\r\\n\r\n"] +[341.619785, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.620282, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498958 (current time 26.7989618755)\r\n"] +[341.62375, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.623862, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.635898, "o", "66757a6e67213937\\r\\n\r\n"] +[341.636309, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.639995, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.640137, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.652215, "o", "7a6e646467213937\\r\\n\r\n"] +[341.652518, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.652761, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497343 (current time 26.7989634905)\r\n"] +[341.656143, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.656381, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.668807, "o", "3051015144293048\\r\\n\r\n"] +[341.669144, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.669236, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500319 (current time 26.7989605145)\r\n"] +[341.673089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.673237, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.685232, "o", "3334353637382323\\r\\n\r\n"] +[341.685519, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000345 (current time 26.798960799)\r\n"] +[341.689218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.689377, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.689496, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.70186, "o", "c1c1c1c133363839\\r\\n\r\n"] +[341.702177, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.702425, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495566 (current time 26.7989652675)\r\n"] +[341.706079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.70623, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.718502, "o", "66757a6e67213937\\r\\n\r\n"] +[341.718589, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.718932, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.722549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.722775, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.735693, "o", "667567213937cfcf\\r\\n\r\n"] +[341.736134, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.736342, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494941 (current time 26.7989658925)\r\n"] +[341.739974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.740109, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.752, "o", "6675100067213937\\r\\n\r\n"] +[341.752481, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999865 (current time 26.798960847)\r\n"] +[341.756069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.756214, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.756382, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.768973, "o", "f4f4f4f4f4f4f4f4\\r\\n\r\n"] +[341.769285, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.7695, "o", "[tsffs info] Cancelling event with next time 2.9994903625 (current time 26.798970471)\r\n"] +[341.773049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.773226, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.785043, "o", "3031323031323334\\r\\n\r\n"] +[341.78537, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500608 (current time 26.7989602255)\r\n"] +[341.788972, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.78912, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.801625, "o", "939301b4b4b4b4b4\\r\\n\r\n"] +[341.801855, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.802208, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949445 (current time 26.7989663835)\r\n"] +[341.805771, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.805964, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.818535, "o", "c3c3c3c3657f3839\\r\\n\r\n"] +[341.818808, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.818959, "o", "[tsffs info] Cancelling event with next time 2.9994940125 (current time 26.798966821)\r\n"] +[341.822564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.822685, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.822867, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.835946, "o", "d2f0f0f0f0f0ef67\\r\\n\r\n"] +[341.836269, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.836496, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490851 (current time 26.7989699825)\r\n"] +[341.840032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.840253, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.840334, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.852374, "o", "66757a6e67213937\\r\\n\r\n"] +[341.852577, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.856442, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.856548, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.856776, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.868671, "o", "4f67724166303153\\r\\n\r\n"] +[341.869047, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988105 (current time 26.798962023)\r\n"] +[341.872458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.87262, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.884691, "o", "4141664141416566\\r\\n\r\n"] +[341.884963, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950007 (current time 26.7989607635)\r\n"] +[341.888739, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.888905, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.900882, "o", "4159444141416675\\r\\n\r\n"] +[341.901059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.901241, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999225 (current time 26.798960911)\r\n"] +[341.904939, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.905031, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[341.905248, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.917733, "o", "3c3dc23d3d3d6262\\r\\n\r\n"] +[341.918046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493264 (current time 26.7989675695)\r\n"] +[341.921839, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.921986, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.933967, "o", "3637423961626376\\r\\n\r\n"] +[341.934357, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[341.934481, "o", "[tsffs info] Cancelling event with next time 2.9994997255 (current time 26.798961108)\r\n"] +[341.938149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.938281, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.950866, "o", "66757a6e67f0f0f0\\r\\n\r\n"] +[341.951009, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.951243, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493955 (current time 26.7989668785)\r\n"] +[341.955111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[341.95524, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.963523, "o", "00a8cbf107\\r\\n\r\n"] +[341.963866, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996662605 (current time 26.798794573)\r\n"] +[341.966365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.966492, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.978471, "o", "67757a6e67213937\\r\\n\r\n"] +[341.978818, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.978947, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972085 (current time 26.798963625)\r\n"] +[341.981488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.981784, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[341.993585, "o", "66757a6e67213937\\r\\n\r\n"] +[341.994016, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[341.994213, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[341.996701, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[341.99683, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.008807, "o", "6666757a6e672139\\r\\n\r\n"] +[342.009224, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971965 (current time 26.798963637)\r\n"] +[342.012191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.012312, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.024798, "o", "6675f0f0f0f0f0f0\\r\\n\r\n"] +[342.025284, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493157 (current time 26.7989676765)\r\n"] +[342.028101, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.039875, "o", "6364658041414141\\r\\n\r\n"] +[342.040201, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500127 (current time 26.7989607065)\r\n"] +[342.042695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.042859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.055008, "o", "66757a6e2e213937\\r\\n\r\n"] +[342.055383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496217 (current time 26.7989646165)\r\n"] +[342.058414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.058703, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.070409, "o", "81818181672139f0\\r\\n\r\n"] +[342.070655, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.071117, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498679 (current time 26.7989621545)\r\n"] +[342.074036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.08656, "o", "e91dee33b8d0d0cf\\r\\n\r\n"] +[342.087042, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994896525 (current time 26.798971181)\r\n"] +[342.090256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.090434, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.103628, "o", "66f0f07a00fa0064\\r\\n\r\n"] +[342.103978, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945825 (current time 26.798966251)\r\n"] +[342.107244, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.107425, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.119771, "o", "633031328c8c8c7b\\r\\n\r\n"] +[342.120135, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953815 (current time 26.798965452)\r\n"] +[342.12365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.123821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.136512, "o", "7aa5ffffff00657a\\r\\n\r\n"] +[342.136799, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.137057, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489454 (current time 26.7989713795)\r\n"] +[342.140154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.140335, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.152782, "o", "f0f0f0f0f0f0f0f0\\r\\n\r\n"] +[342.153024, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.153199, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[342.156677, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.156866, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.169487, "o", "d0f0f0f0f0f0f0f0\\r\\n\r\n"] +[342.169728, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.170034, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491204 (current time 26.7989696295)\r\n"] +[342.173389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.173507, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[342.173627, "o", "[tsffs info] Resuming simulation\r\n"] +[342.185402, "o", "3031323334353637\\r\\n\r\n"] +[342.185736, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[342.185914, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[342.189475, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.189595, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.189905, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.201991, "o", "66756a6e00103937\\r\\n\r\n"] +[342.202259, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497639 (current time 26.7989631945)\r\n"] +[342.205849, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.205894, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.21779, "o", "7575757575757575\\r\\n\r\n"] +[342.218145, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[342.218298, "o", "[tsffs info] Cancelling event with next time 2.9994991705 (current time 26.798961663)\r\n"] +[342.221946, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.222109, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.234058, "o", "92b2b24d66000000\\r\\n\r\n"] +[342.234555, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971525 (current time 26.798963681)\r\n"] +[342.238207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.238312, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.250415, "o", "66757a6e67213937\\r\\n\r\n"] +[342.250717, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.254741, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.254838, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.267245, "o", "20fefefe62636465\\r\\n\r\n"] +[342.267627, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.267835, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928355 (current time 26.798967998)\r\n"] +[342.271662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.271745, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.281099, "o", "708e8e303732\\r\\n\r\n"] +[342.28146, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611337 (current time 26.7988494965)\r\n"] +[342.284151, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.28437, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.296068, "o", "0130313233343536\\r\\n\r\n"] +[342.296364, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[342.298808, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.298988, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.310606, "o", "0101756601000000\\r\\n\r\n"] +[342.310795, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.311005, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008905 (current time 26.798959943)\r\n"] +[342.31354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.31371, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.32569, "o", "66757a6e67219337\\r\\n\r\n"] +[342.325918, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.326136, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.328982, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.329089, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.340987, "o", "66757a6e67213937\\r\\n\r\n"] +[342.341457, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.344131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.355849, "o", "6675930080000037\\r\\n\r\n"] +[342.356179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.356356, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002385 (current time 26.798960595)\r\n"] +[342.359102, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.359357, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.371931, "o", "66757a6e8a211bb8\\r\\n\r\n"] +[342.372175, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.372513, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940995 (current time 26.798966734)\r\n"] +[342.37535, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.37551, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.387447, "o", "433435e936383961\\r\\n\r\n"] +[342.38788, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498558 (current time 26.7989622755)\r\n"] +[342.390595, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.390692, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.39081, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.402977, "o", "66757a6e67213937\\r\\n\r\n"] +[342.40342, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.406606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.406797, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.418879, "o", "66757a6e67213937\\r\\n\r\n"] +[342.419259, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.419489, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.422876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.423135, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.435481, "o", "617f61616c6c6c6c\\r\\n\r\n"] +[342.435785, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.435988, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494039 (current time 26.7989667945)\r\n"] +[342.439581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.439718, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.439954, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.451901, "o", "66757a6e67213937\\r\\n\r\n"] +[342.452474, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.452673, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.45632, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.456428, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.468338, "o", "6675866e7a213937\\r\\n\r\n"] +[342.468907, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[342.469093, "o", "[tsffs info] Cancelling event with next time 2.9994972175 (current time 26.798963616)\r\n"] +[342.472565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.472818, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.472967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.484913, "o", "513838396180ffff\\r\\n\r\n"] +[342.485392, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495005 (current time 26.7989658285)\r\n"] +[342.489057, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.489312, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.489457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.496084, "o", "c4c414b4\\r\\n\r\n"] +[342.496592, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997241555 (current time 26.798736678)\r\n"] +[342.498944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.499137, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.50867, "o", "8bd98bd80b40\\r\\n\r\n"] +[342.509049, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996079205 (current time 26.798852913)\r\n"] +[342.511994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.512079, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.524423, "o", "f0f0f0f0f0f07a69\\r\\n\r\n"] +[342.524946, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492031 (current time 26.7989688025)\r\n"] +[342.527714, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.527912, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.540573, "o", "f0f0f0f00ff07a96\\r\\n\r\n"] +[342.541041, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492031 (current time 26.7989688025)\r\n"] +[342.543725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.543912, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.555843, "o", "66757a6e67213937\\r\\n\r\n"] +[342.556445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.559024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[342.559139, "o", "[tsffs info] Resuming simulation\r\n"] +[342.570833, "o", "3031323334353637\\r\\n\r\n"] +[342.57126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[342.57426, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.574435, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.587193, "o", "7e69697a7a7a7a7a\\r\\n\r\n"] +[342.587519, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.587702, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492587 (current time 26.7989682465)\r\n"] +[342.590756, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.590889, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.600642, "o", "c7cdc5c5c5c5\\r\\n\r\n"] +[342.601028, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.601301, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996055815 (current time 26.798855252)\r\n"] +[342.605145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.605345, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.618243, "o", "babababababa6666\\r\\n\r\n"] +[342.618607, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.618843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994866715 (current time 26.798974162)\r\n"] +[342.62239, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.622638, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.634764, "o", "66757a6e67213937\\r\\n\r\n"] +[342.635168, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.638766, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.638844, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.638946, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.651594, "o", "f0fc79696e673937\\r\\n\r\n"] +[342.651963, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.652256, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946765 (current time 26.798966157)\r\n"] +[342.655691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.655787, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.667846, "o", "4141416167757a75\\r\\n\r\n"] +[342.668246, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498723 (current time 26.7989621105)\r\n"] +[342.67191, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.67201, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.684091, "o", "02007a03e8213937\\r\\n\r\n"] +[342.684388, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.684577, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979795 (current time 26.798962854)\r\n"] +[342.688298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.688413, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.701619, "o", "f0f0f0f0f0f0f0f0\\r\\n\r\n"] +[342.701848, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[342.705548, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.705655, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.717848, "o", "ca66753333331300\\r\\n\r\n"] +[342.718118, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.71813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979895 (current time 26.798962844)\r\n"] +[342.721825, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.721935, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.734556, "o", "ff9640ff7150ff71\\r\\n\r\n"] +[342.734889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.735151, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492751 (current time 26.7989680825)\r\n"] +[342.738694, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.738774, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.751018, "o", "3937383961f0f002\\r\\n\r\n"] +[342.751182, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[342.751546, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497623 (current time 26.7989632105)\r\n"] +[342.755209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.755291, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.767914, "o", "00c2ebfe0c00c241\\r\\n\r\n"] +[342.768343, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[342.768459, "o", "[tsffs info] Cancelling event with next time 2.999492572 (current time 26.7989682615)\r\n"] +[342.772124, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.772311, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.78434, "o", "66757a6e67213937\\r\\n\r\n"] +[342.784801, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.788732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.800879, "o", "66757a6e67213937\\r\\n\r\n"] +[342.801361, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[342.805205, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.805362, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.817283, "o", "001000003137a830\\r\\n\r\n"] +[342.817573, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997315 (current time 26.798961102)\r\n"] +[342.821518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.821588, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.834097, "o", "3961f0f0f0f0f0f0\\r\\n\r\n"] +[342.834424, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493282 (current time 26.7989675515)\r\n"] +[342.838385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.850861, "o", "37383954f0f0f0f0\\r\\n\r\n"] +[342.85126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953225 (current time 26.798965511)\r\n"] +[342.855267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.867503, "o", "7a6e672139373839\\r\\n\r\n"] +[342.867913, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497267 (current time 26.7989635665)\r\n"] +[342.871733, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.872048, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.884362, "o", "7fd8f5d866666630\\r\\n\r\n"] +[342.884761, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494834 (current time 26.7989659995)\r\n"] +[342.888507, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.900645, "o", "66662139757a6e66\\r\\n\r\n"] +[342.900856, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972265 (current time 26.798963607)\r\n"] +[342.90482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.917176, "o", "667f7a7a006e6721\\r\\n\r\n"] +[342.917501, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952465 (current time 26.798965587)\r\n"] +[342.921405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.921581, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.934089, "o", "66757a6e9e9e9e9e\\r\\n\r\n"] +[342.93447, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492194 (current time 26.7989686395)\r\n"] +[342.938315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[342.938459, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.950399, "o", "7566666666666666\\r\\n\r\n"] +[342.950709, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949923 (current time 26.7989616035)\r\n"] +[342.954709, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.954825, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.954915, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.967655, "o", "f0f0f20400f0f0f2\\r\\n\r\n"] +[342.968039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493551 (current time 26.7989672825)\r\n"] +[342.97194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.972034, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[342.984384, "o", "66757a6e6721396e\\r\\n\r\n"] +[342.984705, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960565 (current time 26.798964777)\r\n"] +[342.988447, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[342.988557, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[342.988579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.000757, "o", "193937383961f0f0\\r\\n\r\n"] +[343.001009, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.001153, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974255 (current time 26.798963408)\r\n"] +[343.004928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.00503, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.017525, "o", "664141f0f0f0f0f0\\r\\n\r\n"] +[343.017854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494504 (current time 26.7989663295)\r\n"] +[343.021733, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.021804, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.021897, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.034151, "o", "414162417c757a7a\\r\\n\r\n"] +[343.034409, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.034658, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965525 (current time 26.798964281)\r\n"] +[343.038346, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.038457, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.038572, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.051303, "o", "414141bf41696e67\\r\\n\r\n"] +[343.051799, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.051972, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496437 (current time 26.7989643965)\r\n"] +[343.055576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.055798, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.067831, "o", "66757a6e67213937\\r\\n\r\n"] +[343.068147, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.068349, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.071877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.071896, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.072029, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.080235, "o", "ff012040f2\\r\\n\r\n"] +[343.080548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996674345 (current time 26.798793399)\r\n"] +[343.082907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.083096, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.095155, "o", "636465664141d80b\\r\\n\r\n"] +[343.095452, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.095824, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497643 (current time 26.7989631905)\r\n"] +[343.098172, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.110621, "o", "66757a6e02213937\\r\\n\r\n"] +[343.11101, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.11113, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974965 (current time 26.798963337)\r\n"] +[343.113859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.113956, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.12634, "o", "4e28282828282828\\r\\n\r\n"] +[343.126665, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.126862, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984895 (current time 26.798962344)\r\n"] +[343.129696, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.12978, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.141745, "o", "66757a6e67213937\\r\\n\r\n"] +[343.142187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.145032, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.151998, "o", "00ec74df\\r\\n\r\n"] +[343.152436, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997229105 (current time 26.798737923)\r\n"] +[343.15579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.155937, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.167939, "o", "66757a6e67213537\\r\\n\r\n"] +[343.168209, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.16847, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973225 (current time 26.798963511)\r\n"] +[343.172203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.172354, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.172516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.184618, "o", "66757a6e67213937\\r\\n\r\n"] +[343.18507, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.188675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.188833, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.189025, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.201199, "o", "66757a6e5a213937\\r\\n\r\n"] +[343.201603, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.20184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496241 (current time 26.7989645925)\r\n"] +[343.205467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.205585, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.218642, "o", "32332bd5d5bab22a\\r\\n\r\n"] +[343.219181, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.2192, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492402 (current time 26.7989684315)\r\n"] +[343.222909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.223043, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.235707, "o", "f87a6661f005fdfd\\r\\n\r\n"] +[343.236199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917165 (current time 26.798969117)\r\n"] +[343.239854, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.23997, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.252632, "o", "f87b696e67f0f0f0\\r\\n\r\n"] +[343.252786, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.252806, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492682 (current time 26.7989681515)\r\n"] +[343.256721, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.256797, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.271289, "o", "66757a6e67640037\\r\\n\r\n"] +[343.271505, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.271625, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[343.271637, "o", "[tsffs info] Cancelling event with next time 2.9994973675 (current time 26.798963466)\r\n"] +[343.274689, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.274728, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.274954, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.286099, "o", "66f0f87a696e67\\r\\n\r\n"] +[343.286309, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.286633, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999551679 (current time 26.7989091545)\r\n"] +[343.290046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.290176, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.302718, "o", "f00000ffff3af0f1\\r\\n\r\n"] +[343.303051, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.303205, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491159 (current time 26.7989696745)\r\n"] +[343.306873, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.307011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.319639, "o", "396162ffff40ffff\\r\\n\r\n"] +[343.319869, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.320045, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[343.320077, "o", "[tsffs info] Cancelling event with next time 2.9994903745 (current time 26.798970459)\r\n"] +[343.323584, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.323667, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.323814, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.335732, "o", "75758a7675757575\\r\\n\r\n"] +[343.336003, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.336127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498075 (current time 26.7989627585)\r\n"] +[343.339725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.339758, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.339801, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.35165, "o", "6928282828280028\\r\\n\r\n"] +[343.351885, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.351963, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997465 (current time 26.798961087)\r\n"] +[343.355569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.355627, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.355722, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.367828, "o", "73757a383961f0f0\\r\\n\r\n"] +[343.368011, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.368214, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496312 (current time 26.7989645215)\r\n"] +[343.371896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.372002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.383704, "o", "9721000038336697\\r\\n\r\n"] +[343.383999, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.384249, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499986 (current time 26.7989608475)\r\n"] +[343.388008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.388042, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.40012, "o", "66757a6e67213937\\r\\n\r\n"] +[343.40037, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.400446, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[343.400475, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.405196, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.405337, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.405381, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.417864, "o", "ef757a6e67211937\\r\\n\r\n"] +[343.418133, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.418238, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994949935 (current time 26.79896584)\r\n"] +[343.421933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.422061, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.433963, "o", "a830313031323334\\r\\n\r\n"] +[343.434226, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.434365, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499365 (current time 26.7989614685)\r\n"] +[343.438088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.438304, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.45025, "o", "6621089969757a40\\r\\n\r\n"] +[343.450629, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498442 (current time 26.7989623915)\r\n"] +[343.454412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.454537, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.458577, "o", "309c\\r\\n\r\n"] +[343.458949, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840058 (current time 26.7986207755)\r\n"] +[343.46135, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.473236, "o", "0000100f51f1e541\\r\\n\r\n"] +[343.473541, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972165 (current time 26.798963617)\r\n"] +[343.476106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.488515, "o", "f0f0f0f0f0f03866\\r\\n\r\n"] +[343.488773, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493197 (current time 26.7989676365)\r\n"] +[343.491769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.50414, "o", "6603d2f3a8cbf107\\r\\n\r\n"] +[343.504439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493195 (current time 26.7989676385)\r\n"] +[343.507686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.519505, "o", "6666215d30313233\\r\\n\r\n"] +[343.519782, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990535 (current time 26.79896178)\r\n"] +[343.523107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.523278, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.535196, "o", "6e67213937383961\\r\\n\r\n"] +[343.535363, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.535501, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984495 (current time 26.798962384)\r\n"] +[343.538762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.538931, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.551894, "o", "deaffe781bb8fe78\\r\\n\r\n"] +[343.552155, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.552231, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994880345 (current time 26.798972799)\r\n"] +[343.555616, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.555796, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.568233, "o", "3635360d0d0d0d0d\\r\\n\r\n"] +[343.568643, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[343.568878, "o", "[tsffs info] Cancelling event with next time 2.999494678 (current time 26.7989661555)\r\n"] +[343.572498, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.572687, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.572727, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.584732, "o", "66757a6e67213937\\r\\n\r\n"] +[343.584994, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.585178, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.588659, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.588868, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.601559, "o", "e0f0f0f0eff0f0e6\\r\\n\r\n"] +[343.601896, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897735 (current time 26.79897106)\r\n"] +[343.605624, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.605726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.617552, "o", "3541414141416675\\r\\n\r\n"] +[343.617894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.618157, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950013 (current time 26.7989607035)\r\n"] +[343.621896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.622008, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.622164, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.630763, "o", "d9d9d8d8d8\\r\\n\r\n"] +[343.631167, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.631369, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996643235 (current time 26.79879651)\r\n"] +[343.634029, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.63414, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.646442, "o", "66757a6e67213937\\r\\n\r\n"] +[343.64673, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.649537, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.649661, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.661946, "o", "f0f0f0f0f0e96675\\r\\n\r\n"] +[343.662299, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492969 (current time 26.7989678645)\r\n"] +[343.664823, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.676601, "o", "9393939393000093\\r\\n\r\n"] +[343.676963, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997975 (current time 26.798961036)\r\n"] +[343.679572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.6914, "o", "424242395e424242\\r\\n\r\n"] +[343.691746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989625 (current time 26.798961871)\r\n"] +[343.694581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.707541, "o", "66d2f09b9b9b9b9b\\r\\n\r\n"] +[343.707886, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491567 (current time 26.7989692665)\r\n"] +[343.710584, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.723288, "o", "a5a5a5a5a5a5f0f0\\r\\n\r\n"] +[343.723658, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911145 (current time 26.798969719)\r\n"] +[343.726327, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.738038, "o", "0000010041414141\\r\\n\r\n"] +[343.738238, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.738474, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501026 (current time 26.7989598075)\r\n"] +[343.741451, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.741586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.7536, "o", "66757a6e67213937\\r\\n\r\n"] +[343.753788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.753905, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.757118, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.757331, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.769312, "o", "66757a6e67213937\\r\\n\r\n"] +[343.769725, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.769818, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.773366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.77347, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.785225, "o", "6264656641414141\\r\\n\r\n"] +[343.785498, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.785679, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500048 (current time 26.7989607855)\r\n"] +[343.789031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.789254, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.789351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.802535, "o", "f0f0f0b7b7f0f07a\\r\\n\r\n"] +[343.802843, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[343.80294, "o", "[tsffs info] Cancelling event with next time 2.999490943 (current time 26.7989698905)\r\n"] +[343.806473, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.806628, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.818823, "o", "66207a6e00424242\\r\\n\r\n"] +[343.819164, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497985 (current time 26.7989628485)\r\n"] +[343.822747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.823037, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.835127, "o", "66757a6e67213937\\r\\n\r\n"] +[343.835538, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.838986, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.839102, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.847133, "o", "69696e6769\\r\\n\r\n"] +[343.847602, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996687395 (current time 26.798792094)\r\n"] +[343.85002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.86254, "o", "d80b66757a926721\\r\\n\r\n"] +[343.862873, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496299 (current time 26.7989645345)\r\n"] +[343.865366, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[343.865452, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.878239, "o", "6e37383961f0f0f0\\r\\n\r\n"] +[343.87858, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495245 (current time 26.7989655885)\r\n"] +[343.881136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.886648, "o", "401100\\r\\n\r\n"] +[343.886893, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.887082, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784759 (current time 26.7986760745)\r\n"] +[343.890236, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.89037, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.902319, "o", "668a672139303132\\r\\n\r\n"] +[343.902604, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.902804, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498882 (current time 26.7989619515)\r\n"] +[343.906298, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.906433, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[343.906572, "o", "[tsffs info] Resuming simulation\r\n"] +[343.918522, "o", "66757a6e67213937\\r\\n\r\n"] +[343.918864, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.918977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.92238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.922502, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.934398, "o", "4141414141414141\\r\\n\r\n"] +[343.93462, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.934715, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[343.938408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.938524, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.938631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.950754, "o", "66757a6e67213937\\r\\n\r\n"] +[343.951187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[343.955009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.955169, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.967148, "o", "626262620b0b6232\\r\\n\r\n"] +[343.967477, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949804 (current time 26.7989627935)\r\n"] +[343.971307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.971511, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[343.983475, "o", "66757a6e67373867\\r\\n\r\n"] +[343.983767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[343.983919, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497021 (current time 26.7989638125)\r\n"] +[343.98779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[343.987885, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[343.988096, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.000458, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[344.000786, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.001026, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[344.004752, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.004868, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[344.005011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.017775, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[344.01804, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.018212, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[344.022007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.022112, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[344.022275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.038733, "o", "015151\\r\\n\r\n"] +[344.03981, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[344.042727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.042853, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.04795, "o", "015151\\r\\n\r\n"] +[344.048276, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[344.050596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.056146, "o", "01fa20\\r\\n\r\n"] +[344.056427, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823465 (current time 26.798678487)\r\n"] +[344.059108, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.070985, "o", "214141414e414120\\r\\n\r\n"] +[344.071181, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[344.07125, "o", "[tsffs info] Cancelling event with next time 2.999499408 (current time 26.7989614255)\r\n"] +[344.074386, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.074466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.086803, "o", "7b7b7b7b7b02007b\\r\\n\r\n"] +[344.087113, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[344.087137, "o", "[tsffs info] Cancelling event with next time 2.999493254 (current time 26.7989675795)\r\n"] +[344.090489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.090625, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.102365, "o", "3031323334353641\\r\\n\r\n"] +[344.102726, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.102866, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003705 (current time 26.798960463)\r\n"] +[344.106261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.106347, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.115728, "o", "0400d8a10000\\r\\n\r\n"] +[344.116032, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996121615 (current time 26.798848672)\r\n"] +[344.119659, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.11984, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.123924, "o", "5173\\r\\n\r\n"] +[344.124272, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.12445, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411785 (current time 26.798619655)\r\n"] +[344.126952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.127072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.13986, "o", "cccc6721cbcccccc\\r\\n\r\n"] +[344.140149, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.140284, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999486385 (current time 26.7989744485)\r\n"] +[344.142965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.143127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.154868, "o", "0130313233343536\\r\\n\r\n"] +[344.155187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[344.158248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.158395, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.170297, "o", "72666666666675fc\\r\\n\r\n"] +[344.170661, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497046 (current time 26.7989637875)\r\n"] +[344.174003, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.174074, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.186015, "o", "3031323334fa0000\\r\\n\r\n"] +[344.186422, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949844 (current time 26.7989623935)\r\n"] +[344.189919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.190155, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.195411, "o", "035168\\r\\n\r\n"] +[344.195796, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978435 (current time 26.7986764835)\r\n"] +[344.198043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.198173, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.209992, "o", "3031323334353637\\r\\n\r\n"] +[344.210283, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[344.212919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.213033, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.218254, "o", "675121\\r\\n\r\n"] +[344.218535, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.218743, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784355 (current time 26.7986764785)\r\n"] +[344.221958, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.222153, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.233958, "o", "0151515100515151\\r\\n\r\n"] +[344.234287, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.234606, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500605 (current time 26.7989602285)\r\n"] +[344.238411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.238559, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.245229, "o", "51ff5151\\r\\n\r\n"] +[344.245564, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.245738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725174 (current time 26.7987356595)\r\n"] +[344.248031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.248236, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.260475, "o", "c920c93b3b3b3b3b\\r\\n\r\n"] +[344.260779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[344.260909, "o", "[tsffs info] Cancelling event with next time 2.9994922165 (current time 26.798968617)\r\n"] +[344.263598, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.263802, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.275378, "o", "0115401515151515\\r\\n\r\n"] +[344.275683, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005065 (current time 26.798960327)\r\n"] +[344.278576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.290471, "o", "4167757a66666969\\r\\n\r\n"] +[344.290764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981475 (current time 26.798962686)\r\n"] +[344.293561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.293694, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.306786, "o", "a857a8a862ffffb5\\r\\n\r\n"] +[344.307086, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949041 (current time 26.7989704235)\r\n"] +[344.309767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.309923, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.315013, "o", "013031\\r\\n\r\n"] +[344.315352, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847015 (current time 26.798676132)\r\n"] +[344.317887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.317976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.329755, "o", "1919191919191919\\r\\n\r\n"] +[344.330064, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.330187, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[344.330339, "o", "[tsffs info] Cancelling event with next time 2.9994995665 (current time 26.798961267)\r\n"] +[344.332724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.345564, "o", "161a1a7b7b7b7b7b\\r\\n\r\n"] +[344.345952, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920735 (current time 26.79896876)\r\n"] +[344.348668, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.36132, "o", "5541669b649b8c9b\\r\\n\r\n"] +[344.361636, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.361967, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494972 (current time 26.7989658615)\r\n"] +[344.364457, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.364622, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.376927, "o", "d30b02006e6e6e6e\\r\\n\r\n"] +[344.377227, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.377608, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493293 (current time 26.7989675405)\r\n"] +[344.38019, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.38027, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.383991, "o", "0110\\r\\n\r\n"] +[344.384441, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415255 (current time 26.798619308)\r\n"] +[344.38807, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.388261, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.40133, "o", "0c0df31fc0261f1c\\r\\n\r\n"] +[344.401652, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.402058, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994923385 (current time 26.798968495)\r\n"] +[344.405556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.40569, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.409704, "o", "0151\\r\\n\r\n"] +[344.410183, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[344.412672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.412806, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.425004, "o", "4141414166757a7a\\r\\n\r\n"] +[344.42534, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.425611, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497741 (current time 26.7989630925)\r\n"] +[344.428307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.428462, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.440174, "o", "0151303132333435\\r\\n\r\n"] +[344.440504, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[344.44334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.443548, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.447206, "o", "0151\\r\\n\r\n"] +[344.447575, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[344.449564, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.449711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.461975, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[344.46253, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[344.464955, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.465251, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.469038, "o", "0130\\r\\n\r\n"] +[344.469404, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.469714, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984148 (current time 26.7986193535)\r\n"] +[344.472723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.472918, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.476852, "o", "5153\\r\\n\r\n"] +[344.47722, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984123 (current time 26.7986196035)\r\n"] +[344.479644, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.479902, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.490478, "o", "21393738019ec7\\r\\n\r\n"] +[344.490899, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.490912, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995544 (current time 26.7989064335)\r\n"] +[344.493738, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.493986, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.506341, "o", "65757a8669a89b75\\r\\n\r\n"] +[344.506876, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495846 (current time 26.7989649875)\r\n"] +[344.509679, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.509782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.521615, "o", "013f513031323324\\r\\n\r\n"] +[344.521915, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.522219, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993805 (current time 26.798961453)\r\n"] +[344.525117, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.525363, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.533624, "o", "becccc4405\\r\\n\r\n"] +[344.534166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996638425 (current time 26.798796991)\r\n"] +[344.537869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.537969, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.550347, "o", "108a8a8a8a8a3132\\r\\n\r\n"] +[344.550659, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944295 (current time 26.798966404)\r\n"] +[344.554729, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.555153, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.566811, "o", "3031203341414141\\r\\n\r\n"] +[344.567112, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.567392, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006595 (current time 26.798960174)\r\n"] +[344.571314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.571529, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.583212, "o", "3031323334353637\\r\\n\r\n"] +[344.583572, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[344.583681, "o", "[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[344.587722, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.587953, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.600013, "o", "6721030366f0f0f0\\r\\n\r\n"] +[344.600354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.60074, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968115 (current time 26.798964022)\r\n"] +[344.604607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.604803, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.618949, "o", "e7ae727b095b5130\\r\\n\r\n"] +[344.619535, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.619828, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942695 (current time 26.798966564)\r\n"] +[344.627433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.627589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.643424, "o", "e2e2e2deaffe8718\\r\\n\r\n"] +[344.643773, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489388 (current time 26.7989714455)\r\n"] +[344.64928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.649546, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.663989, "o", "ff7af0f0f87a696e\\r\\n\r\n"] +[344.664395, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.664701, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490357 (current time 26.7989704765)\r\n"] +[344.672349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.672488, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.688964, "o", "3043323334353636\\r\\n\r\n"] +[344.689404, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500211 (current time 26.7989606225)\r\n"] +[344.692469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.692522, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.704873, "o", "1a50515151015151\\r\\n\r\n"] +[344.705218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949942 (current time 26.7989614135)\r\n"] +[344.708464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.708676, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.711315, "o", "ee\\r\\n\r\n"] +[344.711611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998956995 (current time 26.798565134)\r\n"] +[344.71349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.720151, "o", "00010030\\r\\n\r\n"] +[344.720438, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999728144 (current time 26.7987326895)\r\n"] +[344.723523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.723586, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.736279, "o", "f0f0bff0ef32f0f0\\r\\n\r\n"] +[344.736696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948984 (current time 26.7989709935)\r\n"] +[344.740169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.740244, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[344.740444, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.745523, "o", "304433\\r\\n\r\n"] +[344.745854, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997844915 (current time 26.798676342)\r\n"] +[344.74785, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.747935, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.760133, "o", "66757a7ae2e2e1e2\\r\\n\r\n"] +[344.760399, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.760469, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492937 (current time 26.7989678965)\r\n"] +[344.763099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.775849, "o", "7a696e1017deaffe\\r\\n\r\n"] +[344.776121, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490585 (current time 26.7989702485)\r\n"] +[344.778991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.785526, "o", "51015151\\r\\n\r\n"] +[344.785846, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997277495 (current time 26.798733084)\r\n"] +[344.789235, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.789338, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.794771, "o", "01ff48\\r\\n\r\n"] +[344.795074, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781993 (current time 26.7986788405)\r\n"] +[344.797242, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.810083, "o", "1b1b1b1b1b1b1b1b\\r\\n\r\n"] +[344.810365, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994917025 (current time 26.798969131)\r\n"] +[344.812965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.825435, "o", "503839616c6c6c6c\\r\\n\r\n"] +[344.825808, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951865 (current time 26.798965647)\r\n"] +[344.828514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.828628, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[344.828763, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.840448, "o", "7676763835323334\\r\\n\r\n"] +[344.840758, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499677 (current time 26.7989611565)\r\n"] +[344.843348, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.855393, "o", "273132cc64353637\\r\\n\r\n"] +[344.855696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977115 (current time 26.798963122)\r\n"] +[344.858591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.858671, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.864972, "o", "01510131\\r\\n\r\n"] +[344.865291, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997279215 (current time 26.798732912)\r\n"] +[344.867879, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.88072, "o", "b5b5e57b7a696e66\\r\\n\r\n"] +[344.880999, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994926975 (current time 26.798968136)\r\n"] +[344.883468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.895737, "o", "51404040a5e95151\\r\\n\r\n"] +[344.896006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980055 (current time 26.798962828)\r\n"] +[344.898489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.910343, "o", "3031323334353637\\r\\n\r\n"] +[344.910633, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[344.913354, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.917182, "o", "0151\\r\\n\r\n"] +[344.917532, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[344.921189, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.921263, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[344.921275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.934933, "o", "0b0bffffff7f0bf4\\r\\n\r\n"] +[344.935262, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.935348, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487268 (current time 26.7989735655)\r\n"] +[344.938945, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.93904, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.951115, "o", "512053ac53105354\\r\\n\r\n"] +[344.951492, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980855 (current time 26.798962748)\r\n"] +[344.955256, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.955423, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.968376, "o", "ffffe0e0e0e0e2e0\\r\\n\r\n"] +[344.968729, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[344.969018, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488635 (current time 26.7989721985)\r\n"] +[344.97167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[344.971831, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[344.984094, "o", "fac83700ff373737\\r\\n\r\n"] +[344.984611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494042 (current time 26.7989667915)\r\n"] +[344.988397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[344.988526, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.000743, "o", "38c6c62b41416940\\r\\n\r\n"] +[345.00112, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.00138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965675 (current time 26.798964266)\r\n"] +[345.005008, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.005323, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.017805, "o", "4531454545452c45\\r\\n\r\n"] +[345.018009, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.018561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994988415 (current time 26.798961992)\r\n"] +[345.021994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.022081, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.022143, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.035356, "o", "1066107a696e3333\\r\\n\r\n"] +[345.035731, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.035945, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497759 (current time 26.7989630745)\r\n"] +[345.03945, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.039579, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.0397, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.048972, "o", "0151ef014151\\r\\n\r\n"] +[345.049289, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.049489, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999611824 (current time 26.7988490095)\r\n"] +[345.053087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.053194, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.053418, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.06542, "o", "0151513031323334\\r\\n\r\n"] +[345.065802, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.066046, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[345.069629, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.069783, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.069931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.081736, "o", "0151513031323334\\r\\n\r\n"] +[345.082115, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.082326, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005815 (current time 26.798960252)\r\n"] +[345.085941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.086122, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.08631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.091573, "o", "517551\\r\\n\r\n"] +[345.092009, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784306 (current time 26.7986765275)\r\n"] +[345.09469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.094825, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.097154, "o", "30\\r\\n\r\n"] +[345.097553, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981805 (current time 26.798562653)\r\n"] +[345.099521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.099688, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.111655, "o", "00d6d6d631323333\\r\\n\r\n"] +[345.112122, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968365 (current time 26.798963997)\r\n"] +[345.114628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.11473, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.127306, "o", "016f3a187fffffff\\r\\n\r\n"] +[345.127717, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.127977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489309 (current time 26.7989715245)\r\n"] +[345.13043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.130574, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.135979, "o", "018a01\\r\\n\r\n"] +[345.136368, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783482 (current time 26.7986773515)\r\n"] +[345.139906, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.14006, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.140117, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.152841, "o", "2ffffffffffbfb05\\r\\n\r\n"] +[345.153406, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.153617, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484654 (current time 26.7989761795)\r\n"] +[345.156969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.157093, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.169128, "o", "414141410e414189\\r\\n\r\n"] +[345.169472, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499107 (current time 26.7989617265)\r\n"] +[345.173149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.173266, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.182951, "o", "ecf8f8f85732\\r\\n\r\n"] +[345.183313, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996074865 (current time 26.798853347)\r\n"] +[345.187259, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.187326, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.191424, "o", "3a84\\r\\n\r\n"] +[345.191751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400385 (current time 26.798620795)\r\n"] +[345.194169, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.205955, "o", "41412d6665303132\\r\\n\r\n"] +[345.206229, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949913 (current time 26.7989617035)\r\n"] +[345.208795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.208906, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.218545, "o", "100000ffff52\\r\\n\r\n"] +[345.21897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996094905 (current time 26.798851343)\r\n"] +[345.222349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.222499, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.23428, "o", "0130303030303030\\r\\n\r\n"] +[345.234618, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501004 (current time 26.7989598295)\r\n"] +[345.238385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.238567, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.242591, "o", "0151\\r\\n\r\n"] +[345.242892, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[345.24523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.257385, "o", "510033b131313233\\r\\n\r\n"] +[345.257589, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995245 (current time 26.798961309)\r\n"] +[345.260304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.264247, "o", "660b\\r\\n\r\n"] +[345.264482, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400915 (current time 26.798620742)\r\n"] +[345.266565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.266708, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.279016, "o", "2929290a0a0a0b51\\r\\n\r\n"] +[345.279288, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958455 (current time 26.798964988)\r\n"] +[345.281737, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.293942, "o", "9a00e66440e3010c\\r\\n\r\n"] +[345.294359, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957835 (current time 26.79896505)\r\n"] +[345.296844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.302228, "o", "195051\\r\\n\r\n"] +[345.302536, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784388 (current time 26.7986764455)\r\n"] +[345.305778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.31804, "o", "c938660bd80b6632\\r\\n\r\n"] +[345.31839, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495295 (current time 26.7989655385)\r\n"] +[345.321997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.322151, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.334053, "o", "0121010101010101\\r\\n\r\n"] +[345.334492, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501268 (current time 26.7989595655)\r\n"] +[345.338329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.338464, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.351575, "o", "ffffd4d4d4d4d4d4\\r\\n\r\n"] +[345.352021, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.352087, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994882725 (current time 26.798972561)\r\n"] +[345.355909, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.355982, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.368, "o", "26261c2626262626\\r\\n\r\n"] +[345.368301, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.368518, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498908 (current time 26.7989619255)\r\n"] +[345.371995, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.372194, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.372331, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.378046, "o", "0cdaed\\r\\n\r\n"] +[345.378389, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.378567, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999778722 (current time 26.7986821115)\r\n"] +[345.380779, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.381022, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.392798, "o", "025151515151c251\\r\\n\r\n"] +[345.393148, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992935 (current time 26.79896154)\r\n"] +[345.39581, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.408341, "o", "00ea60e5e2c2e5f2\\r\\n\r\n"] +[345.408712, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921805 (current time 26.798968653)\r\n"] +[345.411549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.423359, "o", "4020204150505050\\r\\n\r\n"] +[345.423655, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500744 (current time 26.7989600895)\r\n"] +[345.426248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.437934, "o", "3031323334353637\\r\\n\r\n"] +[345.438455, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[345.44128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.453734, "o", "8f8f64b80b7d7d42\\r\\n\r\n"] +[345.45402, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.454164, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492746 (current time 26.7989680875)\r\n"] +[345.457262, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.457331, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.457455, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.462593, "o", "515151\\r\\n\r\n"] +[345.462889, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.463127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99978445 (current time 26.7986763835)\r\n"] +[345.465094, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.465215, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.477059, "o", "3738373839616266\\r\\n\r\n"] +[345.477338, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.477616, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499566 (current time 26.7989612675)\r\n"] +[345.480165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.480341, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.491982, "o", "2223803031322223\\r\\n\r\n"] +[345.49242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500588 (current time 26.7989602455)\r\n"] +[345.495492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.501039, "o", "40ff32\\r\\n\r\n"] +[345.501496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997820835 (current time 26.79867875)\r\n"] +[345.505097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.505188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.517115, "o", "36c89e9090909090\\r\\n\r\n"] +[345.517415, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.517592, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497336 (current time 26.7989634975)\r\n"] +[345.521469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.521666, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.528621, "o", "af01af51\\r\\n\r\n"] +[345.528925, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.529126, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997230865 (current time 26.798737747)\r\n"] +[345.531316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.531572, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.543533, "o", "00b60000000030de\\r\\n\r\n"] +[345.543985, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976255 (current time 26.798963208)\r\n"] +[345.546655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.546794, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.558453, "o", "6465664130313233\\r\\n\r\n"] +[345.559001, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500165 (current time 26.7989606685)\r\n"] +[345.561908, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.562083, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.574041, "o", "0247484747a247ea\\r\\n\r\n"] +[345.574496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[345.57466, "o", "[tsffs info] Cancelling event with next time 2.999496435 (current time 26.7989643985)\r\n"] +[345.577134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.590387, "o", "fefefeeafefefefe\\r\\n\r\n"] +[345.590878, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.591053, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994810335 (current time 26.7989798)\r\n"] +[345.593866, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.594111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.602389, "o", "bfa501bfa5\\r\\n\r\n"] +[345.602681, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.602867, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663921 (current time 26.7987969125)\r\n"] +[345.606226, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.606348, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.606521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.618306, "o", "3031323334353637\\r\\n\r\n"] +[345.618522, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.618904, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[345.62233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.622538, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.635231, "o", "6eb2bbb292b2a1c6\\r\\n\r\n"] +[345.635607, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.635741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911075 (current time 26.798969726)\r\n"] +[345.639453, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.639518, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.652105, "o", "f808f8f8f8f8f852\\r\\n\r\n"] +[345.652528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.652689, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922455 (current time 26.798968588)\r\n"] +[345.656482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.656629, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.669227, "o", "c5c5c5c5c500f1f0\\r\\n\r\n"] +[345.669736, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.669932, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492142 (current time 26.7989686915)\r\n"] +[345.673238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.673473, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.67767, "o", "2d2d\\r\\n\r\n"] +[345.67794, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.678216, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389805 (current time 26.798621853)\r\n"] +[345.680091, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.68023, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.692684, "o", "0161f0f0f0f0dddd\\r\\n\r\n"] +[345.693159, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491153 (current time 26.7989696805)\r\n"] +[345.695944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.696034, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.702651, "o", "01513e3e\\r\\n\r\n"] +[345.703047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.703225, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997253495 (current time 26.798735484)\r\n"] +[345.706509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.706722, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.706824, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.719282, "o", "66666666dfdfc9c9\\r\\n\r\n"] +[345.719424, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.719586, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492389 (current time 26.7989684445)\r\n"] +[345.723343, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.723578, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.727452, "o", "5151\\r\\n\r\n"] +[345.727961, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[345.729944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.730079, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.741783, "o", "350064a831313031\\r\\n\r\n"] +[345.742134, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.742312, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993495 (current time 26.798961484)\r\n"] +[345.74496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.745062, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.751995, "o", "017fffff\\r\\n\r\n"] +[345.752308, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.752626, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997215255 (current time 26.798739308)\r\n"] +[345.756002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.756119, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.767987, "o", "3233363636363667\\r\\n\r\n"] +[345.768235, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998485 (current time 26.798960985)\r\n"] +[345.772221, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.772313, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.77236, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.77623, "o", "5151\\r\\n\r\n"] +[345.776531, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.776712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[345.778966, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.779159, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.791508, "o", "71fe781bb8b8b8b8\\r\\n\r\n"] +[345.79183, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.792021, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491616 (current time 26.7989692175)\r\n"] +[345.794688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.794923, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.798623, "o", "0151\\r\\n\r\n"] +[345.79897, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[345.801712, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.801859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.81433, "o", "c201eaaaaaaa4141\\r\\n\r\n"] +[345.814779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490424 (current time 26.7989704095)\r\n"] +[345.818203, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.818354, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.818395, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.822805, "o", "1631\\r\\n\r\n"] +[345.823038, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.823257, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841301 (current time 26.7986195325)\r\n"] +[345.825802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.825909, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.825953, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.837676, "o", "551313131313136e\\r\\n\r\n"] +[345.837951, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.838119, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994992435 (current time 26.79896159)\r\n"] +[345.841199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.841241, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.841516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.845203, "o", "0101\\r\\n\r\n"] +[345.845551, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.845737, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415255 (current time 26.798619308)\r\n"] +[345.847833, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.84808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.860219, "o", "bebe1616e9161616\\r\\n\r\n"] +[345.860737, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994942245 (current time 26.798966609)\r\n"] +[345.863359, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.876212, "o", "7bb97b8800ff03e8\\r\\n\r\n"] +[345.876605, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928655 (current time 26.798967968)\r\n"] +[345.879424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.881834, "o", "a5\\r\\n\r\n"] +[345.882171, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998969485 (current time 26.798563885)\r\n"] +[345.884506, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.895416, "o", "0f7fff51303030\\r\\n\r\n"] +[345.895832, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995524665 (current time 26.798908367)\r\n"] +[345.898192, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.89841, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.910446, "o", "d801013032323334\\r\\n\r\n"] +[345.910755, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.910902, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499401 (current time 26.7989614325)\r\n"] +[345.913621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.913857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.926251, "o", "ff7fffff31323335\\r\\n\r\n"] +[345.926749, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.926911, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491676 (current time 26.7989691575)\r\n"] +[345.929505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.929626, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.934894, "o", "525151\\r\\n\r\n"] +[345.935284, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.935494, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784428 (current time 26.7986764055)\r\n"] +[345.938845, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.938963, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.939076, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.952155, "o", "6e6c17deaffe781b\\r\\n\r\n"] +[345.952501, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.952702, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893615 (current time 26.798971472)\r\n"] +[345.956557, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.956702, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[345.956824, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.96296, "o", "016150\\r\\n\r\n"] +[345.96328, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.963627, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784586 (current time 26.7986762475)\r\n"] +[345.965697, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.970029, "o", "516c\\r\\n\r\n"] +[345.970384, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998400515 (current time 26.798620782)\r\n"] +[345.973456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[345.973666, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.985541, "o", "9393939393939307\\r\\n\r\n"] +[345.986047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[345.986204, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994993235 (current time 26.79896151)\r\n"] +[345.989569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[345.989794, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[345.992328, "o", "20\\r\\n\r\n"] +[345.992563, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898204 (current time 26.7985626295)\r\n"] +[345.99515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.007332, "o", "66757a7a696e6c17\\r\\n\r\n"] +[346.007729, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.008052, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[346.0106, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.010747, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.016193, "o", "7fff50\\r\\n\r\n"] +[346.016678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780709 (current time 26.7986801245)\r\n"] +[346.020489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.02073, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.020909, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.032934, "o", "ff2c3119d2070707\\r\\n\r\n"] +[346.033353, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.03341, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495488 (current time 26.7989653455)\r\n"] +[346.037693, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.037828, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.038064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.041707, "o", "0151\\r\\n\r\n"] +[346.042015, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.042127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[346.044791, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.044952, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.045, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.048909, "o", "06ae\\r\\n\r\n"] +[346.049243, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.049329, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998389795 (current time 26.798621854)\r\n"] +[346.052334, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.052533, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.061048, "o", "a8cbf001ff\\r\\n\r\n"] +[346.06129, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.06147, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999663829 (current time 26.7987970045)\r\n"] +[346.063802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.063967, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.068123, "o", "03ad\\r\\n\r\n"] +[346.068376, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.06854, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839077 (current time 26.7986217565)\r\n"] +[346.071831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.072146, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.076199, "o", "0c52\\r\\n\r\n"] +[346.076593, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.076624, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[346.076681, "o", "[tsffs info] Cancelling event with next time 2.999840176 (current time 26.7986206575)\r\n"] +[346.079088, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.079115, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.079141, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.083574, "o", "fddf\\r\\n\r\n"] +[346.08377, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.083901, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998364815 (current time 26.798624352)\r\n"] +[346.087798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.087857, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.087982, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.093204, "o", "015186\\r\\n\r\n"] +[346.093513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.093645, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997843955 (current time 26.798676438)\r\n"] +[346.095973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.096007, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.108796, "o", "7ae2c0e2e266757a\\r\\n\r\n"] +[346.109405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493028 (current time 26.7989678055)\r\n"] +[346.112069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.112264, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.12493, "o", "5b5b5b5b5b5b5b40\\r\\n\r\n"] +[346.125285, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921915 (current time 26.798968642)\r\n"] +[346.128245, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.140261, "o", "f0f0103a62303132\\r\\n\r\n"] +[346.140711, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497157 (current time 26.7989636765)\r\n"] +[346.143493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.155971, "o", "00634f3031f6f6f6\\r\\n\r\n"] +[346.156218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954155 (current time 26.798965418)\r\n"] +[346.158869, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.170752, "o", "6440353830313201\\r\\n\r\n"] +[346.171028, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500414 (current time 26.7989604195)\r\n"] +[346.174137, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.174268, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.186851, "o", "affe781bb8b823dc\\r\\n\r\n"] +[346.187213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489504 (current time 26.7989713295)\r\n"] +[346.190531, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.190623, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.190804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.196081, "o", "00c2f4\\r\\n\r\n"] +[346.1964, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822305 (current time 26.798678603)\r\n"] +[346.198582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.198746, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.210697, "o", "7a7a696e67213233\\r\\n\r\n"] +[346.211039, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496369 (current time 26.7989644645)\r\n"] +[346.213718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.21388, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.225572, "o", "3031323334353637\\r\\n\r\n"] +[346.225902, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[346.228802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.228934, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.24158, "o", "51ffff5151515100\\r\\n\r\n"] +[346.241813, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.241953, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495579 (current time 26.7989652545)\r\n"] +[346.244818, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.251581, "o", "66015051\\r\\n\r\n"] +[346.251809, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.252064, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727643 (current time 26.7987331905)\r\n"] +[346.255518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.255589, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.268384, "o", "6f78100000e5e5e5\\r\\n\r\n"] +[346.268736, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.26883, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495519 (current time 26.7989653145)\r\n"] +[346.27272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.2728, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.27985, "o", "4cd8ff8c\\r\\n\r\n"] +[346.280162, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997214465 (current time 26.798739387)\r\n"] +[346.282415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.282643, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.286618, "o", "0151\\r\\n\r\n"] +[346.286879, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[346.290127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.290301, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.302741, "o", "f8c9303d32898989\\r\\n\r\n"] +[346.303161, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.303311, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958645 (current time 26.798964969)\r\n"] +[346.306751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.306881, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.313367, "o", "01505151\\r\\n\r\n"] +[346.313676, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.313896, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727782 (current time 26.7987330515)\r\n"] +[346.315957, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.316086, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.328094, "o", "66750029705666ff\\r\\n\r\n"] +[346.328363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497358 (current time 26.7989634755)\r\n"] +[346.330821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.336324, "o", "01c251\\r\\n\r\n"] +[346.336662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783443 (current time 26.7986773905)\r\n"] +[346.339818, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.351842, "o", "8666757a6e678686\\r\\n\r\n"] +[346.352122, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.352386, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968665 (current time 26.798963967)\r\n"] +[346.355865, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.356003, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.356102, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.36277, "o", "4000ff80\\r\\n\r\n"] +[346.363261, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997253575 (current time 26.798735476)\r\n"] +[346.365408, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.377256, "o", "3435666666666666\\r\\n\r\n"] +[346.377673, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499445 (current time 26.7989613885)\r\n"] +[346.380188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.380234, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.385873, "o", "ff5151\\r\\n\r\n"] +[346.386066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997819995 (current time 26.798678834)\r\n"] +[346.389488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.389592, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.389917, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.401559, "o", "3232323230313232\\r\\n\r\n"] +[346.40183, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[346.402018, "o", "[tsffs info] Cancelling event with next time 2.999500599 (current time 26.7989602345)\r\n"] +[346.405795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.411029, "o", "510151\\r\\n\r\n"] +[346.411365, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[346.413404, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.413751, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.425364, "o", "3536373839616263\\r\\n\r\n"] +[346.425764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[346.428565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.440147, "o", "2121212121212121\\r\\n\r\n"] +[346.440458, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.440658, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[346.443173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.443316, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.455193, "o", "0010010064f25301\\r\\n\r\n"] +[346.455547, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.455793, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994996785 (current time 26.798961155)\r\n"] +[346.458558, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.458835, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.463963, "o", "ff5251\\r\\n\r\n"] +[346.464522, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997819775 (current time 26.798678856)\r\n"] +[346.466362, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.466667, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.478316, "o", "3031323334353642\\r\\n\r\n"] +[346.478648, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003485 (current time 26.798960485)\r\n"] +[346.481209, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.481526, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.493306, "o", "015137383961f0f0\\r\\n\r\n"] +[346.49363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497785 (current time 26.7989630485)\r\n"] +[346.49638, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.496658, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.509499, "o", "7a7a7a0b7a7a7a7a\\r\\n\r\n"] +[346.509779, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.510005, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908495 (current time 26.798969984)\r\n"] +[346.512545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.512843, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.51653, "o", "0151\\r\\n\r\n"] +[346.516892, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.517233, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[346.520989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.521124, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.533275, "o", "333435ca37c83961\\r\\n\r\n"] +[346.533479, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.533745, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964705 (current time 26.798964363)\r\n"] +[346.537711, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.537878, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.538133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.550309, "o", "7a7a7a7a67313233\\r\\n\r\n"] +[346.55059, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.550849, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954145 (current time 26.798965419)\r\n"] +[346.554774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.554975, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.555175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.566864, "o", "3334353637383961\\r\\n\r\n"] +[346.567193, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.567384, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[346.571365, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.571546, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.571757, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.583452, "o", "3031323334353637\\r\\n\r\n"] +[346.583854, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.583984, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[346.58809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.588391, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.588498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.600958, "o", "03d20ca8cbf107c9\\r\\n\r\n"] +[346.601217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.601621, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492184 (current time 26.7989686495)\r\n"] +[346.605163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.605423, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.605805, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.617896, "o", "fafb992139373839\\r\\n\r\n"] +[346.618431, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.618613, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494943 (current time 26.7989658905)\r\n"] +[346.622049, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.622353, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.62242, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.634099, "o", "2424242400242424\\r\\n\r\n"] +[346.634528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.634665, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005115 (current time 26.798960322)\r\n"] +[346.638476, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.638636, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.651515, "o", "ea01ebeaeaea3031\\r\\n\r\n"] +[346.651714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.651865, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994890215 (current time 26.798971812)\r\n"] +[346.655841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.655959, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.65996, "o", "0902\\r\\n\r\n"] +[346.660236, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413165 (current time 26.798619517)\r\n"] +[346.662589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.674644, "o", "51515151ae3652a9\\r\\n\r\n"] +[346.675033, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966795 (current time 26.798964154)\r\n"] +[346.678025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.678236, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.690023, "o", "0000000099999999\\r\\n\r\n"] +[346.690283, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.690557, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998265 (current time 26.798961007)\r\n"] +[346.693161, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.693343, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.697082, "o", "1817\\r\\n\r\n"] +[346.697426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411585 (current time 26.798619675)\r\n"] +[346.699483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.699779, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.711768, "o", "66757a7a38396166\\r\\n\r\n"] +[346.711951, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497213 (current time 26.7989636205)\r\n"] +[346.714655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.723818, "o", "767676765150\\r\\n\r\n"] +[346.72431, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999613344 (current time 26.7988474895)\r\n"] +[346.726952, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.739519, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[346.739968, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[346.742754, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.742863, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.755214, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[346.7557, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.756001, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[346.758862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.758998, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.786893, "o", "d80b40a5e9\\r\\n\r\n"] +[346.787871, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[346.791127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.803888, "o", "e71c30311c1c1c1c\\r\\n\r\n"] +[346.804289, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994936005 (current time 26.798967233)\r\n"] +[346.807332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.807428, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.819206, "o", "0130313031323334\\r\\n\r\n"] +[346.819577, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.820034, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500708 (current time 26.7989601255)\r\n"] +[346.823199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.823371, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.835785, "o", "d80b40a5d85b5b0b\\r\\n\r\n"] +[346.836157, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.836503, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492232 (current time 26.7989686015)\r\n"] +[346.83988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.839995, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.85197, "o", "cb67402100100000\\r\\n\r\n"] +[346.85225, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.852633, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498604 (current time 26.7989622295)\r\n"] +[346.856121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.856221, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.868609, "o", "0b400b40405cd8e9\\r\\n\r\n"] +[346.8689, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.869231, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494582 (current time 26.7989662515)\r\n"] +[346.872789, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.872931, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.873122, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.885583, "o", "f3a8cbf107c962c2\\r\\n\r\n"] +[346.885978, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.886178, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919295 (current time 26.798968904)\r\n"] +[346.889733, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.889942, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.90197, "o", "fb31323334350080\\r\\n\r\n"] +[346.902303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498107 (current time 26.7989627265)\r\n"] +[346.905841, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[346.905991, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.918426, "o", "3166757a7a69ff66\\r\\n\r\n"] +[346.918946, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.91901, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948875 (current time 26.798965946)\r\n"] +[346.922745, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.922788, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.922981, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.935382, "o", "d8303132d8d8d8d8\\r\\n\r\n"] +[346.935894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.936022, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940565 (current time 26.798966777)\r\n"] +[346.939533, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.939615, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.939737, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.95178, "o", "0b40a5b730313233\\r\\n\r\n"] +[346.952062, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[346.95233, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971155 (current time 26.798963718)\r\n"] +[346.956159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[346.956424, "o", "[tsffs info] Resuming simulation\r\n"] +[346.968206, "o", "38626465657b2741\\r\\n\r\n"] +[346.968762, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498584 (current time 26.7989622495)\r\n"] +[346.972586, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[346.984569, "o", "5050413031323334\\r\\n\r\n"] +[346.985025, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500548 (current time 26.7989602855)\r\n"] +[346.988746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[346.988829, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[346.988949, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.001952, "o", "b80100a8a8a8a8a8\\r\\n\r\n"] +[347.002498, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.002663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932795 (current time 26.798967554)\r\n"] +[347.00653, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.006643, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.018668, "o", "40303031327d696e\\r\\n\r\n"] +[347.018988, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.01918, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497866 (current time 26.7989629675)\r\n"] +[347.022798, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.022978, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.035593, "o", "aaaa333536373839\\r\\n\r\n"] +[347.036055, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954385 (current time 26.798965395)\r\n"] +[347.039797, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.039997, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.046637, "o", "e9e9e964\\r\\n\r\n"] +[347.047089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997235125 (current time 26.798737321)\r\n"] +[347.049352, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.049653, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.06197, "o", "d02f2fd02f2fd031\\r\\n\r\n"] +[347.062391, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922865 (current time 26.798968547)\r\n"] +[347.06509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.065179, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.077545, "o", "ed0010f0f0f0f0f0\\r\\n\r\n"] +[347.077967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994925 (current time 26.7989683335)\r\n"] +[347.080546, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.080633, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.089037, "o", "400b24a5e9\\r\\n\r\n"] +[347.089279, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996673235 (current time 26.79879351)\r\n"] +[347.092215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.104102, "o", "5a30313233343536\\r\\n\r\n"] +[347.104339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.104713, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991915 (current time 26.798961642)\r\n"] +[347.107516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.107545, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.11963, "o", "ff30313233343536\\r\\n\r\n"] +[347.120057, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994978935 (current time 26.79896294)\r\n"] +[347.123495, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.1236, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.135697, "o", "d80001323334d800\\r\\n\r\n"] +[347.136173, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498203 (current time 26.7989626305)\r\n"] +[347.139867, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.140199, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.145533, "o", "c0a5e9\\r\\n\r\n"] +[347.145852, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997808785 (current time 26.798679955)\r\n"] +[347.147994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.148127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.154706, "o", "0a212180\\r\\n\r\n"] +[347.155057, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726705 (current time 26.7987341285)\r\n"] +[347.158288, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.158329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.170518, "o", "4141be4100026e33\\r\\n\r\n"] +[347.170764, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497071 (current time 26.7989637625)\r\n"] +[347.173969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.178019, "o", "78ff\\r\\n\r\n"] +[347.178452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998386155 (current time 26.798622218)\r\n"] +[347.180529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.180716, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.193508, "o", "e9e9e9e9e9e9e9e9\\r\\n\r\n"] +[347.193799, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.194177, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994895905 (current time 26.798971243)\r\n"] +[347.19656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.209567, "o", "ca3637ffff7f01ff\\r\\n\r\n"] +[347.209985, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[347.210135, "o", "[tsffs info] Cancelling event with next time 2.9994893465 (current time 26.798971487)\r\n"] +[347.212782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.212875, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.225609, "o", "b79dffffffff0000\\r\\n\r\n"] +[347.225814, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[347.225972, "o", "[tsffs info] Cancelling event with next time 2.9994883015 (current time 26.798972532)\r\n"] +[347.22889, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.228989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.241388, "o", "4b4b4b4b4b4b664b\\r\\n\r\n"] +[347.241654, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921825 (current time 26.798968651)\r\n"] +[347.244702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.244791, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.256827, "o", "60535353537a6d30\\r\\n\r\n"] +[347.257126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977875 (current time 26.798963046)\r\n"] +[347.25996, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.260125, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.271973, "o", "6364656664656641\\r\\n\r\n"] +[347.272338, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499608 (current time 26.7989612255)\r\n"] +[347.275255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.275592, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.287651, "o", "e0414166757a7a69\\r\\n\r\n"] +[347.287958, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963575 (current time 26.798964476)\r\n"] +[347.29099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.291238, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.300441, "o", "6c30236c3023\\r\\n\r\n"] +[347.30087, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996117345 (current time 26.798849099)\r\n"] +[347.304763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.305065, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.312814, "o", "3030402031\\r\\n\r\n"] +[347.313517, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999671167 (current time 26.7987896665)\r\n"] +[347.315613, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.315802, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.3228, "o", "d70b40a5\\r\\n\r\n"] +[347.323217, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997242165 (current time 26.798736617)\r\n"] +[347.325563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.325883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.337719, "o", "b5303332330a57b3\\r\\n\r\n"] +[347.338149, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.338313, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994969655 (current time 26.798963868)\r\n"] +[347.341125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.341221, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.354183, "o", "e97fb2b2b21717b2\\r\\n\r\n"] +[347.354693, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493157 (current time 26.7989676765)\r\n"] +[347.35808, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.358169, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.370747, "o", "4000a8cbf107c962\\r\\n\r\n"] +[347.371034, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.371047, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945025 (current time 26.798966331)\r\n"] +[347.37412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.386169, "o", "d8969696d8963538\\r\\n\r\n"] +[347.386416, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.386562, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496765 (current time 26.7989640685)\r\n"] +[347.389931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.390076, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.402091, "o", "fe30343434343434\\r\\n\r\n"] +[347.402502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497862 (current time 26.7989629715)\r\n"] +[347.406523, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.406624, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[347.406762, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.41939, "o", "d80b4030315d5d5d\\r\\n\r\n"] +[347.419755, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945255 (current time 26.798966308)\r\n"] +[347.423437, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.423496, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.436721, "o", "a1a1a183a19a41ad\\r\\n\r\n"] +[347.437282, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492473 (current time 26.7989683605)\r\n"] +[347.440503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.440722, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.443051, "o", "01\\r\\n\r\n"] +[347.44357, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[347.445794, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.445951, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.457887, "o", "016641303132a8a8\\r\\n\r\n"] +[347.458243, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.458389, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498054 (current time 26.7989627795)\r\n"] +[347.460931, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.47306, "o", "f622223a22220a41\\r\\n\r\n"] +[347.473339, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.473703, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497117 (current time 26.7989637165)\r\n"] +[347.476181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.47637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.480046, "o", "3131\\r\\n\r\n"] +[347.480408, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413695 (current time 26.798619464)\r\n"] +[347.482389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.48255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.494966, "o", "a5ef2aef89f440a5\\r\\n\r\n"] +[347.49528, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.495441, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490645 (current time 26.7989701885)\r\n"] +[347.49795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.498206, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.509805, "o", "3232323432323232\\r\\n\r\n"] +[347.510142, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.510335, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004785 (current time 26.798960355)\r\n"] +[347.512844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.512981, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.52116, "o", "d81b40a5a9\\r\\n\r\n"] +[347.521428, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660975 (current time 26.798794736)\r\n"] +[347.524505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.524631, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.53722, "o", "a5a5a5a5a5a5a5a5\\r\\n\r\n"] +[347.537598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911025 (current time 26.798969731)\r\n"] +[347.540763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.540881, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.552956, "o", "eb0b303132333435\\r\\n\r\n"] +[347.553012, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.553415, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994970415 (current time 26.798963792)\r\n"] +[347.556859, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.556953, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[347.557034, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.56899, "o", "00ed402732323031\\r\\n\r\n"] +[347.56944, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982695 (current time 26.798962564)\r\n"] +[347.573039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.573144, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.578743, "o", "d80ba5\\r\\n\r\n"] +[347.579089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[347.579458, "o", "[tsffs info] Cancelling event with next time 2.999780969 (current time 26.7986798645)\r\n"] +[347.581515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.581678, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.588273, "o", "180b40a5\\r\\n\r\n"] +[347.58873, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997254205 (current time 26.798735413)\r\n"] +[347.591492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.5917, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.603855, "o", "d80b40000b0cdb02\\r\\n\r\n"] +[347.604332, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938955 (current time 26.798966938)\r\n"] +[347.607272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[347.607465, "o", "[tsffs info] Resuming simulation\r\n"] +[347.619505, "o", "66757a7a696e6721\\r\\n\r\n"] +[347.620096, "o", "All characters were correct!\\r\\n\r\n"] +[347.628159, "o", "[tsffs info] on_simulation_stopped(Solution(Solution { kind: Exception }))\r\n[tsffs info] Cancelling event with next time 2.998783565 (current time 26.7996772685)\r\n"] +[347.628503, "o", "[Objective #0] run time: 0h-1m-31s, clients: 1, corpus: 10, objectives: 1, executions: 1792, exec/sec: 19.57\r\n"] +[347.630903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.631032, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.642728, "o", "6162636465664141\\r\\n\r\n"] +[347.643029, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999065 (current time 26.798960927)\r\n"] +[347.645938, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.652842, "o", "d80b40f1\\r\\n\r\n"] +[347.653195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.65337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999724176 (current time 26.7987366575)\r\n"] +[347.657039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.657144, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.664108, "o", "fa0000fa\\r\\n\r\n"] +[347.664398, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997232765 (current time 26.798737557)\r\n"] +[347.666647, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.666767, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.673387, "o", "68333905\\r\\n\r\n"] +[347.673672, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.673869, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727339 (current time 26.7987334945)\r\n"] +[347.676534, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.676665, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.688359, "o", "3030313233343536\\r\\n\r\n"] +[347.688651, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.688803, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004235 (current time 26.79896041)\r\n"] +[347.691816, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.704368, "o", "ff6e66b63031ff92\\r\\n\r\n"] +[347.704732, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492836 (current time 26.7989679975)\r\n"] +[347.707778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.707872, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.719886, "o", "3c420010000001a9\\r\\n\r\n"] +[347.720154, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.72036, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498647 (current time 26.7989621865)\r\n"] +[347.723675, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.723831, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.736007, "o", "fe781b3031323334\\r\\n\r\n"] +[347.736323, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.736441, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994967435 (current time 26.79896409)\r\n"] +[347.740127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.740204, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.748416, "o", "e9e9d83132\\r\\n\r\n"] +[347.748772, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996669045 (current time 26.798793929)\r\n"] +[347.751895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.764521, "o", "51518051e4e4e4e4\\r\\n\r\n"] +[347.7647, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954075 (current time 26.798965426)\r\n"] +[347.768046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.768209, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.778065, "o", "d8d8d8d839d8\\r\\n\r\n"] +[347.778462, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[347.77857, "o", "[tsffs info] Cancelling event with next time 2.999607416 (current time 26.7988534175)\r\n"] +[347.781193, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.785191, "o", "c6e9\\r\\n\r\n"] +[347.785434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.785713, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99983871 (current time 26.7986221235)\r\n"] +[347.788851, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.788992, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[347.789147, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.802345, "o", "fff0f0f0f0f0f030\\r\\n\r\n"] +[347.802851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994910725 (current time 26.798969761)\r\n"] +[347.806552, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.806746, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.814998, "o", "e9d80b40a5\\r\\n\r\n"] +[347.81539, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660355 (current time 26.798794798)\r\n"] +[347.818728, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.818918, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.831578, "o", "0909a5a5a5a4a5a5\\r\\n\r\n"] +[347.83195, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949331 (current time 26.7989675235)\r\n"] +[347.835233, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.835389, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[347.835507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.841173, "o", "40a5e9\\r\\n\r\n"] +[347.841581, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782015 (current time 26.7986788185)\r\n"] +[347.844277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.855955, "o", "3031323334353637\\r\\n\r\n"] +[347.856394, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.856763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[347.859251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.859476, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.867533, "o", "010b0140a5\\r\\n\r\n"] +[347.867922, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.86816, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996689105 (current time 26.798791923)\r\n"] +[347.871819, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.871934, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.880157, "o", "e10b40a5e9\\r\\n\r\n"] +[347.880595, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996661645 (current time 26.798794669)\r\n"] +[347.883014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.895663, "o", "dbe1e1e1e1e1e1e3\\r\\n\r\n"] +[347.895984, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994899 (current time 26.7989709335)\r\n"] +[347.898625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.91135, "o", "ecf5b8b8b8b8b8b8\\r\\n\r\n"] +[347.911717, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489281 (current time 26.7989715525)\r\n"] +[347.914569, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.914672, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.918769, "o", "e9d8\\r\\n\r\n"] +[347.919055, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[347.919248, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998386505 (current time 26.798622183)\r\n"] +[347.922599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[347.922742, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.931138, "o", "0ba5e9a5e9\\r\\n\r\n"] +[347.931535, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999664766 (current time 26.7987960675)\r\n"] +[347.934119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.941386, "o", "ffffff80\\r\\n\r\n"] +[347.941726, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99972024 (current time 26.7987405935)\r\n"] +[347.944529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.944714, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.957274, "o", "aaaa55aaaa56aa8a\\r\\n\r\n"] +[347.957675, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994878355 (current time 26.798972998)\r\n"] +[347.960611, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.96072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.964742, "o", "ff7f\\r\\n\r\n"] +[347.965089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999837502 (current time 26.7986233315)\r\n"] +[347.967471, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.967576, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.979434, "o", "3031323334353637\\r\\n\r\n"] +[347.979763, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[347.982228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.982249, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[347.994751, "o", "d80b40a5e9d80bc0\\r\\n\r\n"] +[347.995172, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492153 (current time 26.7989686805)\r\n"] +[347.997801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[347.997854, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.010051, "o", "30fa000000406031\\r\\n\r\n"] +[348.010467, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949866 (current time 26.7989621735)\r\n"] +[348.01324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.021595, "o", "66757aa5ed\\r\\n\r\n"] +[348.021967, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966578 (current time 26.7987950535)\r\n"] +[348.024846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.031513, "o", "d80b3031\\r\\n\r\n"] +[348.031807, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997254225 (current time 26.798735411)\r\n"] +[348.034207, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.034284, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.046444, "o", "d80b00a5e90b0359\\r\\n\r\n"] +[348.046777, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494505 (current time 26.7989663285)\r\n"] +[348.049151, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.049319, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.060961, "o", "0048484897370151\\r\\n\r\n"] +[348.061258, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499875 (current time 26.7989609585)\r\n"] +[348.064013, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.064023, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.075913, "o", "17754000010000f7\\r\\n\r\n"] +[348.076141, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994605 (current time 26.798961373)\r\n"] +[348.079014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.079099, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.091909, "o", "696e9417deaffe78\\r\\n\r\n"] +[348.092248, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.092368, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491294 (current time 26.7989695395)\r\n"] +[348.095194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.095205, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.10745, "o", "3132333435360116\\r\\n\r\n"] +[348.107772, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.108017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500368 (current time 26.7989604655)\r\n"] +[348.110589, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.110737, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.122486, "o", "3536363636363031\\r\\n\r\n"] +[348.122945, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.12314, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000685 (current time 26.798960765)\r\n"] +[348.12602, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.126097, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.137726, "o", "6172636465664141\\r\\n\r\n"] +[348.138044, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.138168, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994998765 (current time 26.798960957)\r\n"] +[348.141277, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.141461, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.15403, "o", "c3c3c3c332303132\\r\\n\r\n"] +[348.154468, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495877 (current time 26.7989649565)\r\n"] +[348.157838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.158164, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.15827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.170561, "o", "d80b666600ff6464\\r\\n\r\n"] +[348.170927, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.171121, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495255 (current time 26.7989655785)\r\n"] +[348.174267, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.174513, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.186479, "o", "e9e3e3e3ffe3e3\\r\\n\r\n"] +[348.186751, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.186934, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999547356 (current time 26.7989134775)\r\n"] +[348.190492, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.1907, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.20301, "o", "ff0b40a530313233\\r\\n\r\n"] +[348.203527, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958865 (current time 26.798964947)\r\n"] +[348.206956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.207068, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.207244, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.219218, "o", "3031323334353637\\r\\n\r\n"] +[348.219675, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.219912, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[348.223321, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.236068, "o", "c5353629f3d6d6d6\\r\\n\r\n"] +[348.236482, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.236718, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493948 (current time 26.7989668855)\r\n"] +[348.240148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.240249, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.252102, "o", "3020513384848484\\r\\n\r\n"] +[348.252447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.252578, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999805 (current time 26.798960853)\r\n"] +[348.255857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.255985, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[348.25611, "o", "[tsffs info] Resuming simulation\r\n"] +[348.25876, "o", "e8\\r\\n\r\n"] +[348.259213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998967885 (current time 26.798564045)\r\n"] +[348.261618, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.261719, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.273806, "o", "7e821d1c1d1d3031\\r\\n\r\n"] +[348.274139, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.274301, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945765 (current time 26.798966257)\r\n"] +[348.276972, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.277189, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.290101, "o", "7bf0f0f07a696e67\\r\\n\r\n"] +[348.290522, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.290544, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492815 (current time 26.7989680185)\r\n"] +[348.293253, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.293368, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.293525, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.301547, "o", "d37d0021d3\\r\\n\r\n"] +[348.302115, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.302363, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996674155 (current time 26.798793418)\r\n"] +[348.30575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.305936, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.30608, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.319421, "o", "fafafafafafafafa\\r\\n\r\n"] +[348.319764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.320049, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994816705 (current time 26.798979163)\r\n"] +[348.32455, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.324596, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.324726, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.337846, "o", "0e9ab6b6b6b6f0f0\\r\\n\r\n"] +[348.338215, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.338333, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994908945 (current time 26.798969939)\r\n"] +[348.342132, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.342323, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.342514, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.355036, "o", "a6709d40ff0000e8\\r\\n\r\n"] +[348.355408, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.355601, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494428 (current time 26.7989664055)\r\n"] +[348.359141, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.35926, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.371089, "o", "3435e90300003718\\r\\n\r\n"] +[348.371479, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994991485 (current time 26.798961685)\r\n"] +[348.374598, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.374685, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.386567, "o", "b2b1272762633031\\r\\n\r\n"] +[348.387016, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980145 (current time 26.798962819)\r\n"] +[348.390386, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.390543, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.403253, "o", "6d6d6d6d6d6d6d6d\\r\\n\r\n"] +[348.403751, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904065 (current time 26.798970427)\r\n"] +[348.40736, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.40758, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.42041, "o", "81d0d0d0d0d0d0d0\\r\\n\r\n"] +[348.420687, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.420901, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492606 (current time 26.7989682275)\r\n"] +[348.424272, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.424466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.432095, "o", "0151430151\\r\\n\r\n"] +[348.432541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.432728, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99967103 (current time 26.7987898035)\r\n"] +[348.435731, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.435804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.447711, "o", "d80b407822034000\\r\\n\r\n"] +[348.448131, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.448324, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498188 (current time 26.7989626455)\r\n"] +[348.450924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.451095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.463023, "o", "10ff663031323334\\r\\n\r\n"] +[348.463413, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979955 (current time 26.798962838)\r\n"] +[348.465999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.474498, "o", "d80b03abe9\\r\\n\r\n"] +[348.47488, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996649785 (current time 26.798795855)\r\n"] +[348.477786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.490884, "o", "eb7fffadadadadad\\r\\n\r\n"] +[348.491314, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994828345 (current time 26.798977999)\r\n"] +[348.493965, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.494186, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.49946, "o", "d8e9e9\\r\\n\r\n"] +[348.49971, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997804835 (current time 26.79868035)\r\n"] +[348.502878, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.502982, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.507122, "o", "a530\\r\\n\r\n"] +[348.507387, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998402025 (current time 26.798620631)\r\n"] +[348.509907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.52255, "o", "d80b80ffffff7f80\\r\\n\r\n"] +[348.522932, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.523086, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994892535 (current time 26.79897158)\r\n"] +[348.525796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.525826, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.53785, "o", "f00b808080803031\\r\\n\r\n"] +[348.538199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981255 (current time 26.798962708)\r\n"] +[348.541371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.541453, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.553866, "o", "d80ba8cbf107c962\\r\\n\r\n"] +[348.554214, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919575 (current time 26.798968876)\r\n"] +[348.557466, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.557717, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.56816, "o", "81000400006e6c\\r\\n\r\n"] +[348.56853, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.56874, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995551215 (current time 26.798905712)\r\n"] +[348.572328, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.572432, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.572539, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.582043, "o", "d80b40a5a530\\r\\n\r\n"] +[348.582322, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.582525, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996094785 (current time 26.798851355)\r\n"] +[348.585861, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.585955, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.586064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.598482, "o", "ffda303132336675\\r\\n\r\n"] +[348.598806, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994954675 (current time 26.798965366)\r\n"] +[348.602223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.602307, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.6024, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.614426, "o", "5151c21451da0951\\r\\n\r\n"] +[348.614714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.614923, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496877 (current time 26.7989639565)\r\n"] +[348.617749, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.617816, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.62896, "o", "ef33332172f9ef\\r\\n\r\n"] +[348.629335, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99955093 (current time 26.7989099035)\r\n"] +[348.631876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.632029, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.640232, "o", "ff050000ea\\r\\n\r\n"] +[348.640738, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666389 (current time 26.7987944445)\r\n"] +[348.643307, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.643487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.649995, "o", "02e390d2\\r\\n\r\n"] +[348.650363, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.6505, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999725318 (current time 26.7987355155)\r\n"] +[348.654412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.654528, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.654637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.666603, "o", "b4b4723334641435\\r\\n\r\n"] +[348.666949, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497838 (current time 26.7989629955)\r\n"] +[348.67107, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.671216, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.671413, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.683564, "o", "d70b000101006767\\r\\n\r\n"] +[348.68385, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.684116, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498242 (current time 26.7989625915)\r\n"] +[348.688087, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.68822, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.6883, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.701235, "o", "f00ff0f0f0f0f069\\r\\n\r\n"] +[348.701533, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.701757, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920885 (current time 26.798968745)\r\n"] +[348.705344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.705576, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.717642, "o", "000000005f746011\\r\\n\r\n"] +[348.717888, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.718148, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499667 (current time 26.7989611665)\r\n"] +[348.72223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.72242, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.731013, "o", "d80c41a5e9\\r\\n\r\n"] +[348.731426, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[348.731527, "o", "[tsffs info] Cancelling event with next time 2.9996659705 (current time 26.798794863)\r\n"] +[348.734167, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.734257, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.741323, "o", "5189e8dc\\r\\n\r\n"] +[348.741704, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997237315 (current time 26.798737102)\r\n"] +[348.744413, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.744551, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.756376, "o", "73d073b632327373\\r\\n\r\n"] +[348.756875, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994977 (current time 26.7989631335)\r\n"] +[348.759518, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.772024, "o", "af30313233343536\\r\\n\r\n"] +[348.77251, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.772526, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980125 (current time 26.798962821)\r\n"] +[348.775599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.775695, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.787767, "o", "d80b400c00838362\\r\\n\r\n"] +[348.788174, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968675 (current time 26.798963966)\r\n"] +[348.791274, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.791342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.803341, "o", "d830313233346e67\\r\\n\r\n"] +[348.803621, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.803873, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497739 (current time 26.7989630945)\r\n"] +[348.807276, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.807315, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.807399, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.819797, "o", "02fe781b03400057\\r\\n\r\n"] +[348.82014, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.820158, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994968645 (current time 26.798963969)\r\n"] +[348.823751, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.824029, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.824066, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.828133, "o", "d9e9\\r\\n\r\n"] +[348.828393, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998386215 (current time 26.798622212)\r\n"] +[348.830572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.830732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.83462, "o", "270b\\r\\n\r\n"] +[348.834901, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.835111, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840157 (current time 26.7986206765)\r\n"] +[348.838463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.838629, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.838834, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.851232, "o", "d80bff7f320100fe\\r\\n\r\n"] +[348.851524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.851853, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492102 (current time 26.7989687315)\r\n"] +[348.8555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.855589, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.855773, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.863797, "o", "d70010a5e9\\r\\n\r\n"] +[348.864277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.864457, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667318 (current time 26.7987935155)\r\n"] +[348.866774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.866941, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.875054, "o", "d800000000\\r\\n\r\n"] +[348.875562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.875748, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996701455 (current time 26.798790688)\r\n"] +[348.878401, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.878565, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.885022, "o", "160b0122\\r\\n\r\n"] +[348.885474, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.885738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997267315 (current time 26.798734102)\r\n"] +[348.888724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.88899, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.900104, "o", "d83a39ff40a5e9\\r\\n\r\n"] +[348.900447, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.900638, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995497335 (current time 26.7989111)\r\n"] +[348.904557, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.90478, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.904898, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.908979, "o", "a3e9\\r\\n\r\n"] +[348.909283, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.909305, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998388285 (current time 26.798622005)\r\n"] +[348.912078, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.924239, "o", "a5a7a5a500407575\\r\\n\r\n"] +[348.924623, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.924884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994955895 (current time 26.798965244)\r\n"] +[348.927397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.939527, "o", "3233343536375454\\r\\n\r\n"] +[348.939991, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.940031, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999885 (current time 26.798960845)\r\n"] +[348.943025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.943067, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.954857, "o", "3031323334353637\\r\\n\r\n"] +[348.955179, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.955337, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[348.958364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[348.958528, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[348.958681, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.970388, "o", "3637383961626364\\r\\n\r\n"] +[348.970744, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.970895, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499688 (current time 26.7989611455)\r\n"] +[348.97393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.974052, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.980398, "o", "31373165\\r\\n\r\n"] +[348.980756, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997275075 (current time 26.798733326)\r\n"] +[348.982929, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.983116, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[348.995553, "o", "e4e4e4e4e4e4e4e4\\r\\n\r\n"] +[348.995923, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[348.99606, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905585 (current time 26.798970275)\r\n"] +[348.998614, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[348.998727, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.011071, "o", "0a0a0a0a0a0a0a0a\\r\\n\r\n"] +[349.011328, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.011491, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994921025 (current time 26.798968731)\r\n"] +[349.014014, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.014175, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.025885, "o", "7630313233343536\\r\\n\r\n"] +[349.02616, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.026454, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001785 (current time 26.798960655)\r\n"] +[349.029324, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.029475, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.034835, "o", "007fe9\\r\\n\r\n"] +[349.035127, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.035353, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781943 (current time 26.7986788905)\r\n"] +[349.038655, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.038845, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.049328, "o", "00000000007f30\\r\\n\r\n"] +[349.049676, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999556692 (current time 26.7989041415)\r\n"] +[349.053561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.053819, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.053993, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.059532, "o", "f8f8d2\\r\\n\r\n"] +[349.059927, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.060144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997806285 (current time 26.798680205)\r\n"] +[349.062509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.062722, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.066552, "o", "a57a\\r\\n\r\n"] +[349.066956, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.067185, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838919 (current time 26.7986219145)\r\n"] +[349.070985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.071191, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.071412, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.083089, "o", "70e9303132333435\\r\\n\r\n"] +[349.083607, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990505 (current time 26.798961783)\r\n"] +[349.087743, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.088046, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.088308, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.100379, "o", "d8d80029705666ff\\r\\n\r\n"] +[349.101092, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950775 (current time 26.798965756)\r\n"] +[349.105154, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.105317, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.113594, "o", "d84c40a5e9\\r\\n\r\n"] +[349.114134, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.114377, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996659045 (current time 26.798794929)\r\n"] +[349.116777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.117019, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.128932, "o", "d830313233343536\\r\\n\r\n"] +[349.129158, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990605 (current time 26.798961773)\r\n"] +[349.131729, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.132104, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.140164, "o", "d80b64a5e9\\r\\n\r\n"] +[349.140515, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.140712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999665889 (current time 26.7987949445)\r\n"] +[349.143463, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.143716, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.155658, "o", "886b6a760010146f\\r\\n\r\n"] +[349.156101, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496584 (current time 26.7989642495)\r\n"] +[349.158834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.159146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.167411, "o", "a4e90b40d8\\r\\n\r\n"] +[349.167837, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999666062 (current time 26.7987947715)\r\n"] +[349.171615, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.171929, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.184384, "o", "d80ba5e940a5e5e5\\r\\n\r\n"] +[349.184825, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919125 (current time 26.798968921)\r\n"] +[349.1885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.200416, "o", "1832333435363738\\r\\n\r\n"] +[349.20078, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499944 (current time 26.7989608895)\r\n"] +[349.204575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.204722, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.217181, "o", "0ccf4848f17aed30\\r\\n\r\n"] +[349.2176, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994919245 (current time 26.798968909)\r\n"] +[349.221593, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.221671, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.22188, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.233653, "o", "060400002133336b\\r\\n\r\n"] +[349.234045, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995895 (current time 26.798961244)\r\n"] +[349.238132, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.238207, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.244888, "o", "313240a5\\r\\n\r\n"] +[349.245237, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.245508, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999726603 (current time 26.7987342305)\r\n"] +[349.247735, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.248067, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.26007, "o", "3334353637383961\\r\\n\r\n"] +[349.260445, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[349.263079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.26329, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.276097, "o", "af0000e9af303132\\r\\n\r\n"] +[349.276582, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994947845 (current time 26.798966049)\r\n"] +[349.279459, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.279584, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.285217, "o", "a5afe9\\r\\n\r\n"] +[349.285585, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.285843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997796245 (current time 26.798681209)\r\n"] +[349.288959, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.289122, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.289334, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.300962, "o", "0100000064656641\\r\\n\r\n"] +[349.301399, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006095 (current time 26.798960224)\r\n"] +[349.305076, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.305218, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.305368, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.317303, "o", "66757a4f67213937\\r\\n\r\n"] +[349.317664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.317828, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[349.317931, "o", "[tsffs info] Cancelling event with next time 2.9994972515 (current time 26.798963582)\r\n"] +[349.321763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.321927, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.322096, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.326064, "o", "629d\\r\\n\r\n"] +[349.32647, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998399195 (current time 26.798620914)\r\n"] +[349.328999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.329111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.340797, "o", "3636363636363636\\r\\n\r\n"] +[349.341193, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997865 (current time 26.798961047)\r\n"] +[349.344145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.344251, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.352441, "o", "2830d8d8e9\\r\\n\r\n"] +[349.353051, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996668825 (current time 26.798793951)\r\n"] +[349.356525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.356612, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.356732, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.364945, "o", "2a0b408c8b\\r\\n\r\n"] +[349.365313, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.365578, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996662275 (current time 26.798794606)\r\n"] +[349.368559, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.368707, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.376966, "o", "d1fe80fe01\\r\\n\r\n"] +[349.377446, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.37764, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996649135 (current time 26.79879592)\r\n"] +[349.379998, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.380243, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.392849, "o", "8016e9e9e9e9e9ef\\r\\n\r\n"] +[349.393201, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.393302, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911345 (current time 26.798969699)\r\n"] +[349.396009, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.396127, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.408499, "o", "d8d9d8d805d8d8d8\\r\\n\r\n"] +[349.408855, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994913415 (current time 26.798969492)\r\n"] +[349.412793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.41289, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.412911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.421071, "o", "d80b40a507\\r\\n\r\n"] +[349.421418, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.421549, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999667358 (current time 26.7987934755)\r\n"] +[349.42543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.425544, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.425667, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.438138, "o", "d80b40a566666666\\r\\n\r\n"] +[349.438402, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.438575, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963585 (current time 26.798964475)\r\n"] +[349.441786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.44189, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.441954, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.447438, "o", "0ba5e9\\r\\n\r\n"] +[349.44776, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.447859, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999780911 (current time 26.7986799225)\r\n"] +[349.449988, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.450159, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.454218, "o", "2d32\\r\\n\r\n"] +[349.454548, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.454709, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840153 (current time 26.7986206805)\r\n"] +[349.457529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.457617, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.469734, "o", "f5432221ff31f543\\r\\n\r\n"] +[349.47031, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495457 (current time 26.7989653765)\r\n"] +[349.473662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.473789, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.477745, "o", "a5f6\\r\\n\r\n"] +[349.478109, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.478121, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99983883 (current time 26.7986220035)\r\n"] +[349.480071, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.480168, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.491687, "o", "4343436060606060\\r\\n\r\n"] +[349.492167, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003205 (current time 26.798960513)\r\n"] +[349.494801, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.504267, "o", "d86b6b6b3131\\r\\n\r\n"] +[349.504533, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996092095 (current time 26.798851624)\r\n"] +[349.507505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.507583, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.520067, "o", "6162636465664141\\r\\n\r\n"] +[349.520401, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.520561, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999065 (current time 26.798960927)\r\n"] +[349.523704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.523779, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.537243, "o", "0b9f9f9f9f9f9f9f\\r\\n\r\n"] +[349.537578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994897155 (current time 26.798971118)\r\n"] +[349.540686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.540795, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.553513, "o", "9f75344df1664949\\r\\n\r\n"] +[349.553846, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[349.553872, "o", "[tsffs info] Cancelling event with next time 2.9994959665 (current time 26.798964867)\r\n"] +[349.557201, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.56929, "o", "414166757a656641\\r\\n\r\n"] +[349.569685, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498669 (current time 26.7989621645)\r\n"] +[349.573347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.573486, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.585661, "o", "6e00619e6e00629e\\r\\n\r\n"] +[349.586103, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.586219, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953525 (current time 26.798965481)\r\n"] +[349.589786, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.590045, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.590342, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.602101, "o", "d800000020d80b40\\r\\n\r\n"] +[349.602578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497345 (current time 26.7989634885)\r\n"] +[349.606516, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.606638, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.619327, "o", "6675797a696e05ff\\r\\n\r\n"] +[349.619691, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994946985 (current time 26.798966135)\r\n"] +[349.623487, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.623529, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.636203, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[349.636379, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.636564, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[349.640145, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.640159, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.640271, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.652732, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[349.653165, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[349.65672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.656837, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.673388, "o", "015151\\r\\n\r\n"] +[349.67436, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.677224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.682373, "o", "015151\\r\\n\r\n"] +[349.682608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.682798, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.685747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.6858, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.691117, "o", "005151\\r\\n\r\n"] +[349.691382, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.69157, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846075 (current time 26.798676226)\r\n"] +[349.69414, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.694291, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.699312, "o", "015151\\r\\n\r\n"] +[349.699568, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.699821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.703111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.703288, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.703458, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.708722, "o", "015151\\r\\n\r\n"] +[349.709024, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.709201, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.711649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.711851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.71693, "o", "015151\\r\\n\r\n"] +[349.717342, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.717489, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.721248, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.721372, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.721601, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.726764, "o", "015151\\r\\n\r\n"] +[349.727079, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.727288, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.72962, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.729815, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.735048, "o", "015151\\r\\n\r\n"] +[349.73533, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.735516, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.738788, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.738981, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.750783, "o", "0151503132333441\\r\\n\r\n"] +[349.751161, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.75138, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500561 (current time 26.7989602725)\r\n"] +[349.754899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.755032, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.755247, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.767636, "o", "622d2d2d2d2d2d2d\\r\\n\r\n"] +[349.768002, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.768178, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994922465 (current time 26.798968587)\r\n"] +[349.771782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.771884, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.772011, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.783851, "o", "3435363738396162\\r\\n\r\n"] +[349.784279, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[349.784304, "o", "[tsffs info] Cancelling event with next time 2.999499778 (current time 26.7989610555)\r\n"] +[349.788114, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.788185, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.788337, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.79361, "o", "381951\\r\\n\r\n"] +[349.793904, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.793997, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[349.794011, "o", "[tsffs info] Cancelling event with next time 2.9997842445 (current time 26.798676589)\r\n"] +[349.796306, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.796358, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.796447, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.808343, "o", "41414141f107c962\\r\\n\r\n"] +[349.808767, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.808821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949789 (current time 26.7989629435)\r\n"] +[349.811469, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.811593, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.811803, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.823283, "o", "0030313233343536\\r\\n\r\n"] +[349.823737, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.823813, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[349.826698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.826791, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.832003, "o", "015151\\r\\n\r\n"] +[349.832359, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.832544, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[349.836062, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.836146, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.836383, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.848901, "o", "9d9d9d9d36cb03ff\\r\\n\r\n"] +[349.849267, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.849424, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903545 (current time 26.798970479)\r\n"] +[349.853148, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.853475, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.853693, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.856363, "o", "d8\\r\\n\r\n"] +[349.856783, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.856828, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998968175 (current time 26.798564016)\r\n"] +[349.859224, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.859259, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.85946, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.871361, "o", "63646f5d41416341\\r\\n\r\n"] +[349.871542, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.871644, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976695 (current time 26.798963164)\r\n"] +[349.874678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.874768, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.878488, "o", "0351\\r\\n\r\n"] +[349.878833, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841355 (current time 26.7986194785)\r\n"] +[349.880671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.880752, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.892822, "o", "00f8150030cf32b3\\r\\n\r\n"] +[349.89319, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959005 (current time 26.798964933)\r\n"] +[349.895987, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.896129, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.907711, "o", "0530313233343536\\r\\n\r\n"] +[349.908058, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003765 (current time 26.798960457)\r\n"] +[349.910684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.916036, "o", "01fe65\\r\\n\r\n"] +[349.916419, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782035 (current time 26.7986787985)\r\n"] +[349.91997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.920124, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.920219, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.932324, "o", "21a5416e6721808e\\r\\n\r\n"] +[349.932665, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[349.932689, "o", "[tsffs info] Cancelling event with next time 2.999496558 (current time 26.7989642755)\r\n"] +[349.93685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.936918, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.937084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.949644, "o", "07c9c7d2e0e0e0e0\\r\\n\r\n"] +[349.949999, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.950254, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492117 (current time 26.7989687165)\r\n"] +[349.954625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.954759, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.95496, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.96033, "o", "5151b8\\r\\n\r\n"] +[349.960617, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.960808, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997832145 (current time 26.798677619)\r\n"] +[349.963338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[349.963487, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.976091, "o", "303132307fffffff\\r\\n\r\n"] +[349.976406, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.976593, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491879 (current time 26.7989689545)\r\n"] +[349.980081, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.980192, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.980403, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[349.986207, "o", "fdae0e\\r\\n\r\n"] +[349.986555, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[349.986736, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999778624 (current time 26.7986822095)\r\n"] +[349.990568, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[349.990737, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[349.990968, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.003516, "o", "f1f1f1f1f1002870\\r\\n\r\n"] +[350.003683, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.003942, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944785 (current time 26.798966355)\r\n"] +[350.007664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.00783, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.007868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.013291, "o", "0cdb51\\r\\n\r\n"] +[350.013595, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.013673, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999781077 (current time 26.7986797565)\r\n"] +[350.015896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.015927, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.016302, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.028506, "o", "7a7a7a70304d3233\\r\\n\r\n"] +[350.028866, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.02893, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.028941, "o", "[tsffs info] Cancelling event with next time 2.999495606 (current time 26.7989652275)\r\n"] +[350.031551, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.031607, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.031809, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.040521, "o", "40a5a8a8a8\\r\\n\r\n"] +[350.04083, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.04102, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996660515 (current time 26.798794782)\r\n"] +[350.044921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.045107, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.057388, "o", "66757a6e67213937\\r\\n\r\n"] +[350.057634, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.057794, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[350.060059, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.060204, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.065855, "o", "fe51af\\r\\n\r\n"] +[350.066088, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997796925 (current time 26.798681141)\r\n"] +[350.069101, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.072839, "o", "0150\\r\\n\r\n"] +[350.073144, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.073174, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841433 (current time 26.7986194005)\r\n"] +[350.075575, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.080836, "o", "025151\\r\\n\r\n"] +[350.08109, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.081126, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784553 (current time 26.7986762805)\r\n"] +[350.082899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.083133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.092578, "o", "513d3d3d22f4\\r\\n\r\n"] +[350.092856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.092953, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999609264 (current time 26.7988515695)\r\n"] +[350.095505, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.095537, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.095576, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.100855, "o", "015033\\r\\n\r\n"] +[350.101225, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.10124, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784609 (current time 26.7986762245)\r\n"] +[350.10491, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.105142, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.118243, "o", "01ec6e6e6e6e6e6e\\r\\n\r\n[tsffs info] on_magic_instruction(2)\r\n"] +[350.118387, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994904795 (current time 26.798970354)\r\n"] +[350.122314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.122364, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.134884, "o", "6667666610a8a8a8\\r\\n\r\n"] +[350.135218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496218 (current time 26.7989646155)\r\n"] +[350.138621, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.138709, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.138953, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.151597, "o", "123839619e6e5565\\r\\n\r\n"] +[350.151953, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.152174, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497304 (current time 26.7989635295)\r\n"] +[350.155685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.15581, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.156014, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.161165, "o", "015110\\r\\n\r\n"] +[350.161553, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.161849, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847 (current time 26.7986761335)\r\n"] +[350.163948, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.164417, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.168384, "o", "014d\\r\\n\r\n"] +[350.168853, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840209 (current time 26.7986206245)\r\n"] +[350.172628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.17275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.185229, "o", "b1b1b13031323334\\r\\n\r\n"] +[350.185662, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.185932, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497224 (current time 26.7989636095)\r\n"] +[350.189563, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.189725, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.189762, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.201994, "o", "35363738396162e2\\r\\n\r\n"] +[350.202588, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986205 (current time 26.798962213)\r\n"] +[350.206131, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.206474, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.212833, "o", "01516951\\r\\n\r\n"] +[350.213123, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.213155, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999727541 (current time 26.7987332925)\r\n"] +[350.215544, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.21572, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.221096, "o", "d80b30\\r\\n\r\n"] +[350.221514, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.221824, "o", "[tsffs info] Cancelling event with next time 2.999782201 (current time 26.7986786325)\r\n"] +[350.22464, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.23737, "o", "fafafa3434fafafa\\r\\n\r\n"] +[350.237748, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994862955 (current time 26.798974538)\r\n"] +[350.240713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.240788, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.252839, "o", "414166757676da76\\r\\n\r\n"] +[350.253133, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973215 (current time 26.798963512)\r\n"] +[350.256656, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.256746, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.269222, "o", "a9a9a9a9a9a90144\\r\\n\r\n"] +[350.269484, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.269685, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492926 (current time 26.7989679075)\r\n"] +[350.273253, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.273416, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.273579, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.277421, "o", "06f6\\r\\n\r\n"] +[350.277788, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.277988, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998399935 (current time 26.79862084)\r\n"] +[350.279904, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.280098, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.291858, "o", "84848e7171717171\\r\\n\r\n"] +[350.292097, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.292276, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984895 (current time 26.798962344)\r\n"] +[350.295077, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.295283, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[350.295376, "o", "[tsffs info] Resuming simulation\r\n"] +[350.307242, "o", "61373839373839a0\\r\\n\r\n"] +[350.307663, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.307751, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985775 (current time 26.798962256)\r\n"] +[350.310323, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.310349, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.323059, "o", "3132c1c1c1c1c1e4\\r\\n\r\n"] +[350.323525, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493624 (current time 26.7989672095)\r\n"] +[350.326186, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.326232, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.338268, "o", "454545454545f0f0\\r\\n\r\n"] +[350.338583, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.338636, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976335 (current time 26.7989632)\r\n"] +[350.341748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.341851, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.354487, "o", "3c3d3d3d40b05131\\r\\n\r\n"] +[350.35486, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.355002, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494715 (current time 26.7989661185)\r\n"] +[350.358134, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.358201, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.370111, "o", "3031323334353637\\r\\n\r\n"] +[350.370461, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.370651, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[350.373615, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.373793, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.374054, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.380393, "o", "01015154\\r\\n\r\n"] +[350.380659, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.380843, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997278085 (current time 26.798733025)\r\n"] +[350.382817, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.382839, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.383095, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.395017, "o", "474d383961626360\\r\\n\r\n"] +[350.395284, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.395482, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994986415 (current time 26.798962192)\r\n"] +[350.397834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.398042, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.409844, "o", "5100515151515151\\r\\n\r\n"] +[350.410109, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.410361, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950048 (current time 26.7989603535)\r\n"] +[350.413002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.413233, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.425389, "o", "b836c96676d87a69\\r\\n\r\n"] +[350.425678, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.425777, "o", "[tsffs info] Cancelling event with next time 2.999494726 (current time 26.7989661075)\r\n"] +[350.428628, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.428785, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.440694, "o", "01303132ff000000\\r\\n\r\n"] +[350.441038, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.441205, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498621 (current time 26.7989622125)\r\n"] +[350.444024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.444258, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.448069, "o", "0152\\r\\n\r\n"] +[350.448424, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.448605, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413785 (current time 26.798619455)\r\n"] +[350.450813, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.451113, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[350.451146, "o", "[tsffs info] Resuming simulation\r\n"] +[350.455152, "o", "5187\\r\\n\r\n"] +[350.455282, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.455537, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841066 (current time 26.7986197675)\r\n"] +[350.458279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.458468, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.470769, "o", "38396110f0f0f0f0\\r\\n\r\n"] +[350.471061, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.471073, "o", "[tsffs info] Cancelling event with next time 2.999495589 (current time 26.7989652445)\r\n"] +[350.474316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.47443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.48631, "o", "0151581515151515\\r\\n\r\n"] +[350.486584, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.486603, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.48664, "o", "[tsffs info] Cancelling event with next time 2.9995002895 (current time 26.798960544)\r\n"] +[350.490314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.490343, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.49041, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.494335, "o", "0751\\r\\n\r\n"] +[350.494687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.494866, "o", "[tsffs info] Cancelling event with next time 2.9998412565 (current time 26.798619577)\r\n"] +[350.49672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.496964, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.508526, "o", "0100010200000101\\r\\n\r\n"] +[350.50885, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.509106, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501398 (current time 26.7989594355)\r\n"] +[350.511868, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.512157, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.524123, "o", "0180fc3031323334\\r\\n\r\n"] +[350.524474, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498167 (current time 26.7989626665)\r\n"] +[350.527327, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.527554, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.539465, "o", "9d64303132333435\\r\\n\r\n"] +[350.539799, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499011 (current time 26.7989618225)\r\n"] +[350.542521, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.542786, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.555329, "o", "01757a6ef0f0f0f0\\r\\n\r\n"] +[350.555555, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.55588, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493245 (current time 26.7989675885)\r\n"] +[350.558692, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.558857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.571342, "o", "f0f0f07af0f0ff21\\r\\n\r\n"] +[350.571624, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.571818, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491006 (current time 26.7989698275)\r\n"] +[350.574924, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.57522, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.575431, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.587945, "o", "e82fe82f310336e8\\r\\n\r\n"] +[350.588368, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940425 (current time 26.798966791)\r\n"] +[350.591744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.596928, "o", "010151\\r\\n\r\n"] +[350.597264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997847 (current time 26.7986761335)\r\n"] +[350.59915, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.599303, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.611429, "o", "7a7a7b2143222222\\r\\n\r\n"] +[350.611851, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949689 (current time 26.7989639435)\r\n"] +[350.614075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.626862, "o", "4e4e4e4eb24e4ed8\\r\\n\r\n"] +[350.627188, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.627233, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906165 (current time 26.798970217)\r\n"] +[350.629803, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.629912, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.641765, "o", "3031323334353637\\r\\n\r\n"] +[350.642017, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.642181, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[350.64482, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.644927, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.656599, "o", "3031323334353602\\r\\n\r\n"] +[350.656837, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.657001, "o", "[tsffs info] Cancelling event with next time 2.999500447 (current time 26.7989603865)\r\n"] +[350.659682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.659803, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.664927, "o", "0e3031\\r\\n\r\n"] +[350.665264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997834545 (current time 26.798677379)\r\n"] +[350.667842, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.667876, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.680683, "o", "ff7f0b0c0c0ceff0\\r\\n\r\n"] +[350.681007, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488699 (current time 26.7989721345)\r\n"] +[350.683777, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.683911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.695754, "o", "0101016901010101\\r\\n\r\n"] +[350.696068, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.696116, "o", "[tsffs info] Cancelling event with next time 2.999500989 (current time 26.7989598445)\r\n"] +[350.698683, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.698792, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.711091, "o", "e8f57f3031323334\\r\\n\r\n"] +[350.711308, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.711569, "o", "[tsffs info] Cancelling event with next time 2.9994965495 (current time 26.798964284)\r\n"] +[350.714038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.714198, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.726614, "o", "5ddd4848661bb8b8\\r\\n\r\n"] +[350.727034, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492814 (current time 26.7989680195)\r\n"] +[350.729662, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.729859, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.741537, "o", "0130313233343536\\r\\n\r\n"] +[350.741881, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[350.744793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.744898, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.756525, "o", "6969333435363738\\r\\n\r\n"] +[350.756866, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.757167, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994995675 (current time 26.798961266)\r\n"] +[350.759674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.759692, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.771499, "o", "0130313233343536\\r\\n\r\n"] +[350.771805, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.771963, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500469 (current time 26.7989603645)\r\n"] +[350.774956, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.775071, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.787405, "o", "66666666a4a4a4a4\\r\\n\r\n"] +[350.787706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.787925, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495273 (current time 26.7989655605)\r\n"] +[350.790999, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.791197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.796451, "o", "0051ae\\r\\n\r\n"] +[350.796935, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.797133, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997823005 (current time 26.798678533)\r\n"] +[350.798837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.799085, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.803049, "o", "0064\\r\\n\r\n"] +[350.803588, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413455 (current time 26.798619488)\r\n"] +[350.806631, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[350.806827, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.809204, "o", "34\\r\\n\r\n"] +[350.809613, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898082 (current time 26.7985627515)\r\n"] +[350.811785, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.815943, "o", "ae92\\r\\n\r\n"] +[350.816341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999838852 (current time 26.7986219815)\r\n"] +[350.818932, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.831847, "o", "d8a6d8c1a64f0000\\r\\n\r\n"] +[350.832233, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994933675 (current time 26.798967466)\r\n"] +[350.835863, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.835973, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.849348, "o", "30eeeeeef2d048ee\\r\\n\r\n"] +[350.849787, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.849937, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994883705 (current time 26.798972463)\r\n"] +[350.854067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.854399, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.866936, "o", "5454540054546354\\r\\n\r\n"] +[350.867254, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.867466, "o", "[tsffs info] Cancelling event with next time 2.999500017 (current time 26.7989608165)\r\n"] +[350.871668, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.871803, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.884618, "o", "2121212121212121\\r\\n\r\n"] +[350.884836, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.885162, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[350.888919, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.889024, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.901281, "o", "3032303030313233\\r\\n\r\n"] +[350.901599, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[350.901742, "o", "[tsffs info] Cancelling event with next time 2.999500739 (current time 26.7989600945)\r\n"] +[350.90543, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.905565, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.917576, "o", "3738303132333435\\r\\n\r\n"] +[350.91791, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.918038, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500203 (current time 26.7989606305)\r\n"] +[350.921783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.921915, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.935241, "o", "3f317f0bbf303f3f\\r\\n\r\n"] +[350.935537, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.935737, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920585 (current time 26.798968775)\r\n"] +[350.939342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.939558, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.939711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.951581, "o", "3232323230313230\\r\\n\r\n"] +[350.9518, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.951938, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006535 (current time 26.79896018)\r\n"] +[350.955836, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.955952, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.956033, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.968053, "o", "d551512f31323335\\r\\n\r\n"] +[350.968341, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.968494, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994979315 (current time 26.798962902)\r\n"] +[350.972213, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.972361, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.972602, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[350.98468, "o", "3838383845bd4545\\r\\n\r\n"] +[350.984877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[350.985069, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497385 (current time 26.7989634485)\r\n"] +[350.988744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[350.988851, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[350.988982, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.000833, "o", "3961626364040404\\r\\n\r\n"] +[351.001147, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.001365, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950014 (current time 26.7989606935)\r\n"] +[351.005047, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.005226, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.005345, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.007963, "o", "c8\\r\\n\r\n"] +[351.008333, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.008682, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999896833 (current time 26.7985640005)\r\n"] +[351.010989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.011037, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.02283, "o", "6e60213937383a61\\r\\n\r\n"] +[351.023152, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994976605 (current time 26.798963173)\r\n"] +[351.02596, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.026168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.037825, "o", "0151515151515130\\r\\n\r\n"] +[351.038166, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.038344, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500527 (current time 26.7989603065)\r\n"] +[351.041418, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.041516, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.053276, "o", "3536373839616263\\r\\n\r\n"] +[351.05354, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.053906, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[351.056989, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.057046, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.057166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.069627, "o", "bf8787878787876e\\r\\n\r\n"] +[351.06982, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495448 (current time 26.7989653855)\r\n"] +[351.073606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.073785, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.077587, "o", "5251\\r\\n\r\n"] +[351.077887, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412535 (current time 26.79861958)\r\n"] +[351.079895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.080117, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.092999, "o", "0dffffffffffffff\\r\\n\r\n"] +[351.093334, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.093582, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999482076 (current time 26.7989787575)\r\n"] +[351.096295, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.096458, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.109152, "o", "781b03d2f3a8cbf1\\r\\n\r\n"] +[351.109544, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.109884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492066 (current time 26.7989687675)\r\n"] +[351.112576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.112688, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.124417, "o", "2026262626262626\\r\\n\r\n"] +[351.124812, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500121 (current time 26.7989607125)\r\n"] +[351.127746, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.140311, "o", "dddddddd8b333400\\r\\n\r\n"] +[351.140522, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.140738, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489853 (current time 26.7989709805)\r\n"] +[351.14355, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.143628, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.155754, "o", "56a8a893a8333333\\r\\n\r\n"] +[351.156217, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496419 (current time 26.7989644145)\r\n"] +[351.158881, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.163981, "o", "000052\\r\\n\r\n"] +[351.164329, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784743 (current time 26.7986760905)\r\n"] +[351.166411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.178801, "o", "66757a7a696e6c17\\r\\n\r\n"] +[351.179184, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948615 (current time 26.798965972)\r\n"] +[351.18136, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.18168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.186822, "o", "015109\\r\\n\r\n"] +[351.187097, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784513 (current time 26.7986763205)\r\n"] +[351.190265, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.190304, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.192686, "o", "01\\r\\n\r\n"] +[351.193136, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999898226 (current time 26.7985626075)\r\n"] +[351.195484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.195818, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.20593, "o", "ff00ffffff63\\r\\n\r\n"] +[351.20611, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999604262 (current time 26.7988565715)\r\n"] +[351.208755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.209084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.221509, "o", "66757a7a69a98000\\r\\n\r\n"] +[351.2218, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962865 (current time 26.798964547)\r\n"] +[351.22508, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.225152, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.231701, "o", "01513651\\r\\n\r\n"] +[351.232056, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997276825 (current time 26.798733151)\r\n"] +[351.23504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.235262, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.247145, "o", "010101ff01010101\\r\\n\r\n"] +[351.247529, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498747 (current time 26.7989620865)\r\n"] +[351.25019, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.250351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.262881, "o", "6161616161adadad\\r\\n\r\n"] +[351.263166, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[351.263363, "o", "[tsffs info] Cancelling event with next time 2.999493381 (current time 26.7989674525)\r\n"] +[351.265669, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.265864, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.268439, "o", "61\\r\\n\r\n"] +[351.268806, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.268969, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998980795 (current time 26.798562754)\r\n"] +[351.272433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.272675, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.284038, "o", "f5f5f5f5f5f5f5\\r\\n\r\n"] +[351.284375, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.284473, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995482475 (current time 26.798912586)\r\n"] +[351.288553, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.288666, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.288786, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.301232, "o", "afaf030303030367\\r\\n\r\n"] +[351.301633, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.301816, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994958915 (current time 26.798964942)\r\n"] +[351.305448, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.305551, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.305822, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.30967, "o", "5051\\r\\n\r\n"] +[351.310001, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.310187, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841308 (current time 26.7986195255)\r\n"] +[351.312674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.312686, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.319784, "o", "ffff0000\\r\\n\r\n"] +[351.31996, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.320218, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997230385 (current time 26.798737795)\r\n"] +[351.323199, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.323432, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.327203, "o", "0008\\r\\n\r\n"] +[351.327542, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414 (current time 26.7986194335)\r\n"] +[351.32985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.330053, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.336915, "o", "feff0110\\r\\n\r\n"] +[351.337248, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999722998 (current time 26.7987378355)\r\n"] +[351.340173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.340518, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.344263, "o", "0164\\r\\n\r\n"] +[351.344672, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841313 (current time 26.7986195205)\r\n"] +[351.346687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.346821, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.358594, "o", "0106a37474740100\\r\\n\r\n"] +[351.358844, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.359017, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499283 (current time 26.7989615505)\r\n"] +[351.361911, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.362168, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.371568, "o", "69a5c6c63031\\r\\n\r\n"] +[351.371901, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.372103, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999610291 (current time 26.7988505425)\r\n"] +[351.3748, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.375021, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.386969, "o", "810080696e677e73\\r\\n\r\n"] +[351.387266, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973435 (current time 26.79896349)\r\n"] +[351.390371, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.390606, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.394484, "o", "5101\\r\\n\r\n"] +[351.394802, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[351.396658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.402316, "o", "d851ae\\r\\n\r\n"] +[351.402551, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997808595 (current time 26.798679974)\r\n"] +[351.405837, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.417753, "o", "40402f6666666666\\r\\n\r\n"] +[351.418077, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498562 (current time 26.7989622715)\r\n"] +[351.421747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.4219, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.433854, "o", "23236666232323c7\\r\\n\r\n"] +[351.434251, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994989225 (current time 26.798961911)\r\n"] +[351.438164, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.438312, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.447779, "o", "6c75746f6679\\r\\n\r\n"] +[351.448199, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999610821 (current time 26.7988500125)\r\n"] +[351.450582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.455911, "o", "303132\\r\\n\r\n"] +[351.456264, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846015 (current time 26.798676232)\r\n"] +[351.458832, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.45895, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.471764, "o", "40e9a540b9b9e9a5\\r\\n\r\n"] +[351.472049, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.472278, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994929235 (current time 26.79896791)\r\n"] +[351.475083, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.475336, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.487665, "o", "282828fb04fbfb00\\r\\n\r\n"] +[351.487965, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994932295 (current time 26.798967604)\r\n"] +[351.491214, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.491334, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.491525, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.498029, "o", "33333362\\r\\n\r\n"] +[351.498317, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997275855 (current time 26.798733248)\r\n"] +[351.500407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.500543, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.505907, "o", "013b51\\r\\n\r\n"] +[351.506209, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.506341, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783452 (current time 26.7986773815)\r\n"] +[351.50883, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.509039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.520739, "o", "3333217233346436\\r\\n\r\n"] +[351.52086, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.521179, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995001505 (current time 26.798960683)\r\n"] +[351.524066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.52412, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.537369, "o", "c6c6c65a5a5a5a5a\\r\\n\r\n"] +[351.537731, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[351.537895, "o", "[tsffs info] Cancelling event with next time 2.999490888 (current time 26.7989699455)\r\n"] +[351.540755, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.540887, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.546008, "o", "015151\\r\\n\r\n"] +[351.546324, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[351.548374, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.55229, "o", "0151\\r\\n\r\n"] +[351.552638, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.552933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[351.556218, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.55637, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.568107, "o", "0030313233343536\\r\\n\r\n"] +[351.568344, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.56857, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995005015 (current time 26.798960332)\r\n"] +[351.572216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.57233, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.572581, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.576562, "o", "0103\\r\\n\r\n"] +[351.576818, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99984148 (current time 26.7986193535)\r\n"] +[351.579193, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.579488, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.59139, "o", "75753d32420880ff\\r\\n\r\n"] +[351.591635, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994963765 (current time 26.798964457)\r\n"] +[351.594432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.5947, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.606373, "o", "80807f8080808080\\r\\n\r\n"] +[351.606696, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994987685 (current time 26.798962065)\r\n"] +[351.609617, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.60976, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.621533, "o", "616161616161c932\\r\\n\r\n"] +[351.621845, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[351.622071, "o", "[tsffs info] Cancelling event with next time 2.9994989215 (current time 26.798961912)\r\n"] +[351.625007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.625157, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.63431, "o", "e90301050151\\r\\n\r\n"] +[351.634618, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.634881, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999612994 (current time 26.7988478395)\r\n"] +[351.63851, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.638651, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.638754, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.650772, "o", "5230313233343536\\r\\n\r\n"] +[351.651003, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.651153, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500322 (current time 26.7989605115)\r\n"] +[351.655086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.655359, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.667271, "o", "6641414141503738\\r\\n\r\n"] +[351.667541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.667844, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500114 (current time 26.7989607195)\r\n"] +[351.671629, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.671875, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.684985, "o", "ebdfdfdfdf383838\\r\\n\r\n"] +[351.685332, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[351.685573, "o", "[tsffs info] Cancelling event with next time 2.999488077 (current time 26.7989727565)\r\n"] +[351.689579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.689654, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[351.689808, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.702279, "o", "e4e4e4f7f741413d\\r\\n\r\n"] +[351.702599, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.702933, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492897 (current time 26.7989679365)\r\n"] +[351.706493, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.706677, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.712043, "o", "01ae51\\r\\n\r\n"] +[351.712414, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999782268 (current time 26.7986785655)\r\n"] +[351.714605, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.714833, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.726627, "o", "ae30313233343536\\r\\n\r\n"] +[351.72705, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498037 (current time 26.7989627965)\r\n"] +[351.72977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.73002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.733735, "o", "3031\\r\\n\r\n"] +[351.734253, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999841402 (current time 26.7986194315)\r\n"] +[351.737933, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.738147, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.75051, "o", "c5ae69c5c5453031\\r\\n\r\n"] +[351.750892, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949426 (current time 26.7989665735)\r\n"] +[351.754844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.755086, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.758988, "o", "6363\\r\\n\r\n"] +[351.759662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411415 (current time 26.798619692)\r\n"] +[351.762159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.762275, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.774845, "o", "f862fe40e02f3132\\r\\n\r\n"] +[351.775254, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494324 (current time 26.7989665095)\r\n"] +[351.778213, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.783507, "o", "9f5151\\r\\n\r\n"] +[351.784154, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999783084 (current time 26.7986777495)\r\n"] +[351.788039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.800009, "o", "1101000000ff8383\\r\\n\r\n"] +[351.800201, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949834 (current time 26.7989624935)\r\n"] +[351.804315, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[351.804354, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.808597, "o", "0b7b\\r\\n\r\n"] +[351.808927, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999839009 (current time 26.7986218245)\r\n"] +[351.81151, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.8241, "o", "0000ffffffff7f1c\\r\\n\r\n"] +[351.824456, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994884025 (current time 26.798972431)\r\n"] +[351.827285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.835357, "o", "6466756721\\r\\n\r\n"] +[351.835601, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999670337 (current time 26.7987904965)\r\n"] +[351.839273, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.851946, "o", "9b9b9b9b9b9b9b34\\r\\n\r\n"] +[351.852219, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491452 (current time 26.7989693815)\r\n"] +[351.856243, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.856309, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.859022, "o", "a2\\r\\n\r\n"] +[351.859383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999897019 (current time 26.7985638145)\r\n"] +[351.861676, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.865393, "o", "0201\\r\\n\r\n"] +[351.865796, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415035 (current time 26.79861933)\r\n"] +[351.868068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.880697, "o", "c9c8a9a8ffff9bc8\\r\\n\r\n"] +[351.881013, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487859 (current time 26.7989729745)\r\n"] +[351.883512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.896496, "o", "69cbcbcbcbcbcbcb\\r\\n\r\n"] +[351.896822, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999484154 (current time 26.7989766795)\r\n"] +[351.899344, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.906304, "o", "fe515151\\r\\n\r\n"] +[351.90656, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997251985 (current time 26.798735635)\r\n"] +[351.908985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.918529, "o", "001801fa9e61\\r\\n\r\n"] +[351.91868, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[351.91896, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999610496 (current time 26.7988503375)\r\n"] +[351.92246, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.926515, "o", "3030\\r\\n\r\n"] +[351.926962, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414345 (current time 26.798619399)\r\n"] +[351.929393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.929498, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.941222, "o", "3438c63434242424\\r\\n\r\n"] +[351.941633, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498944 (current time 26.7989618895)\r\n"] +[351.944548, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.947176, "o", "b0\\r\\n\r\n"] +[351.947576, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999897056 (current time 26.7985637775)\r\n"] +[351.949762, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.955367, "o", "8000fe\\r\\n\r\n"] +[351.955682, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997821485 (current time 26.798678685)\r\n"] +[351.958497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.971279, "o", "e2e2e2e2deaffe78\\r\\n\r\n"] +[351.97149, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999488277 (current time 26.7989725565)\r\n"] +[351.974704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[351.987318, "o", "50d09d9d9d9d9d9e\\r\\n\r\n"] +[351.987518, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491358 (current time 26.7989694755)\r\n"] +[351.990815, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[351.991005, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.003405, "o", "014e4e4e280080ff\\r\\n\r\n"] +[352.003811, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943725 (current time 26.798966461)\r\n"] +[352.007216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.007255, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.011243, "o", "5151\\r\\n\r\n"] +[352.011658, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[352.013681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.019042, "o", "01ae41\\r\\n\r\n"] +[352.019393, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997822945 (current time 26.798678539)\r\n"] +[352.022579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.034386, "o", "3031323334353637\\r\\n\r\n"] +[352.034701, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[352.038623, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.038739, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.050668, "o", "6565414141454141\\r\\n\r\n"] +[352.050882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.051126, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500161 (current time 26.7989606725)\r\n"] +[352.054834, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.054954, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.067374, "o", "000266337aa5e9a0\\r\\n\r\n"] +[352.067639, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.067789, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994957235 (current time 26.79896511)\r\n"] +[352.071681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.071817, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.072021, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.0745, "o", "50\\r\\n\r\n"] +[352.074965, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998981335 (current time 26.7985627)\r\n"] +[352.078416, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.078535, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.090594, "o", "3032333435363738\\r\\n\r\n"] +[352.090903, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500089 (current time 26.7989607445)\r\n"] +[352.094858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.094962, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.10732, "o", "4141a0a1a517ffa1\\r\\n\r\n"] +[352.107673, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994935735 (current time 26.79896726)\r\n"] +[352.111607, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.124582, "o", "48fecececececee8\\r\\n\r\n"] +[352.124892, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994846675 (current time 26.798976166)\r\n"] +[352.12783, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.132972, "o", "015151\\r\\n\r\n"] +[352.133321, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999784575 (current time 26.7986762585)\r\n"] +[352.136829, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.136916, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.150231, "o", "66757a7ae2deaffe\\r\\n\r\n"] +[352.150531, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994893145 (current time 26.798971519)\r\n"] +[352.154812, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.158814, "o", "5151\\r\\n\r\n"] +[352.159242, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998412755 (current time 26.798619558)\r\n"] +[352.161698, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.161721, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.165563, "o", "0000\\r\\n\r\n"] +[352.16585, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[352.168554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.180304, "o", "3536373839616263\\r\\n\r\n"] +[352.180654, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949973 (current time 26.7989611035)\r\n"] +[352.183258, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.195672, "o", "7f80147f7f7f7f7f\\r\\n\r\n"] +[352.195954, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492378 (current time 26.7989684555)\r\n"] +[352.198515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.202485, "o", "0151\\r\\n\r\n"] +[352.202864, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998414005 (current time 26.798619433)\r\n"] +[352.206269, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.206392, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.212279, "o", "bbbbbb\\r\\n\r\n"] +[352.212617, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997777075 (current time 26.798683126)\r\n"] +[352.2149, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.226796, "o", "014f023031323334\\r\\n\r\n"] +[352.227059, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994994395 (current time 26.798961394)\r\n"] +[352.229764, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.242025, "o", "66757a7a69a8a801\\r\\n\r\n"] +[352.242381, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495098 (current time 26.7989657355)\r\n"] +[352.245285, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.250477, "o", "303132\\r\\n\r\n"] +[352.250779, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997846015 (current time 26.798676232)\r\n"] +[352.254678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.254819, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.258736, "o", "0137\\r\\n\r\n"] +[352.259107, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998413035 (current time 26.79861953)\r\n"] +[352.261515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.273168, "o", "0151303132333435\\r\\n\r\n"] +[352.273457, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500536 (current time 26.7989602975)\r\n"] +[352.276377, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.276562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.283129, "o", "e90a5151\\r\\n\r\n"] +[352.283441, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997252555 (current time 26.798735578)\r\n"] +[352.287213, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.287344, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.287466, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.299484, "o", "48c87c7c30313233\\r\\n\r\n"] +[352.299791, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.299872, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496568 (current time 26.7989642655)\r\n"] +[352.304111, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.304158, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.304176, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.317252, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[352.317664, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.317894, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[352.321857, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.321961, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.33463, "o", "66757a7a69a8a8a8\\r\\n\r\n"] +[352.334908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493755 (current time 26.7989670785)\r\n"] +[352.338796, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.338885, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.339022, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.351685, "o", "66757a7a696e6721\\r\\n\r\n"] +[352.352476, "o", "All characters were correct!\\r\\n\r\n"] +[352.360915, "o", "[tsffs info] on_simulation_stopped(Solution(Solution { kind: Exception }))\r\n[tsffs info] Cancelling event with next time 2.998783565 (current time 26.7996772685)\r\n"] +[352.361169, "o", "[Objective #0] run time: 0h-1m-36s, clients: 1, corpus: 10, objectives: 2, executions: 1792, exec/sec: 18.61\r\n"] +[352.363725, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.363865, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.375832, "o", "66757a6e67213937\\r\\n\r\n"] +[352.376191, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.379173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.379345, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.391122, "o", "667477686c263634\\r\\n\r\n"] +[352.3914, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.391654, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983375 (current time 26.798962496)\r\n"] +[352.39432, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.394393, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.394585, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[352.394768, "o", "[tsffs info] Resuming simulation\r\n"] +[352.406528, "o", "66757a6e67213937\\r\\n\r\n"] +[352.406979, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.409547, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.409692, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.421566, "o", "667477686c263634\\r\\n\r\n"] +[352.421925, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.42207, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983375 (current time 26.798962496)\r\n"] +[352.425038, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.425144, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.437136, "o", "66757a6e67213937\\r\\n\r\n"] +[352.437405, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.437574, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.440838, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.440985, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.453225, "o", "66757a6e67213937\\r\\n\r\n"] +[352.453608, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.453767, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.456985, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.457116, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.469246, "o", "66757a6e67213937\\r\\n\r\n"] +[352.469576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.469612, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.473329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.473452, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.473567, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.485476, "o", "667477686c263634\\r\\n\r\n"] +[352.48572, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994983375 (current time 26.798962496)\r\n"] +[352.489582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.501674, "o", "66757a6e67213937\\r\\n\r\n"] +[352.501726, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.505599, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.505718, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.517898, "o", "66757a6e67213937\\r\\n\r\n"] +[352.518238, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.5184, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.522223, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.52229, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.522411, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.534436, "o", "66757a6e67213937\\r\\n\r\n"] +[352.534863, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.538561, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.538778, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.550807, "o", "667477686c263937\\r\\n\r\n"] +[352.551263, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994981865 (current time 26.798962647)\r\n"] +[352.555066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.555198, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.567325, "o", "66757a6e67213634\\r\\n\r\n"] +[352.56771, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497379 (current time 26.7989634545)\r\n"] +[352.571802, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.572098, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.584187, "o", "66757a6e67213937\\r\\n\r\n"] +[352.584552, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.588419, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.588532, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.58868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.600774, "o", "66757a6e67213937\\r\\n\r\n"] +[352.601088, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.60111, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.605165, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.605228, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.617298, "o", "66757a6e67213937\\r\\n\r\n"] +[352.617616, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.617712, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.621691, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.621868, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.633984, "o", "66757a6e67213937\\r\\n\r\n"] +[352.634327, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.634509, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.638391, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.638485, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.63874, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.650904, "o", "66757a6e67213937\\r\\n\r\n"] +[352.651208, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.651407, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.655171, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.655356, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.66739, "o", "66757a6e67213937\\r\\n\r\n"] +[352.667663, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.667914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.671776, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.671899, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.684166, "o", "66757a686c263937\\r\\n\r\n"] +[352.684464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.684581, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971445 (current time 26.798963689)\r\n"] +[352.688488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.688593, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.688763, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.700879, "o", "66757a6e67213937\\r\\n\r\n"] +[352.701208, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.701398, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.705261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.705421, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.717522, "o", "66757a6e67213937\\r\\n\r\n"] +[352.717906, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.718153, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.721667, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.721801, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.73396, "o", "66757a6e67213937\\r\\n\r\n"] +[352.734229, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.734424, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.738216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.738328, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.738347, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.750635, "o", "66757a6e67213937\\r\\n\r\n"] +[352.750979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.751177, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.754774, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.75499, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.767032, "o", "66757a6e67213937\\r\\n\r\n"] +[352.767375, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.767471, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.771582, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.771705, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.771843, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.783975, "o", "66757a6e67213634\\r\\n\r\n"] +[352.784307, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[352.784318, "o", "[tsffs info] Cancelling event with next time 2.999497379 (current time 26.7989634545)\r\n"] +[352.788153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.788264, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.788454, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.80041, "o", "6674776e67213937\\r\\n\r\n"] +[352.800836, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.801054, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949827 (current time 26.7989625635)\r\n"] +[352.804844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.805015, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[352.805203, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.817108, "o", "66757a6e67213937\\r\\n\r\n"] +[352.817467, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.81768, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.821648, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.821784, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.833872, "o", "66757a6e67213937\\r\\n\r\n"] +[352.834199, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.834414, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.838288, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[352.838469, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.85056, "o", "66757a6e67213937\\r\\n\r\n"] +[352.850876, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.851139, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.85484, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.854964, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.867075, "o", "66757a6e67213937\\r\\n\r\n"] +[352.867476, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.867662, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.871536, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.871675, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.883727, "o", "66757a6e67213937\\r\\n\r\n"] +[352.884089, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[352.884111, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.888067, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.888152, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.900207, "o", "66757a6e67213937\\r\\n\r\n"] +[352.90066, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.904625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.904709, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.917007, "o", "66757a6e6c263937\\r\\n\r\n"] +[352.917391, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994960555 (current time 26.798964778)\r\n"] +[352.921299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.921428, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.933868, "o", "66757a6e67213937\\r\\n\r\n"] +[352.934329, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.938215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.950339, "o", "66757a6e67213937\\r\\n\r\n"] +[352.950746, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.954706, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[352.954813, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.966883, "o", "66757a6e67213937\\r\\n\r\n"] +[352.967568, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.971497, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[352.983507, "o", "66757a6e67213937\\r\\n\r\n"] +[352.983969, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[352.987928, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.000093, "o", "66757a6e67213937\\r\\n\r\n"] +[353.000433, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.004527, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.004676, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.016748, "o", "66757a6e67213937\\r\\n\r\n"] +[353.017077, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.021279, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.021399, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.033352, "o", "66757a6e67213937\\r\\n\r\n"] +[353.033687, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.03765, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.037811, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.049834, "o", "66757a6e67213937\\r\\n\r\n"] +[353.049979, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.050162, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.054162, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.05429, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.066364, "o", "66757a6e67213934\\r\\n\r\n"] +[353.066679, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.06689, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497306 (current time 26.7989635275)\r\n"] +[353.071208, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.071324, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.08336, "o", "66757a6e67213937\\r\\n\r\n"] +[353.083621, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.088024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.099984, "o", "66757a6e67213937\\r\\n\r\n"] +[353.100248, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.104579, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.104719, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.116788, "o", "66757a6e67213937\\r\\n\r\n"] +[353.117097, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.117277, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.121263, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.121488, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.133384, "o", "6674776e67213937\\r\\n\r\n"] +[353.133692, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.133739, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949827 (current time 26.7989625635)\r\n"] +[353.137884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.138032, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.138155, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.150216, "o", "66757a6e67213937\\r\\n\r\n"] +[353.150501, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.150815, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.154907, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.155132, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.166995, "o", "66757a6e67213937\\r\\n\r\n"] +[353.167271, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.167528, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.171407, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.171489, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.171668, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.183779, "o", "66757a6e67213937\\r\\n\r\n"] +[353.184011, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[353.184085, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.188061, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.188212, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.200281, "o", "66757a6e67213937\\r\\n\r\n"] +[353.200523, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.200725, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.204734, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.205002, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.205084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.217106, "o", "66757a6e67213937\\r\\n\r\n"] +[353.217406, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.217717, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.22163, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.221724, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.221804, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.234087, "o", "66757a6e67213937\\r\\n\r\n"] +[353.234389, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.234571, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.238291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.23847, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.250891, "o", "66757a6e67213937\\r\\n\r\n"] +[353.251219, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.251434, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.25512, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.255396, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.267539, "o", "66757a6e67213937\\r\\n\r\n"] +[353.267652, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.268062, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.271687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.271849, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.283892, "o", "66757a6e67213937\\r\\n\r\n"] +[353.284195, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.284442, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.28811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.288239, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.288435, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.300384, "o", "66757a6e67213937\\r\\n\r\n"] +[353.300706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.300941, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.304705, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.304861, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.305077, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.317274, "o", "66757a6e67213937\\r\\n\r\n"] +[353.317688, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.31787, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.321542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.32165, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.334231, "o", "66757a6e67213937\\r\\n\r\n"] +[353.334649, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.338392, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.338634, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.350778, "o", "66757a6e67213937\\r\\n\r\n"] +[353.351063, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.351277, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.354923, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.355165, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.355315, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.367244, "o", "66757a6e67213937\\r\\n\r\n"] +[353.367511, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.367736, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.371528, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.371751, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.384314, "o", "66747a6e67213937\\r\\n\r\n"] +[353.384817, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.384957, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972615 (current time 26.798963572)\r\n"] +[353.388658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.388741, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.388898, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.400988, "o", "66757a6e67213937\\r\\n\r\n"] +[353.401185, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.401479, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.404977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.405139, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.405219, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.417436, "o", "66757a6e67213937\\r\\n\r\n"] +[353.417775, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.421574, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.421687, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.421931, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.433942, "o", "66757a6e67213937\\r\\n\r\n"] +[353.434157, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.434347, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.438153, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.438327, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.450465, "o", "66757a6e67213934\\r\\n\r\n"] +[353.450657, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.450845, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497306 (current time 26.7989635275)\r\n"] +[353.4548, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.454903, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.467419, "o", "66757a6e67213937\\r\\n\r\n"] +[353.467837, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.46805, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.471682, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.471821, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.471948, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.48409, "o", "66757a6e67213937\\r\\n\r\n"] +[353.484424, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.484698, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.488515, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.488626, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.500782, "o", "66757a6e67213937\\r\\n\r\n"] +[353.501202, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.50509, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.505393, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.505443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.5178, "o", "66757a6e67213937\\r\\n\r\n"] +[353.518173, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.52188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.522044, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[353.522058, "o", "[tsffs info] Resuming simulation\r\n"] +[353.53439, "o", "66757a6e67213937\\r\\n\r\n"] +[353.534906, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.538417, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.53882, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.550782, "o", "66757a6e67213937\\r\\n\r\n"] +[353.551245, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.555065, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.555251, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.567144, "o", "6675776e67213937\\r\\n\r\n"] +[353.567571, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949824 (current time 26.7989625935)\r\n"] +[353.571664, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.571681, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.571833, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.583767, "o", "66757a6e67213937\\r\\n\r\n"] +[353.584107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.58426, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.588231, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.588495, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.588535, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.600651, "o", "66757a6e67213937\\r\\n\r\n"] +[353.601134, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.604917, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.604958, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.605146, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.617137, "o", "66757a6e67213937\\r\\n\r\n"] +[353.617478, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.617668, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.621695, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.621807, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.634105, "o", "66757a6e67213937\\r\\n\r\n"] +[353.634372, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.634574, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.638545, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.638601, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.638746, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.650784, "o", "66757a6e67263937\\r\\n\r\n"] +[353.651072, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.651087, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497114 (current time 26.7989637195)\r\n"] +[353.655025, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.655183, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.667498, "o", "66757a6e67213937\\r\\n\r\n"] +[353.667851, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.668031, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.671712, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.671926, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.684149, "o", "66757a6e67213937\\r\\n\r\n"] +[353.684469, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.684795, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.688458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.688666, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.700833, "o", "66757a6e67213937\\r\\n\r\n"] +[353.701244, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.705084, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.705393, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.717841, "o", "66757a6e67213937\\r\\n\r\n"] +[353.718187, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[353.718205, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.721887, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.722054, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.734186, "o", "66757a6e67213937\\r\\n\r\n"] +[353.73452, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.734731, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.738332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.738449, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.750516, "o", "66757a6e67213937\\r\\n\r\n"] +[353.750844, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.751058, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.754844, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.754968, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.76706, "o", "66757a6e67213937\\r\\n\r\n"] +[353.767426, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.767639, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.77159, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.771701, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.783861, "o", "66757a6e67213937\\r\\n\r\n"] +[353.784234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.784462, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.788261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.788526, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.800881, "o", "66757a6e67213937\\r\\n\r\n"] +[353.801144, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.801339, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.805001, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.80526, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.817345, "o", "66757a6e67213937\\r\\n\r\n"] +[353.817562, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.81773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.821576, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.821681, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.833732, "o", "66757a6e67213937\\r\\n\r\n"] +[353.834098, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.834113, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.838133, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.83836, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.838577, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.850963, "o", "66757a6e67213937\\r\\n\r\n"] +[353.851448, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.851651, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.855146, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.855329, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.867452, "o", "66757a6e67213937\\r\\n\r\n"] +[353.867765, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.868033, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.871763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[353.872047, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.884242, "o", "66757a6e6c213937\\r\\n\r\n"] +[353.884651, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.884844, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961695 (current time 26.798964664)\r\n"] +[353.888433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.888584, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.900739, "o", "66757a6e67213937\\r\\n\r\n"] +[353.900995, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.901261, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.904901, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.904998, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.917109, "o", "66757a6e67213637\\r\\n\r\n"] +[353.917492, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.917639, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497301 (current time 26.7989635325)\r\n"] +[353.921529, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.921705, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.933832, "o", "66757a6e67213937\\r\\n\r\n"] +[353.934217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.934355, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.938187, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.938303, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.95054, "o", "66757a6e67213937\\r\\n\r\n"] +[353.950884, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[353.951024, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.955073, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.955376, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.967419, "o", "66757a6e67213937\\r\\n\r\n"] +[353.96764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.967804, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.97168, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.971778, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.971845, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[353.983845, "o", "66757a6e67213937\\r\\n\r\n"] +[353.984102, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[353.984282, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[353.988212, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[353.98833, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[353.988601, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.000821, "o", "66757a6e67213937\\r\\n\r\n"] +[354.001013, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.004925, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.005092, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.017193, "o", "66757a6e67213937\\r\\n\r\n"] +[354.017531, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[354.017735, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.021468, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.021722, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.021904, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.03398, "o", "66757a6e67213937\\r\\n\r\n"] +[354.034439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.038314, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.038436, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.050561, "o", "66757a6867213937\\r\\n\r\n"] +[354.050764, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.051104, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498317 (current time 26.7989625165)\r\n"] +[354.054874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.054941, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.055233, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.096579, "o", "66757a6e67213937\\r\\n\r\n"] +[354.097501, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.100333, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.100489, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.14199, "o", "66757a6e67213937\\r\\n\r\n"] +[354.143054, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.147969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.189686, "o", "66757a6e67213937\\r\\n\r\n"] +[354.190636, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.193715, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.206766, "o", "db6675f0fe0cdb66\\r\\n\r\n"] +[354.207089, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906665 (current time 26.798970167)\r\n"] +[354.209941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.210044, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.222515, "o", "3132333435c937ff\\r\\n\r\n"] +[354.222812, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496487 (current time 26.7989643465)\r\n"] +[354.226045, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.226235, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.239465, "o", "fbffff3133333464\\r\\n\r\n"] +[354.239733, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999493016 (current time 26.7989678175)\r\n"] +[354.242862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.243039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.254947, "o", "6e67213937383961\\r\\n\r\n"] +[354.255353, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984495 (current time 26.798962384)\r\n"] +[354.25858, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.258613, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.271036, "o", "8a7a6e6721667568\\r\\n\r\n"] +[354.271389, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.271551, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496078 (current time 26.7989647555)\r\n"] +[354.274591, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.274802, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.286942, "o", "56309a9a30313233\\r\\n\r\n"] +[354.287296, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497947 (current time 26.7989628865)\r\n"] +[354.290638, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.30293, "o", "5e5e5e667566757a\\r\\n\r\n"] +[354.303206, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948185 (current time 26.798966015)\r\n"] +[354.306822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.318528, "o", "3031323334353637\\r\\n\r\n"] +[354.318742, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[354.322363, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.322613, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.334622, "o", "66757a6e67213937\\r\\n\r\n"] +[354.334908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.33876, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.338842, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.350961, "o", "646566414141d7d7\\r\\n\r\n"] +[354.351248, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.351563, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497526 (current time 26.7989633075)\r\n"] +[354.355405, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.368122, "o", "ff7f595959590b40\\r\\n\r\n"] +[354.368608, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494815 (current time 26.7989660185)\r\n"] +[354.372375, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.37258, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.385015, "o", "a8a8a8b8a8a83939\\r\\n\r\n"] +[354.385548, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492717 (current time 26.7989681165)\r\n"] +[354.389424, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.389562, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.401427, "o", "3334353637383961\\r\\n\r\n"] +[354.401889, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499823 (current time 26.7989610105)\r\n"] +[354.405767, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.405909, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.418308, "o", "65757a7a6a213937\\r\\n\r\n"] +[354.418592, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496316 (current time 26.7989645175)\r\n"] +[354.422626, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.422741, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.435492, "o", "66757a6e67213937\\r\\n\r\n"] +[354.435952, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.439688, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.439772, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.452735, "o", "66757a6e672139c9\\r\\n\r\n"] +[354.453111, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.45333, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496028 (current time 26.7989648055)\r\n"] +[354.456856, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.457078, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.469284, "o", "66767a6e67213937\\r\\n\r\n"] +[354.469496, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994972135 (current time 26.79896362)\r\n"] +[354.47332, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.473488, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.485571, "o", "6657696e67213937\\r\\n\r\n"] +[354.485812, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.486039, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982305 (current time 26.798962603)\r\n"] +[354.489632, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.489811, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.502089, "o", "628c8c781b032df4\\r\\n\r\n"] +[354.502303, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494143 (current time 26.7989666905)\r\n"] +[354.506006, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.506045, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.506276, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.518373, "o", "66757a6e67213937\\r\\n\r\n"] +[354.518606, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.522228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.522413, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.534646, "o", "66757a6e67213937\\r\\n\r\n"] +[354.535055, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.538847, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.538957, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.55164, "o", "373838a5a5e9a540\\r\\n\r\n"] +[354.552017, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994952635 (current time 26.79896557)\r\n"] +[354.555768, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.555855, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.568105, "o", "66757a6e67213937\\r\\n\r\n"] +[354.568541, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.56875, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.572251, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.572379, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.584932, "o", "b8666b6666a0a0a0\\r\\n\r\n"] +[354.585206, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994944065 (current time 26.798966427)\r\n"] +[354.589069, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.589149, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.601268, "o", "35363536e9383961\\r\\n\r\n"] +[354.601542, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994984835 (current time 26.79896235)\r\n"] +[354.605433, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.605647, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.61754, "o", "7a21212121212121\\r\\n\r\n"] +[354.617928, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499612 (current time 26.7989612215)\r\n"] +[354.621744, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.622017, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.62215, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.634502, "o", "f0f0f07a696e6721\\r\\n\r\n"] +[354.634757, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494107 (current time 26.7989667265)\r\n"] +[354.638759, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.638984, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.651078, "o", "757a6e67213907c9\\r\\n\r\n"] +[354.651495, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496155 (current time 26.7989646785)\r\n"] +[354.6554, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.65567, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.668098, "o", "14e29eff7f000072\\r\\n\r\n"] +[354.668405, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494299 (current time 26.7989665345)\r\n"] +[354.67228, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.672418, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.684892, "o", "21af666e67e4af37\\r\\n\r\n"] +[354.685196, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.685531, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492843 (current time 26.7989679905)\r\n"] +[354.689125, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.689262, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.701172, "o", "2121212121212121\\r\\n\r\n"] +[354.701587, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.701764, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995008865 (current time 26.798959947)\r\n"] +[354.705362, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.705459, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.717421, "o", "6666666666666666\\r\\n\r\n"] +[354.717883, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499235 (current time 26.7989615985)\r\n"] +[354.721878, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.722158, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.730206, "o", "39396161fe\\r\\n\r\n"] +[354.730722, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99966805 (current time 26.7987927835)\r\n"] +[354.732969, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.73301, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.744937, "o", "67213937383961f0\\r\\n\r\n"] +[354.745475, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994985715 (current time 26.798962262)\r\n"] +[354.747885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.759969, "o", "acac414141414141\\r\\n\r\n"] +[354.760446, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994959565 (current time 26.798964877)\r\n"] +[354.763127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.763248, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.775746, "o", "d8f0f0f0eff0f0f0\\r\\n\r\n"] +[354.776114, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999489734 (current time 26.7989710995)\r\n"] +[354.779174, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.779404, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.783047, "o", "1717\\r\\n\r\n"] +[354.783448, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998411725 (current time 26.798619661)\r\n"] +[354.786926, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.787148, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.787349, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.799207, "o", "66757a6e67213937\\r\\n\r\n"] +[354.799664, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.80364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.803762, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.816771, "o", "66757afafafafafa\\r\\n\r\n"] +[354.817316, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[354.817445, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999487171 (current time 26.7989736625)\r\n"] +[354.8216, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[354.821709, "o", "[tsffs info] Resuming simulation\r\n"] +[354.833463, "o", "3333323333333375\\r\\n\r\n"] +[354.833804, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995002125 (current time 26.798960621)\r\n"] +[354.837815, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.838026, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.838157, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.845847, "o", "0101000000\\r\\n\r\n"] +[354.846256, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996715215 (current time 26.798789312)\r\n"] +[354.848742, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[354.848999, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.861813, "o", "66ff3a8bffffffff\\r\\n\r\n"] +[354.862179, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99948559 (current time 26.7989752435)\r\n"] +[354.864649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.87677, "o", "e6f001003937382f\\r\\n\r\n"] +[354.8771, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496641 (current time 26.7989641925)\r\n"] +[354.879884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.892042, "o", "10affe781b034000\\r\\n\r\n"] +[354.892402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494699 (current time 26.7989661345)\r\n"] +[354.895093, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.907039, "o", "66757a6e67213937\\r\\n\r\n"] +[354.907306, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.909899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.922049, "o", "66757a6e67213937\\r\\n\r\n"] +[354.922435, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.925504, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.937769, "o", "f26675f0f0f0f030\\r\\n\r\n"] +[354.93814, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943355 (current time 26.798966498)\r\n"] +[354.941241, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.9534, "o", "5353663c7a6e6721\\r\\n\r\n"] +[354.953597, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[354.953796, "o", "[tsffs info] Cancelling event with next time 2.999496373 (current time 26.7989644605)\r\n"] +[354.957066, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.957271, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.969918, "o", "642bd8b4282940d3\\r\\n\r\n"] +[354.970048, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994953925 (current time 26.798965441)\r\n"] +[354.973689, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.973955, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[354.986582, "o", "66757a6e67213937\\r\\n\r\n"] +[354.986738, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[354.990276, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[354.990436, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[354.990609, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.003205, "o", "f064d81d2df0f0f0\\r\\n\r\n"] +[355.00358, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.003694, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994920925 (current time 26.798968741)\r\n"] +[355.007024, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.007314, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.019386, "o", "66757a6e67213937\\r\\n\r\n"] +[355.019738, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.0201, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.02338, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.023502, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.035576, "o", "00007a66757a7a83\\r\\n\r\n"] +[355.035872, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[355.036094, "o", "[tsffs info] Cancelling event with next time 2.999496635 (current time 26.7989641985)\r\n"] +[355.039526, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.03965, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.051579, "o", "3835363738636363\\r\\n\r\n"] +[355.051882, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.052163, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949969 (current time 26.7989611435)\r\n"] +[355.055578, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.055778, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.05593, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.067995, "o", "66757a6e67213937\\r\\n\r\n"] +[355.068206, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.068536, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.07227, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.072342, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.084457, "o", "66757a6e30313233\\r\\n\r\n"] +[355.084695, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497713 (current time 26.7989631205)\r\n"] +[355.088522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.088668, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.088861, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.101687, "o", "36ffff396162639c\\r\\n\r\n"] +[355.102025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.102329, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937855 (current time 26.798967048)\r\n"] +[355.105898, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.106018, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.106209, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.118814, "o", "ffffffff30313233\\r\\n\r\n"] +[355.119083, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.119284, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994906735 (current time 26.79897016)\r\n"] +[355.123056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.123169, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.123335, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.135413, "o", "66757a6e66213937\\r\\n\r\n"] +[355.135991, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497258 (current time 26.7989635755)\r\n"] +[355.139702, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.13983, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.152464, "o", "5f5f5f5f5f7ffd51\\r\\n\r\n"] +[355.152894, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.153096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490245 (current time 26.7989705885)\r\n"] +[355.156732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.157001, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.169021, "o", "66757a6e67213937\\r\\n\r\n"] +[355.169378, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.172977, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.173033, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.185179, "o", "66757a6e67213937\\r\\n\r\n"] +[355.185756, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.189121, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.189187, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.201742, "o", "f0f0f0f0f1f030f0\\r\\n\r\n"] +[355.202305, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492344 (current time 26.7989684895)\r\n"] +[355.205886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.205975, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.206182, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.218792, "o", "3066757a7a696e6c\\r\\n\r\n"] +[355.219038, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.219303, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994950135 (current time 26.79896582)\r\n"] +[355.223039, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.223219, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.235369, "o", "007533333333f0f0\\r\\n\r\n"] +[355.23558, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498049 (current time 26.7989627845)\r\n"] +[355.239687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.239792, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.251763, "o", "8541414141414141\\r\\n\r\n"] +[355.252213, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99950035 (current time 26.7989604835)\r\n"] +[355.255846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.256147, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.268079, "o", "d0d0d03839616263\\r\\n\r\n"] +[355.26849, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.268723, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994966605 (current time 26.798964173)\r\n"] +[355.272323, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.284341, "o", "696e672139373839\\r\\n\r\n"] +[355.284631, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.285011, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994982625 (current time 26.798962571)\r\n"] +[355.28874, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.288926, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.301754, "o", "657fffffb9b9b9b9\\r\\n\r\n"] +[355.302117, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994889265 (current time 26.798971907)\r\n"] +[355.305975, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.306123, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.318519, "o", "66757a6e6721c962\\r\\n\r\n"] +[355.318772, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.319021, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994961245 (current time 26.798964709)\r\n"] +[355.32276, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.322988, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.323109, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.335362, "o", "7233e80200000000\\r\\n\r\n"] +[355.33568, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.335826, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499671 (current time 26.7989611625)\r\n"] +[355.339555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.33975, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.339855, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.352308, "o", "6e992139afe0e0e0\\r\\n\r\n"] +[355.352568, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.352821, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994930055 (current time 26.798967828)\r\n"] +[355.356609, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.35673, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.368836, "o", "66757a6e67213937\\r\\n\r\n"] +[355.369234, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.369301, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.373116, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.373228, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.385087, "o", "3321626364656641\\r\\n\r\n"] +[355.385398, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.385611, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994999735 (current time 26.79896086)\r\n"] +[355.389376, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.38951, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.402971, "o", "ebebebebebebebeb\\r\\n\r\n"] +[355.40332, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.403381, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994817265 (current time 26.798979107)\r\n"] +[355.406994, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.407118, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.407398, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.42064, "o", "3f3f3f3f3f3f3f3f\\r\\n\r\n"] +[355.421052, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994905265 (current time 26.798970307)\r\n"] +[355.424297, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.424389, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.424528, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.436465, "o", "66757a6e67213937\\r\\n\r\n"] +[355.436948, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.440278, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.440374, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.440567, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.45254, "o", "6666757a6e672180\\r\\n\r\n"] +[355.452994, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973035 (current time 26.79896353)\r\n"] +[355.456588, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.456798, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.468885, "o", "6263646566bf4141\\r\\n\r\n"] +[355.469244, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497579 (current time 26.7989632545)\r\n"] +[355.472991, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.473082, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.48521, "o", "66757a6e67213937\\r\\n\r\n"] +[355.485594, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.485741, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.48941, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.48949, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.502005, "o", "66757a6e67213a37\\r\\n\r\n"] +[355.502434, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.502728, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994962625 (current time 26.798964571)\r\n"] +[355.506286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.506439, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.519807, "o", "f0f0f0f0f0f0f07a\\r\\n\r\n"] +[355.520088, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.520481, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491093 (current time 26.7989697405)\r\n"] +[355.523761, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.5239, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.535967, "o", "66757a6e67213937\\r\\n\r\n"] +[355.536357, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.536584, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.540086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.540244, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.540433, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.552077, "o", "4141414141414141\\r\\n\r\n"] +[355.552379, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[355.552636, "o", "[tsffs info] Cancelling event with next time 2.9995005345 (current time 26.798960299)\r\n"] +[355.556186, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.556291, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.556457, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.568484, "o", "66757a6e67213937\\r\\n\r\n"] +[355.568792, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.56901, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.572835, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.584853, "o", "33013501343435c2\\r\\n\r\n"] +[355.585091, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.585351, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499313 (current time 26.7989615205)\r\n"] +[355.588947, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.589078, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.599558, "o", "00000500666721\\r\\n\r\n"] +[355.599903, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995574225 (current time 26.798903411)\r\n"] +[355.604063, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.604226, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.604506, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.617024, "o", "7d7d2e7d7d7d2ed8\\r\\n\r\n"] +[355.617241, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.617663, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994903385 (current time 26.798970495)\r\n"] +[355.621814, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.621935, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.633948, "o", "80006e6721353738\\r\\n\r\n"] +[355.634332, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.634523, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949883 (current time 26.7989620035)\r\n"] +[355.638649, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.638812, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[355.638835, "o", "[tsffs info] Resuming simulation\r\n"] +[355.651135, "o", "fff2323232323232\\r\\n\r\n"] +[355.651439, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496821 (current time 26.7989640125)\r\n"] +[355.655364, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.655517, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[355.655588, "o", "[tsffs info] Resuming simulation\r\n"] +[355.667516, "o", "000200003a213937\\r\\n\r\n"] +[355.667919, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.668159, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499626 (current time 26.7989612075)\r\n"] +[355.671886, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.672031, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.684001, "o", "0b00003031323334\\r\\n\r\n"] +[355.684452, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994997265 (current time 26.798961107)\r\n"] +[355.6884, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.688532, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.700599, "o", "66f0f03031323334\\r\\n\r\n"] +[355.700867, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.701078, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994980245 (current time 26.798962809)\r\n"] +[355.705047, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.705171, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.705303, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.717827, "o", "f0f07a696e672135\\r\\n\r\n"] +[355.718115, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[355.718338, "o", "[tsffs info] Cancelling event with next time 2.999495208 (current time 26.7989656255)\r\n"] +[355.722097, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.722212, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.734402, "o", "66757a6e67213937\\r\\n\r\n"] +[355.7347, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.734855, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.738686, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.738815, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.750892, "o", "66757a6e67213937\\r\\n\r\n"] +[355.751385, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.755179, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.755252, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.75919, "o", "6675\\r\\n\r\n"] +[355.75954, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.759762, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999840989 (current time 26.7986198445)\r\n"] +[355.762047, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.762151, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.774034, "o", "66757a6e67213837\\r\\n\r\n"] +[355.774502, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497257 (current time 26.7989635765)\r\n"] +[355.777368, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.78905, "o", "0000003040313233\\r\\n\r\n"] +[355.789363, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999501007 (current time 26.7989598265)\r\n"] +[355.792204, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.792335, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.80424, "o", "66757a6e67213937\\r\\n\r\n"] +[355.804578, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.807713, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.807871, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.821079, "o", "7ff0f0f0f0f0f0f0\\r\\n\r\n"] +[355.821348, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.82176, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490974 (current time 26.7989698595)\r\n"] +[355.82451, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.824639, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.834027, "o", "66747a646f90\\r\\n\r\n"] +[355.834356, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.834735, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996110705 (current time 26.798849763)\r\n"] +[355.838412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.838562, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.838625, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.850522, "o", "3031323334353637\\r\\n\r\n"] +[355.85079, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.851014, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[355.855188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.855365, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n"] +[355.855587, "o", "[tsffs info] Resuming simulation\r\n"] +[355.868191, "o", "f0f0f0f0f0f0f0f0\\r\\n\r\n"] +[355.868563, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.868733, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994911505 (current time 26.798969683)\r\n"] +[355.872458, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.872599, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.884569, "o", "3738396162636465\\r\\n\r\n"] +[355.88485, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499641 (current time 26.7989611925)\r\n"] +[355.888639, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.888768, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.888955, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.901113, "o", "66757a6e67213937\\r\\n\r\n"] +[355.901605, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.901807, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.905286, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.905516, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.918036, "o", "9f9f9f9f9f9f0080\\r\\n\r\n"] +[355.918336, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492251 (current time 26.7989685825)\r\n"] +[355.922232, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.922285, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.934545, "o", "66757a6e98213937\\r\\n\r\n"] +[355.934784, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.935018, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497141 (current time 26.7989636925)\r\n"] +[355.938674, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.938858, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[355.939039, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.951141, "o", "62c2474747353547\\r\\n\r\n"] +[355.951368, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.951739, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498586 (current time 26.7989622475)\r\n"] +[355.955467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[355.955572, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.967531, "o", "36371f3961626364\\r\\n\r\n"] +[355.967762, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.968043, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949862 (current time 26.7989622135)\r\n"] +[355.97177, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.971943, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[355.984133, "o", "66757a6e67213937\\r\\n\r\n"] +[355.984524, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[355.984664, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[355.988388, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[355.988573, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.000837, "o", "66757a6e67213937\\r\\n\r\n"] +[356.001129, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.00135, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.005068, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.005262, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.017172, "o", "3839101110746710\\r\\n\r\n"] +[356.017527, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[356.017689, "o", "[tsffs info] Cancelling event with next time 2.999500256 (current time 26.7989605775)\r\n"] +[356.021612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.021853, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.033953, "o", "62400000003f4141\\r\\n\r\n"] +[356.034103, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.034402, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499639 (current time 26.7989611945)\r\n"] +[356.038329, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.038446, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.051042, "o", "017f781b03d3f3a8\\r\\n\r\n"] +[356.051257, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.051594, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943035 (current time 26.79896653)\r\n"] +[356.055349, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.055533, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.067645, "o", "414166757a7a3536\\r\\n\r\n"] +[356.067856, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.068196, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994975755 (current time 26.798963258)\r\n"] +[356.072048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.072202, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.084615, "o", "39ff00ff63636363\\r\\n\r\n"] +[356.085006, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495171 (current time 26.7989656625)\r\n"] +[356.088853, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.089107, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.09892, "o", "64ffff64ff57\\r\\n\r\n"] +[356.099328, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999606303 (current time 26.7988545305)\r\n"] +[356.102877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.10314, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.115243, "o", "3132333400001000\\r\\n\r\n"] +[356.115554, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995009745 (current time 26.798959859)\r\n"] +[356.119385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.125347, "o", "b9fafa\\r\\n\r\n"] +[356.125694, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997785225 (current time 26.798682311)\r\n"] +[356.128412, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.1286, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.140581, "o", "f030313233349e9e\\r\\n\r\n"] +[356.140728, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.140911, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496627 (current time 26.7989642065)\r\n"] +[356.143539, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.143763, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.15607, "o", "6f6f69e0f0f067c2\\r\\n\r\n"] +[356.156257, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.156399, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994928155 (current time 26.798968018)\r\n"] +[356.159011, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.15927, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.171321, "o", "66757a6e67213937\\r\\n\r\n"] +[356.171472, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.17157, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.17496, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.174998, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.187146, "o", "4c757a6e67213937\\r\\n\r\n"] +[356.187457, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[356.187551, "o", "[tsffs info] Cancelling event with next time 2.999496198 (current time 26.7989646355)\r\n"] +[356.190608, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.190651, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.2035, "o", "1b6203d2f3a8cbf1\\r\\n\r\n"] +[356.203952, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492232 (current time 26.7989686015)\r\n"] +[356.207303, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.219444, "o", "66757a6e67213937\\r\\n\r\n"] +[356.219876, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.223261, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.223405, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.223507, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.235621, "o", "4633343537870cdb\\r\\n\r\n"] +[356.235917, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.236047, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994964925 (current time 26.798964341)\r\n"] +[356.239747, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.239868, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.240084, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.251854, "o", "4141414141414166\\r\\n\r\n"] +[356.251993, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.2523, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003725 (current time 26.798960461)\r\n"] +[356.255905, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.255965, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.268119, "o", "66757a6e67213937\\r\\n\r\n"] +[356.268443, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.268602, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.272347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.272454, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.272666, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.28467, "o", "66757a6e67006437\\r\\n\r\n"] +[356.284927, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.285244, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994973675 (current time 26.798963466)\r\n"] +[356.288903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.289141, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.301397, "o", "395d2f313233d834\\r\\n\r\n"] +[356.301578, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.30191, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994965345 (current time 26.798964299)\r\n"] +[356.305555, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.305812, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.317906, "o", "7a6e672139373839\\r\\n\r\n"] +[356.318167, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.318353, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497267 (current time 26.7989635665)\r\n"] +[356.32193, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.322049, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.322369, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.334672, "o", "66757a6e6721a2a2\\r\\n\r\n"] +[356.335025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.335208, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495301 (current time 26.7989655325)\r\n"] +[356.338961, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.339045, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.351637, "o", "7a696e7a177a7a7a\\r\\n\r\n"] +[356.35197, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492774 (current time 26.7989680595)\r\n"] +[356.355878, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.356006, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.367949, "o", "9975730400737330\\r\\n\r\n"] +[356.368228, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.368395, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499902 (current time 26.7989609315)\r\n"] +[356.372188, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.372346, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.384739, "o", "7979796d6d7a6f79\\r\\n\r\n"] +[356.385039, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.385397, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994943925 (current time 26.798966441)\r\n"] +[356.389046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.389119, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.401281, "o", "41414166757a7a30\\r\\n\r\n"] +[356.401546, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.401839, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497794 (current time 26.7989630395)\r\n"] +[356.405625, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.405794, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.418739, "o", "66757a6ed80b6731\\r\\n\r\n"] +[356.419028, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.419375, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495113 (current time 26.7989657205)\r\n"] +[356.423103, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.423134, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.423391, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.435795, "o", "66757a6e67e802eb\\r\\n\r\n"] +[356.436151, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.436274, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994938605 (current time 26.798966973)\r\n"] +[356.440104, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.440204, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.440426, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.452351, "o", "66757a6e67213937\\r\\n\r\n"] +[356.452701, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.452944, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.456477, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.456744, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.468883, "o", "66757a6e67213937\\r\\n\r\n"] +[356.469162, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.469452, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.472921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.473297, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.485972, "o", "66757a0080ffff30\\r\\n\r\n"] +[356.486341, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.48658, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994941315 (current time 26.798966702)\r\n"] +[356.490012, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.490348, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.490435, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.502298, "o", "21664102e8671515\\r\\n\r\n"] +[356.502669, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.502825, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498909 (current time 26.7989619245)\r\n"] +[356.506376, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.506668, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.506782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.518792, "o", "66757a6e67213937\\r\\n\r\n"] +[356.51908, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.52274, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.522918, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.535385, "o", "66757a6e857a6e85\\r\\n\r\n"] +[356.535652, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.536025, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994947715 (current time 26.798966062)\r\n"] +[356.539763, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.539814, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.551944, "o", "66757a6e67213937\\r\\n\r\n"] +[356.552153, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[356.552376, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.555944, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.556157, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.56808, "o", "6964656641414141\\r\\n\r\n"] +[356.568364, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.568763, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499883 (current time 26.7989609505)\r\n"] +[356.572467, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.572664, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.584375, "o", "0035193233000080\\r\\n\r\n"] +[356.584662, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995006485 (current time 26.798960185)\r\n"] +[356.5885, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.588695, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.600803, "o", "6465664141e94141\\r\\n\r\n"] +[356.601029, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.601367, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949875 (current time 26.7989620835)\r\n"] +[356.605119, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.605321, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.609278, "o", "0000\\r\\n\r\n"] +[356.609616, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.60977, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9998415905 (current time 26.798619243)\r\n"] +[356.612026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.612214, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.624242, "o", "66757a6e67213937\\r\\n\r\n"] +[356.624464, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.62468, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.627441, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.627609, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.639774, "o", "66757a6e67696e67\\r\\n\r\n"] +[356.640093, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999495752 (current time 26.7989650815)\r\n"] +[356.642846, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.643002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.655356, "o", "665b7a6e675c66a4\\r\\n\r\n"] +[356.65556, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.655803, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939115 (current time 26.798966922)\r\n"] +[356.658727, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.658911, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.670631, "o", "414166587a303132\\r\\n\r\n"] +[356.670984, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.671227, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994990295 (current time 26.798961804)\r\n"] +[356.673998, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.674197, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.680619, "o", "5b634141\\r\\n\r\n"] +[356.681106, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997264405 (current time 26.798734393)\r\n"] +[356.683255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.683478, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.695399, "o", "4166414141414141\\r\\n\r\n"] +[356.695598, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.695618, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995003725 (current time 26.798960461)\r\n"] +[356.69832, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.698616, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.710287, "o", "a079753333333333\\r\\n\r\n"] +[356.710704, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949892 (current time 26.7989619135)\r\n"] +[356.713234, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.71351, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.725315, "o", "20200001bf202020\\r\\n\r\n"] +[356.725513, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.72591, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999498771 (current time 26.7989620625)\r\n"] +[356.728684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.728795, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.740688, "o", "66757a6e67213937\\r\\n\r\n"] +[356.741122, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.743782, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.743982, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.755667, "o", "4140000000806632\\r\\n\r\n"] +[356.755959, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500737 (current time 26.7989600965)\r\n"] +[356.758724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.758848, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.770899, "o", "f882f88221393738\\r\\n\r\n"] +[356.771168, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.771361, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497196 (current time 26.7989636375)\r\n"] +[356.774346, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.774597, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.786474, "o", "7a6e672239372139\\r\\n\r\n"] +[356.786702, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.786902, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974265 (current time 26.798963407)\r\n"] +[356.790056, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.790347, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.790691, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.802964, "o", "f1667a7a7a7a7a7a\\r\\n\r\n"] +[356.803225, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.803245, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999491784 (current time 26.7989690495)\r\n"] +[356.80687, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.807191, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.81898, "o", "4040307070707070\\r\\n\r\n"] +[356.819457, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.819675, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500425 (current time 26.7989604085)\r\n"] +[356.823079, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.823443, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.836234, "o", "66757a9267e6aeae\\r\\n\r\n"] +[356.83661, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492664 (current time 26.7989681695)\r\n"] +[356.839895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.840163, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.852433, "o", "66757a6e672139c9\\r\\n\r\n"] +[356.85295, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.853094, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496028 (current time 26.7989648055)\r\n"] +[356.856483, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.85684, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.86881, "o", "66757a6e67213937\\r\\n\r\n"] +[356.869186, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.869467, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.872899, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.87311, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[356.873213, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.886173, "o", "df6f67d8f0f0f030\\r\\n\r\n"] +[356.8867, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.887074, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918235 (current time 26.79896901)\r\n"] +[356.890128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.890341, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.90349, "o", "00c962c2ebdf28db\\r\\n\r\n"] +[356.90386, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.903884, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999490903 (current time 26.7989699305)\r\n"] +[356.907202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.907393, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.919724, "o", "0707070707b8b8b8\\r\\n\r\n"] +[356.920079, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.920248, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496521 (current time 26.7989643125)\r\n"] +[356.92372, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.92391, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.935908, "o", "66897a6e67213937\\r\\n\r\n"] +[356.936221, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.936495, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994971265 (current time 26.798963707)\r\n"] +[356.939976, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.940108, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.952286, "o", "66757a6e67213937\\r\\n\r\n"] +[356.952576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.952827, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.956389, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.956523, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.969162, "o", "66757a6e67213937\\r\\n\r\n"] +[356.969504, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.969719, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[356.973215, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[356.973336, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.979268, "o", "ffffff\\r\\n\r\n"] +[356.979745, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9997770985 (current time 26.798683735)\r\n"] +[356.981795, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.981962, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[356.993727, "o", "80757a6d67203937\\r\\n\r\n"] +[356.994077, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[356.994281, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994974025 (current time 26.798963431)\r\n"] +[356.99683, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[356.996962, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.008746, "o", "1b75303132333435\\r\\n\r\n"] +[357.009046, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[357.009164, "o", "[tsffs info] Cancelling event with next time 2.9994991895 (current time 26.798961644)\r\n"] +[357.012007, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.012162, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.023963, "o", "66757a6e67213937\\r\\n\r\n"] +[357.024275, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[357.024513, "o", "[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[357.027099, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.027246, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.037757, "o", "eeeeeeeeffee\\r\\n\r\n"] +[357.038083, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.038434, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995995155 (current time 26.798861318)\r\n"] +[357.041263, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.041341, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.053438, "o", "f0f0f03031323334\\r\\n\r\n"] +[357.053755, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.053987, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497017 (current time 26.7989638165)\r\n"] +[357.057128, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.057275, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.069074, "o", "3031323334353637\\r\\n\r\n"] +[357.069372, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.069582, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999500247 (current time 26.7989605865)\r\n"] +[357.073202, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.073332, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.073534, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.085475, "o", "7878787878787a69\\r\\n\r\n"] +[357.085832, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.086065, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497653 (current time 26.7989631805)\r\n"] +[357.08973, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.089882, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.103086, "o", "ffffff80ff803435\\r\\n\r\n"] +[357.103303, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.103507, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.99949039 (current time 26.7989704435)\r\n"] +[357.106912, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.107067, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.119137, "o", "66757a6e67213937\\r\\n\r\n"] +[357.119408, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.119645, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[357.123173, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.123338, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.135967, "o", "66757a6e6721bfa5\\r\\n\r\n"] +[357.136324, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.136538, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939635 (current time 26.79896687)\r\n"] +[357.140127, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.140227, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.152082, "o", "0020656641414141\\r\\n\r\n"] +[357.152359, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995004395 (current time 26.798960394)\r\n"] +[357.155978, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.156066, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.168732, "o", "21cf6e6ef87a696e\\r\\n\r\n"] +[357.16895, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.169203, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994914565 (current time 26.798969377)\r\n"] +[357.172862, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.173031, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.181386, "o", "7b7b7b7b7b\\r\\n\r\n"] +[357.181868, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9996646915 (current time 26.798796142)\r\n"] +[357.185043, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.185234, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.197659, "o", "17de0010781b0b7a\\r\\n\r\n"] +[357.198071, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999494645 (current time 26.7989661885)\r\n"] +[357.200936, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.201082, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.21339, "o", "a5c7c715a1a1a1a1\\r\\n\r\n"] +[357.213714, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.213983, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492422 (current time 26.7989684115)\r\n"] +[357.216385, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.21659, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.228604, "o", "66757a6e67214037\\r\\n\r\n"] +[357.228843, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.229079, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497427 (current time 26.7989634065)\r\n"] +[357.231525, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.231706, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.244744, "o", "dbdbdbdbdbdbdbdb\\r\\n\r\n"] +[357.245004, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994819585 (current time 26.798978875)\r\n"] +[357.247806, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.248047, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.260337, "o", "41415ca8a8a8c57a\\r\\n\r\n"] +[357.2606, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[357.260837, "o", "[tsffs info] Cancelling event with next time 2.9994931125 (current time 26.798967721)\r\n"] +[357.263316, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.275193, "o", "6364656641414141\\r\\n\r\n"] +[357.275475, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9995000245 (current time 26.798960809)\r\n"] +[357.278342, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.278475, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.290736, "o", "61f0f0f0f0f00f7a\\r\\n\r\n"] +[357.291033, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492218 (current time 26.7989686155)\r\n"] +[357.293822, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.294107, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.306029, "o", "66757a6e672139a8\\r\\n\r\n"] +[357.306476, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999496107 (current time 26.7989647265)\r\n"] +[357.309002, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.320832, "o", "3738396162636465\\r\\n\r\n"] +[357.321161, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999499641 (current time 26.7989611925)\r\n"] +[357.324181, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.324417, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.336436, "o", "66757a6e67213937\\r\\n\r\n"] +[357.336708, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.336937, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[357.340142, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.340262, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.352542, "o", "7a7a7a6e67212737\\r\\n\r\n"] +[357.352873, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994951765 (current time 26.798965657)\r\n"] +[357.356397, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.356533, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.36865, "o", "66757a6e67213937\\r\\n\r\n"] +[357.368936, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999497228 (current time 26.7989636055)\r\n"] +[357.37238, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.372489, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.385017, "o", "4e4e4e4e4e4e4e30\\r\\n\r\n"] +[357.385335, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.38547, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994918585 (current time 26.798968975)\r\n"] +[357.388974, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.389072, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.401589, "o", "66757a7a696e6721\\r\\n\r\n"] +[357.402194, "o", "All characters were correct!\\r\\n\r\n"] +[357.410407, "o", "[tsffs info] on_simulation_stopped(Solution(Solution { kind: Exception }))\r\n[tsffs info] Cancelling event with next time 2.998783565 (current time 26.7996772685)\r\n"] +[357.410785, "o", "[Objective #0] run time: 0h-1m-41s, clients: 1, corpus: 10, objectives: 3, executions: 1792, exec/sec: 17.68\r\n"] +[357.413304, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.413482, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.425834, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.426178, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.429075, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.441352, "o", "667276759d9d9d9d\\r\\n\r\n"] +[357.441683, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.441822, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945505 (current time 26.798966283)\r\n"] +[357.444573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.444648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.45736, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.4576, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.457773, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.460634, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.460664, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.460769, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.473133, "o", "667276759d9d9d9d\\r\\n\r\n"] +[357.473344, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.473446, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945505 (current time 26.798966283)\r\n"] +[357.475921, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.475967, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.476059, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.488881, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.4891, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.489375, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[357.489408, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.492357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.492495, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.504703, "o", "667276759d9d9d9d\\r\\n\r\n"] +[357.505107, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.505204, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994945505 (current time 26.798966283)\r\n"] +[357.508549, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.508633, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.508772, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.521334, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.52165, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.521701, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.525031, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.525111, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.537423, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.537727, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.540877, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.541041, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.541075, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.55383, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.55418, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.557488, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.557558, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.57007, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.570347, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.570647, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.573896, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.574072, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.586505, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.586852, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.587051, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.590358, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.590581, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.602948, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.603198, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.60347, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.606897, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.606966, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.607133, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.619904, "o", "66757a7ae2e29d9d\\r\\n\r\n"] +[357.620165, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.620378, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492643 (current time 26.7989681905)\r\n"] +[357.623903, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.624115, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.636571, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.636933, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.640612, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.640774, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.640887, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.653874, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.654187, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.65449, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.657718, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.657847, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.657857, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.670083, "o", "667276759d9de2e2\\r\\n\r\n"] +[357.670317, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.67079, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994948225 (current time 26.798966011)\r\n"] +[357.673981, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.674016, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.674255, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.686959, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.687598, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.690914, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.691025, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.691166, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.703462, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.703706, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.704096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.707393, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.707462, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.707711, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.719859, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.720185, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.720458, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.723821, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.723845, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.724091, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.736456, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.737025, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.7372, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.740395, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.740495, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.753447, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.753668, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.754144, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.757522, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.757619, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.770132, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.770638, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.770953, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.774187, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.786745, "o", "6672767ae2e2e2e2\\r\\n\r\n"] +[357.78708, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940345 (current time 26.798966799)\r\n"] +[357.790704, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.790783, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.803456, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.803686, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.80393, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.80732, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.807475, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.820283, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.820583, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.820817, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.824086, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.824235, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.824463, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.83673, "o", "66757a759d9de2e2\\r\\n\r\n"] +[357.837062, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994937065 (current time 26.798967127)\r\n"] +[357.840499, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.840607, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.853545, "o", "66757a7ae2e29d9d\\r\\n\r\n"] +[357.853875, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[357.854064, "o", "[tsffs info] Cancelling event with next time 2.999492643 (current time 26.7989681905)\r\n"] +[357.857317, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.857555, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.869994, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.870379, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.870411, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.873891, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.874025, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.874037, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.886857, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.887218, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.887418, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.890678, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.890789, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.903414, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.903768, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.904008, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.907255, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.907521, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.920248, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.920631, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.920872, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.924051, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.924256, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.936747, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.937247, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.937338, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.940672, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.940797, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.940989, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.9535, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.954169, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.954363, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.957809, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[357.957998, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.970129, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.97056, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.970749, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.973769, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.973964, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[357.974218, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[357.986944, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[357.987281, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[357.987473, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[357.990793, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[357.990893, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.0035, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.003889, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.004071, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.007337, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.007428, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.007443, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.020787, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.021184, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.021385, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.024291, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.024483, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.037008, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.037277, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.037484, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.040707, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.040889, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.053702, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.054047, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.054204, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.057357, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.057492, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.057627, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.070551, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.070944, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.0711, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.07415, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.086997, "o", "6672767ae2e2e2e2\\r\\n\r\n"] +[358.087223, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994940345 (current time 26.798966799)\r\n"] +[358.090565, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.090707, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.103473, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.103782, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.107132, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.107282, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.119847, "o", "66757a7ae2e2e29d\\r\\n\r\n"] +[358.120224, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492779 (current time 26.7989680545)\r\n"] +[358.123752, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.123935, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.136407, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.136947, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.140411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.153208, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.153453, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.157058, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.157116, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.169551, "o", "66757a7a9d9de2e2\\r\\n\r\n"] +[358.169877, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.170087, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492643 (current time 26.7989681905)\r\n"] +[358.173456, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.17368, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.173801, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.186215, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.186516, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.190006, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.190223, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.190409, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.202706, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.203051, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.203222, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.206724, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.206927, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.207092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.220199, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.220582, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.220667, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.223987, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.224152, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.236643, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.237123, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.240572, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.240685, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.253216, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.253759, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.257299, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.257531, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.269996, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.270471, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.273916, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.274055, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.286928, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.287402, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.290778, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.29092, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.303647, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.304102, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.307514, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.307592, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.32041, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.320672, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.320972, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.324296, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.324366, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.336752, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.337096, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.340511, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.340631, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.353025, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.353484, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.356671, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.356753, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.369352, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.369712, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.373347, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.373597, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.385964, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.38645, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.390734, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.390873, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.403883, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.404099, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.407556, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.407752, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.420146, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.420621, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.424046, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.436619, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.437206, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.440411, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.440919, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.45322, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.453449, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.457283, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.457479, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.469743, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.470008, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.473606, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.486162, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.486422, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.486459, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.490026, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.490219, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.502866, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.503151, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.506842, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.507002, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.519626, "o", "66757a7a9de2e2e2\\r\\n\r\n"] +[358.519917, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.520096, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492779 (current time 26.7989680545)\r\n"] +[358.523811, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.523888, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.536544, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.536814, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.536829, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.536945, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.54048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.540574, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.553002, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.553278, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.553359, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.553388, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.55681, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.556934, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.557038, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.569691, "o", "66757a7ae2e2e29d\\r\\n\r\n"] +[358.570011, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.570106, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492779 (current time 26.7989680545)\r\n"] +[358.573502, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.573634, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.573782, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.586335, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.586638, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.586953, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.590072, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.590183, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.590332, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.602759, "o", "6675767ae2e2e2e2\\r\\n\r\n"] +[358.603173, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.60327, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.9994939605 (current time 26.798966873)\r\n"] +[358.606871, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.606974, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.619472, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.619757, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.619928, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.623378, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.623461, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.623488, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.635976, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.636242, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.636404, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.639927, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.640014, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.640201, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.6526, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.652793, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n"] +[358.652935, "o", "[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.656723, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.656819, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.669741, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.670043, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.673658, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.673835, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.687191, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.687563, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.687827, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.690997, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.691102, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.703597, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.704126, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.707489, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.707526, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.720487, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.720835, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.724035, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.724172, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.736796, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.73713, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.737402, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.74048, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.740613, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.740861, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.753996, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.75448, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.754714, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.757684, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.757839, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.770356, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.770727, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.770916, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.773981, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.774123, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.78682, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.787217, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.787437, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.790573, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.790829, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.80345, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.80383, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.807089, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.807258, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.807513, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.82005, "o", "66757a7ae2e29de2\\r\\n\r\n"] +[358.82035, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492779 (current time 26.7989680545)\r\n"] +[358.823754, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.823924, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.83664, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.83704, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.837306, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.840542, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.840746, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.85345, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.853771, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.854135, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.857211, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.857312, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.869992, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.87032, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.87051, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.873832, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.873961, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.874136, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.886976, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.887249, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.887522, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.890685, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.890804, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.890958, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.903493, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.903809, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.90414, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.907311, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.907385, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.907571, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.92031, "o", "66727a7ae2e2e2e2\\r\\n\r\n"] +[358.920699, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.920914, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492996 (current time 26.7989678375)\r\n"] +[358.923895, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.924064, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.936673, "o", "66757a7ae29de2e2\\r\\n\r\n"] +[358.936953, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.937127, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492779 (current time 26.7989680545)\r\n"] +[358.94036, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.940505, "o", "[tsffs info] on_magic_instruction(1)\r\n"] +[358.940632, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.953429, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.9538, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.954125, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.957194, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n"] +[358.957414, "o", "[tsffs info] on_magic_instruction(1)\r\n[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.969976, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.970337, "o", "[tsffs info] on_magic_instruction(2)\r\n"] +[358.970593, "o", "[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.973831, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.974124, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.986894, "o", "66757a7ae2e2e2e2\\r\\n\r\n"] +[358.987341, "o", "[tsffs info] on_magic_instruction(2)\r\n[tsffs info] on_simulation_stopped(MagicStop(Stop))\r\n[tsffs info] Cancelling event with next time 2.999492915 (current time 26.7989679185)\r\n"] +[358.990503, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\n[tsffs info] Resuming simulation\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[358.990648, "o", "[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n[tsffs info] Resuming simulation\r\n"] +[358.993417, "o", "^C"] +[358.993942, "o", "[tsffs info] Cancelling event with next time 2.999893645 (current time 26.7985671885)\r\n[tsffs info] Simulation stopped without reason, not resuming.\r\n[tsffs info] Stopped after 7224 iterations in 102.9386 seconds (70.17776 exec/s).\r\n"] +[358.997076, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[360.8999, "o", "\u001b[8D\u001b[K\u001b[1m\u001b[34msimics> \u001b[0m"] +[360.900061, "o", "!"] +[361.240028, "o", "l"] +[361.291935, "o", "s"] +[361.389919, "o", " "] +[361.583894, "o", "s"] +[361.666627, "o", "o"] +[361.838948, "o", "l"] +[361.990873, "o", "u"] +[362.115688, "o", "t"] +[362.197608, "o", "i"] +[362.338801, "o", "o"] +[362.512667, "o", "n"] +[362.59674, "o", "s"] +[362.696673, "o", "\r\n"] +[362.720972, "o", "05dea7dd4c816562\r\n52dbd99fd91d8f59\r\nba94d458854dd977\r\nid_1_05dea7dd4c816562\r\n\u001b[1m\u001b[34msimics> \u001b[0m"] +[364.089971, "o", "@"] +[364.336971, "o", "t"] +[364.489821, "o", "s"] +[364.66187, "o", "f"] +[364.85396, "o", "f"] +[365.002159, "o", "s"] +[365.152984, "o", "."] +[365.383926, "o", "i"] +[365.484004, "o", "f"] +[365.611779, "o", "a"] +[365.788943, "o", "c"] +[365.99082, "o", "e"] +[366.083774, "o", "."] +[366.183864, "o", "t"] +[366.342741, "o", "s"] +[366.508745, "o", "f"] +[366.689891, "o", "f"] +[366.853211, "o", "s"] +[367.001895, "o", "."] +[367.132804, "o", "r"] +[367.2268, "o", "e"] +[367.432489, "o", "p"] +[367.632553, "o", "r"] +[367.738657, "o", "o"] +[368.001588, "o", "("] +[368.20873, "o", "\""] +[368.406745, "o", "%"] +[368.680221, "o", "s"] +[368.779856, "o", "i"] +[368.93797, "o", "m"] +[369.079746, "o", "i"] +[369.147767, "o", "c"] +[369.281767, "o", "s"] +[369.600793, "o", "%"] +[369.982659, "o", "/"] +[370.430736, "o", "s"] +[370.548596, "o", "o"] +[370.722861, "o", "l"] +[370.894891, "o", "u"] +[371.014033, "o", "t"] +[371.09499, "o", "i"] +[371.237976, "o", "o"] +[371.411797, "o", "n"] +[371.526705, "o", "s"] +[371.625376, "o", "/"] +[371.915141, "o", "0"] +[372.790924, "o", "\u001b[1D\u001b[K\u001b[53D\u001b[53C"] +[375.326414, "o", "05dea7dd4c8"] +[375.326662, "o", "16562"] +[376.246857, "o", "\""] +[376.478095, "o", ")"] +[378.468268, "o", "\r\n"] +[378.478934, "o", "[tsffs info] Posting event on processor at time 26.7984608335 for 3s (time 29.7984608335)\r\nNone\r\n\u001b[1m\u001b[34msimics> \u001b[0m\u001b[8D\u001b[K\u001b[1m\u001b[34mrunning> \u001b[0m"] +[378.479028, "o", "\u001b[9D\u001b[K[tsffs info] on_magic_instruction(1)\r\n\u001b[1m\u001b[34mrunning> \u001b[0m"] +[378.479139, "o", "\u001b[9D\u001b[K[tsffs info] on_simulation_stopped(MagicStart(MagicStart { processor: 0x56000f219d00 }))\r\n\u001b[1m\u001b[34mrunning> \u001b[0m"] +[378.486181, "o", "\u001b[9D\u001b[K[tsffs info] Resuming simulation\r\n\u001b[1m\u001b[34mrunning> \u001b[0m\u001b[9D\u001b[K\u001b[1m\u001b[34msimics> \u001b[0m\u001b[8D\u001b[K\u001b[1m\u001b[34mrunning> "] +[378.486231, "o", "\u001b[0m"] +[378.506726, "o", "\u001b[9D\u001b[K66757a7a696e6721\\r\\n\r\n\u001b[1m\u001b[34mrunning> \u001b[0m"] +[378.507337, "o", "\u001b[9D\u001b[KAll characters were correct!\\r\\n\r\n\u001b[1m\u001b[34mrunning> \u001b[0m"] +[378.515874, "o", "\u001b[9D\u001b[K[tsffs info] on_simulation_stopped(Solution(Solution { kind: Exception }))\r\n\u001b[1m\u001b[34mrunning> \u001b[0m\u001b[9D\u001b[K[tsffs info] Cancelling event with next time 2.998783565 (current time 26.7996772685)\r\n\u001b[1m\u001b[34mrunning> \u001b[0m\u001b[9D\u001b[K[tsffs info] Stopped for repro. Restore to start bookmark with 'reverse-to start'\r\n\u001b[1m\u001b[34mrunning> \u001b[0m\u001b[9D\u001b[K\u001b[1m\u001b[34msimics> "] +[378.51602, "o", "\u001b[0m"] +[380.729882, "o", "l"] +[380.885905, "o", "i"] +[380.960963, "o", "s"] +[381.089774, "o", "t"] +[381.18501, "o", "-"] +[381.434959, "o", "b"] +[381.494377, "o", "o"] +[381.662082, "o", "o"] +[381.860148, "o", "k"] +[382.134108, "o", "m"] +[382.417678, "o", "\u001b[10D\u001b[K\u001b[8D\u001b[8Clist-bookmarks "] +[382.883152, "o", "\r\n"] +[382.883791, "o", " name cycles\r\n------------------------------------------------------\r\n start 53596921667\r\n 53599354537\r\n------------------------------------------------------\r\n\u001b[1m\u001b[34msimics> \u001b[0m"] +[383.408181, "o", "p"] +[383.562034, "o", "r"] +[383.731965, "o", "e"] +[383.911968, "o", "g"] +[384.081938, "o", "s"] +[384.45724, "o", "\r\n"] +[384.458678, "o", "64-bit mode\r\nPending exception, vector 14\r\nrax = 0xffffffffffffffff r8 = 0x0000000000000000\r\nrcx = 0x0000000000000000 r9 = 0x00000000df32149f\r\nrdx = 0x000000000000001e r10 = 0x0000000000000000\r\nrbx = 0x00000000df321ac8 r11 = 0x00000000df321240\r\nrsp = 0x00000000df321880 r12 = 0x0000000000000000\r\nrbp = 0x00000000df321a50 r13 = 0x00000000ddfbef18\r\nrsi = 0x00000000df321900 r14 = 0x00000000df321ab8\r\nrdi = 0x00000000df321908 r15 = 0x00000000dd6f4418\r\n\r\nrip = 0x000000018000111c\r\n\r\neflags = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 = 0x00000202\r\n I V V A V R - N I I O D I T S Z - A - P - C\r\n D I I C M F T O O F F F F F F F F F\r\n P F P P\r\n L L\r\n\r\nuif = 0\r\n\r\n"] +[384.458775, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[388.781878, "o", "r"] +[388.844839, "o", "e"] +[389.036661, "o", "v"] +[389.169433, "o", "e"] +[389.3364, "o", "r"] +[389.459673, "o", "s"] +[389.593804, "o", "e"] +[389.733755, "o", "-"] +[389.903399, "o", "t"] +[390.003478, "o", "o"] +[390.281594, "o", " "] +[390.400614, "o", "s"] +[390.530767, "o", "t"] +[390.630759, "o", "a"] +[390.798891, "o", "r"] +[390.954974, "o", "t"] +[391.331907, "o", "\r\n"] +[391.372127, "o", "66757a7a696e6721\\r\\n\r\n"] +[391.372682, "o", "All characters were correct!\\r\\n\r\n"] +[391.384027, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x0000000180001199 p:0x0000180001199 cpuid\r\n{\"MagicStart\":{}}\r\n\u001b[1m\u001b[34msimics> \u001b[0m"] +[395.198716, "o", "s"] +[395.314432, "o", "i"] +[395.607752, "o", "\r\n"] +[395.609142, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x0000000180001199 p:0x0000180001199 cpuid\r\n[tsffs info] on_magic_instruction(1)\r\n"] +[395.609406, "o", "{\"MagicStart\":{}}\r\n"] +[395.60945, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[396.238205, "o", "\r\n"] +[396.239405, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[396.665982, "o", "\r\n"] +[396.667045, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x000000018000119b p:0x000018000119b mov dword ptr [rsp+0x38],eax\r\n"] +[396.667591, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[397.379717, "o", "\r\n"] +[397.380826, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x000000018000119f p:0x000018000119f jmp 0x1800011a4\r\n"] +[397.381218, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[397.78528, "o", "\r\n"] +[397.786739, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011a4 p:0x00001800011a4 mov qword ptr [rsp+0x30],0x0\r\n"] +[397.78706, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[398.683247, "o", "\r\n"] +[398.684639, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011ad p:0x00001800011ad mov rax,qword ptr [rsp+0x30]\r\n"] +[398.685382, "o", "\u001b[1m\u001b[34msimics> "] +[398.68563, "o", "\u001b[0m"] +[399.060077, "o", "\r\n"] +[399.061633, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011b2 p:0x00001800011b2 cmp rax,qword ptr [rsp+0x40]\r\n"] +[399.062071, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[399.684216, "o", "\r\n"] +[399.685629, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011b7 p:0x00001800011b7 jae 0x180001278\r\n"] +[399.685954, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[399.939517, "o", "\r\n"] +[399.940795, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011bd p:0x00001800011bd cmp qword ptr [rsp+0x30],0x0\r\n"] +[399.941178, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[400.2812, "o", "\r\n"] +[400.282206, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011c3 p:0x00001800011c3 je 0x1800011fb\r\n"] +[400.282556, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[400.780134, "o", "\r\n"] +[400.781334, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x00000001800011fb p:0x00001800011fb mov rax,qword ptr [rsp+0x30]\r\n"] +[400.781848, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[401.007095, "o", "\r\n"] +[401.008353, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x0000000180001200 p:0x0000180001200 mov al,byte ptr [rsp+rax+0x48]\r\n"] +[401.008915, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[401.274141, "o", "\r\n"] +[401.275244, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x0000000180001204 p:0x0000180001204 mov byte ptr [rsp+0x2f],al\r\n"] +[401.275395, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[401.534196, "o", "\r\n"] +[401.535215, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x0000000180001208 p:0x0000180001208 movzx eax,byte ptr [rsp+0x2f]\r\n"] +[401.535344, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[401.763206, "o", "\r\n"] +[401.764046, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x000000018000120d p:0x000018000120d sar eax,4\r\n"] +[401.76479, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[401.988421, "o", "\r\n"] +[401.989374, "o", "[qsp.mb.cpu0.core[0][0]] cs:0x0000000180001210 p:0x0000180001210 and eax,0xf\r\n"] +[401.989895, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[403.407098, "o", "#"] +[403.542155, "o", " "] +[406.186901, "o", "d"] +[406.361344, "o", "e"] +[406.560233, "o", "b"] +[406.682118, "o", "u"] +[406.781893, "o", "g"] +[406.88284, "o", " "] +[407.261043, "o", "\u001b[1D\u001b[K\u001b[15D\u001b[15C"] +[407.447917, "o", "!"] +[408.125137, "o", "\r\n"] +[408.125428, "o", "\u001b[1m\u001b[34msimics> \u001b[0m"] +[409.526172, "o", "e"] +[409.748184, "o", "x"] +[409.848751, "o", "i"] +[409.94317, "o", "t"] +[410.018234, "o", "\r\n"] +[410.044544, "o", "\u001b]0;@efdf71a01882:/workspace/projects/example\u0007\u001b[?2004h[root@efdf71a01882 example]# "] +[410.49081, "o", "e"] +[410.690697, "o", "x"] +[410.814565, "o", "i"] +[410.914521, "o", "t"] +[410.991871, "o", "\r\n\u001b[?2004l\rexit\r\n"] +[411.1885, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r\u001b]2;rhart@rhart-desk:~/hub/tsffs\u0007\u001b]1;~/hub/tsffs\u0007"] +[411.189955, "o", "\u001b]7;file://rhart-desk/home/rhart/hub/tsffs\u001b\\"] +[411.203387, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;2;90;82;76m╭─\u001b[0m\u001b[38;2;137;180;130m\u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40m \u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40mtsffs\u001b[0m\u001b[48;2;137;180;130;38;2;40;40;40m \u001b[0m\u001b[48;2;124;111;100;38;2;137;180;130m\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m on \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161msimics-package\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m?\u001b[0m\u001b[48;2;124;111;100;38;2;221;199;161m \u001b[0m\u001b[48;2;124;111;100;38;2;216;166;87m \u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m \u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m19:33:19\u001b[0m\u001b[48;2;124;111;100;38;2;69;64;61m \u001b[0m\u001b[48;2;80;73;69;38;2;124;111;100m\u001b[0m\u001b[48;2;80;73;69mrhart\u001b[0m\u001b[48;2;80;73;69m@\u001b[0m\u001b[48;2;80;73;69mrhart-desk\u001b[0m\u001b[48;2;40;40;40;38;2;80;73;69m\u001b[0m\u001b[48;2;40;40;40m \u001b[0m\u001b[48;2;40;40;40m0\u001b[0m\u001b[48;2;40;40;40m \u001b[0m\u001b[48;2;40;40;40;38;2;137;180;130m\u001b[0m\u001b[38;2;40;40;40m\u001b[0m\u001b[38;2;70;65;62m···················································································\u001b[0m\r\n\u001b[38;2;90;82;76m╰─ϕ \u001b[0m\u001b[K"] +[411.20358, "o", "\u001b[?1h\u001b=\u001b[?2004h"] +[412.428977, "o", "\u001b[?2004l\r\r\n"] diff --git a/docs/images/mini.mp4 b/docs/images/mini.mp4 deleted file mode 100644 index ec28baa5..00000000 Binary files a/docs/images/mini.mp4 and /dev/null differ diff --git a/docs/src/README.md b/docs/src/README.md new file mode 100644 index 00000000..efc141cd --- /dev/null +++ b/docs/src/README.md @@ -0,0 +1,86 @@ +# TSFFS Documentation + +- [TSFFS Documentation](#tsffs-documentation) + - [Capabilities](#capabilities) + - [Use Cases](#use-cases) + - [Why TSFFS](#why-tsffs) + - [Terminology](#terminology) + +TSFFS is a snapshotting, coverage-guided fuzzer built on the +[SIMICS](https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html) +full system simulator. TSFFS makes it easy to fuzz and triage crashes on traditionally +challenging targets including UEFI applications, bootloaders, BIOS, kernel modules, and +device firmware. TSSFS can even fuzz user-space applications on Linux and Windows. + +## Capabilities + +This fuzzer is built using [LibAFL](https://github.com/AFLplusplus/LibAFL) and SIMICS +and takes advantage of several of the state of the art capabilities of both. + +- Edge coverage guided +- Snapshotting (fully deterministic) +- Parallel fuzzing (across cores, machines soon) +- Easy to add to existing SIMICS projects +- Triage mode to reproduce and debug crashes +- Modern fuzzing methodologies: + - Redqueen/I2S taint-based mutation + - MOpt & Auto-token mutations + - More coming soon! + +## Use Cases + +TSFFS is focused on several primary use cases: + +- UEFI and BIOS code, particulary based on [EDKII](https://github.com/tianocore/edk2) +- Pre- and early-silicon firmware and device drivers +- Hardware-dependent kernel and firmware code +- Fuzzing for complex error conditions + +However, TSFFS is also capable of fuzzing: + +- Kernel & kernel drivers +- User-space applications +- Network applications + +## Why TSFFS + +There are several tools capable of fuzzing firmware and UEFI code. Notably, the +[HBFA](https://github.com/tianocore/edk2-staging/tree/HBFA) +project and the [kAFL](https://github.com/IntelLabs/kAFL) project enable system software +fuzzing with various tradeoffs. + +HBFA is very fast, and enables fuzzing with sanitizers in Linux userspace. However, it +requires stubs for any hardware interactions as well as the ability to compile code with +instrumentation. For teams with resources to create a working HBFA configuration, it +should be used alongside TSFFS to enable additional error condition detection. + +kAFL is also extremely fast, and is hypervisor based which allows deterministic +snapshotting of systems under test. This also makes it ideal for very complex systems +and system-of-systems fuzzing, where interactions between components or the use of real +hardware is necessary. kAFL suffers from a similar limitation as HBFA in that it +requires working device stubs or simulation to be implemented in QEMU, and additionally +requires a patched kernel to run the required KVM modifications. + +Both of these tools should be used where possible to take advantage of their unique +capabilities, but TSFFS aims to reduce the barrier to fuzzing low-level systems +software. It is slower (though not unacceptably so) than HBFA or kAFL, and is not (yet) +capable of leveraging sanitizers. In exchange, using it is as simple as adding a few +lines of code to a SIMICS script and ten or less lines of code to your firmware source +code. In addition, because it is based on SIMICS, the tool of choice of firmware +developers, the models and configurations for the code under test can be used as they +are, and developers can continue to use familiar tools to reduce the lift of enabling +fuzzing. + +## Terminology + +Some terminology in this document might be unfamiliar, or used in an unfamiliar way. + +- *Solution*: Any condition that is a *goal* of a fuzzing campaign. Most fuzzing + campaigns look for crashes or hangs in the target software, both of which are types of + solutions. However, at the firmware level, other conditions may also be considered + exceptional, and are considered solutions as well. For example, some firmware is only + permitted to write to specific memory regions, and a write outside of them is + problematic but will not cause a crash in the traditional sense. +- *Target Software*: Because TSFFS is capable of fuzzing the full stack of software from + initial firmware through user-space applications, any software under test by the + fuzzer is referred to as *target software*. \ No newline at end of file diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md new file mode 100644 index 00000000..5fc9f89a --- /dev/null +++ b/docs/src/SUMMARY.md @@ -0,0 +1,31 @@ +# Summary + +[Introduction](README.md) + +## User Guide + +- [Setting Up](setup/README.md) + - [Using Docker](setup/docker.md) + - [For Linux](setup/linux.md) + - [For Windows](setup/windows.md) +- [Configuration](config/README.md) + - [Installing in Projects](config/installing-in-projects.md) + - [Loading The TSFFS Module](config/loading-module.md) + - [Common Options](config/common-options.md) +- [Harnessing Fuzzing Targets](harnessing/README.md) + - [Using a Compiled-in Harness](harnessing/compiled-in.md) + - [Using Black-Box Testcase Injection](harnessing/black-box.md) + - [Using Testcase Data Manually](harnessing/manual.md) +- [Running A Fuzzing Campaign](fuzzing/README.md) + - [Checking Target Software Compatibility](fuzzing/compatibility.md) + - [Choosing A Harnessing Method](fuzzing/choose-harnessing-method.md) + - [Running the Fuzzer](fuzzing/running-fuzzer.md) + - [Verifying Progress](fuzzing/verifying-progress.md) + - [Optimizing For Fuzzing](fuzzing/optimizing-for-fuzzing.md) + - [Analyzing Results](fuzzing/analyzing-results.md) + +## Reference Guide + +- [Internals](internals/README.md) + - [Build Internals](internals/build.md) + diff --git a/docs/src/config/README.md b/docs/src/config/README.md new file mode 100644 index 00000000..f92e5b20 --- /dev/null +++ b/docs/src/config/README.md @@ -0,0 +1,8 @@ +# Configuration + +Before TSFFS can fuzz target software, it must be configured. The configuration API is +kept as simple as possible, with sane defaults. + +- [Installing In Projects](installing-in-projects.md) +- [Loading The TSFFS Module](loading-module.md) +- [Common Options](common-options.md) \ No newline at end of file diff --git a/docs/src/config/common-options.md b/docs/src/config/common-options.md new file mode 100644 index 00000000..87f2fcb1 --- /dev/null +++ b/docs/src/config/common-options.md @@ -0,0 +1,246 @@ +# Common Options + +TSFFS provides a set of common options that are usable no matter what type of harnessing +is desired. + +- [Common Options](#common-options) + - [Solution Configuration](#solution-configuration) + - [Setting the Timeout](#setting-the-timeout) + - [Setting Exception Solutions](#setting-exception-solutions) + - [Setting Breakpoint Solutions](#setting-breakpoint-solutions) + - [Fuzzer Settings](#fuzzer-settings) + - [Using Snapshots](#using-snapshots) + - [Using CMPLog](#using-cmplog) + - [Set Corpus and Solutions Directory](#set-corpus-and-solutions-directory) + - [Enable Random Corpus Generation](#enable-random-corpus-generation) + - [Set an Iteration Limit](#set-an-iteration-limit) + - [Adding Tokens From Target Software](#adding-tokens-from-target-software) + - [Setting an Architecture Hint](#setting-an-architecture-hint) + - [Adding a Trace Processor](#adding-a-trace-processor) + +## Solution Configuration + +TSFFS can be configured to treat various events as +[solutions](../README.md#terminology). + +### Setting the Timeout + +To set the number of seconds in virtual time until an iteration is considered *timed out*, +use the following (for example, to set the timeout to 3 seconds): + +```python +tsffs.iface.tsffs.set_timeout(3.0) +``` + +Note that this timeout is in virtual time, not real time. This means that whether the +simulation runs faster or slower than real time, the timeout will be accurate to the +target software's execution speed. + +### Setting Exception Solutions + +The primary way TSFFS detects bugs is via CPU exceptions that are raised, but should not +be. For example, when fuzzing a user-space application on x86 a General Protection Fault +(GPF) (#13) tells the fuzzer that a crash has occurred, or when fuzzing a UEFI +application a Page Fault (#14) tells the fuzzer that a crash has occurred. + +Each CPU model has different exceptions (e.g. RISC has different codes than x86), but +SIMICS represents all exceptions as an integer. An exception number can be added as a +tracked condition that will cause the fuzzer to consider an exception (in this example, +GPF #13) as a solution with: + +```python +tsffs.iface.tsffs.add_exception_solution(13) +``` + +An already-added exception can be removed from the tracked set that are considered +solutions with: + +```python +tsffs.iface.tsffs.remove_exception_solution(13) +``` + +In addition, if *all* exceptions should be considered as solutions, use: + +```python +tsffs.iface.tsffs.set_all_exceptions_are_solutions(True) +``` + +Note that this is typically not useful, all exceptions including innocuous exceptions +like timer interrupts will cause solutions. It is mainly useful for embedded models +running short code paths like when fuzzing interrupt handlers themselves, where any +exception occurring is truly an error. + +### Setting Breakpoint Solutions + +SIMICS provides several ways of setting breakpoints, for example below shows setting a +breakpoint when a CPU writes to a specific range of memory: + +```simics +local $ctx = (new-context) +local $BREAK_BUFFER_ADDRESS = 0x400000 +local $BREAK_BUFFER_SIZE = 0x100 +qsp.mb.cpu0.core[0][0].set-context $ctx +local $bp_number = ($ctx.break -w $BREAK_BUFFER_ADDRESS $BREAK_BUFFER_SIZE) +``` + +Breakpoints have numbers, which you can add and remove from the set of breakpoints +the fuzzer treats as solutions with: + +```python +tsffs.iface.tsffs.add_breakpoint_solution(bp_number) +tsffs.iface.tsffs.remove_breakpoint_solution(bp_number) +``` + +If not specifying a breakpoint number, breakpoints can be set as solutions with: + +```python +tsffs.iface.tsffs.set_all_breakpoints_are_solutions(True) +``` + +This is useful when testing code that is not allowed to write, read, or execute specific +code. For example, userspace code should typically not execute code from its stack or +heap. + +## Fuzzer Settings + +### Using Snapshots + +SIMICS 6.0.175 introduced an experimental snapshots feature that is not dependent on +reverse execution micro-checkpoints. In some cases, this snapshot method is faster and +in some cases resolves issues with model incompatibility with micro-checkpoints. This +feature is not enabled by default. + +To use reverse-execution micro-checkpoints instead, use: + +```python +tsffs.iface.tsffs.set_use_snapshots(False) +``` + +Micro-checkpoints cannot be used by when compiling the module against versions of SIMICS +which do not support them, and a runtime panic will occur when attempting to take a +snapshot if enabled on an older version of SIMICS. + +### Using CMPLog + +Comparison logging greatly improves the efficiency of the fuzzer by making each +iteration more likely to progress through sometimes difficult-to-solve checks. It logs +values that are compared against during execution and uses them to mutate the input. + +Comparison logging is enabled by default. It can be disabled with: + +```python +tsffs.iface.tsffs.set_cmplog_enabled(False) +``` + +### Set Corpus and Solutions Directory + +By default, the corpus will be taken from (and written to) the directory "%simics%/corpus". + +Initial test cases should be placed in this directory. + +The directory test cases are taken from and written to can be changed with: + +```python +tsffs.iface.tsffs.set_corpus_directory("%simics%/other_corpus_directory") +``` + +Likewise, the directory solutions are saved to can be changed with: + + +```python +tsffs.iface.tsffs.set_solutions_directory("%simics%/other_solutions_directory") +``` + +### Enable Random Corpus Generation + +For testing, the fuzzer can generate an initial random corpus for you. This option +should *not* be used for real fuzzing campaigns, but can be useful for testing. + +In real campaigns, a representative corpus of the input triggering both the error and +non-error paths of the software under test should be placed in the `%simics%/corpus` +directory (or the directory specified with [the +API](#set-corpus-and-solutions-directory)). + +This can be enabled with: + +```python +tsffs.iface.tsffs.set_generate_random_corpus(True) +``` + +### Set an Iteration Limit + +The fuzzer can be set to execute only a specific number of iterations before exiting. +This is useful for CI fuzzing or for testing. The limit can be set with: + +```python +tsffs.iface.tsffs.set_iterations(1000) +``` + +### Adding Tokens From Target Software + +The fuzzer has a mutator which will insert, remove, and mutate tokens in testcases. This +allows the fuzzer to much more easily pass checks against strings and other short +sequences. In many cases, especially for text based protocols, this is an extremely +large improvement to fuzzer performance, and it should always be used where possible. + +The fuzzer provides methods for adding tokens from executable files, source files, and +dictionary files. Executable files can be PE/COFF (i.e. UEFI applications or Windows +applications) or ELF (i.e. unpacked kernel images or Linux applications). + +To add tokens from an executable file: + +```python +tsffs.iface.tsffs.tokenize_executable("%simics%/test.efi") +``` + +Tokens from source files are extracted in a best-effort language-independent way. +Multiple source files can be added. + +```python +tsffs.iface.tsffs.tokenize_executable("/home/user/source/test.c") +tsffs.iface.tsffs.tokenize_executable("/home/user/source/test_lib.c") +tsffs.iface.tsffs.tokenize_executable("/home/user/source/test.h") +``` + +Dictionary files are given in the same format as AFL and LibFuzzer: + +```txt +token_x = "hello" +token_y = "foo\x41bar" +``` + +Token dictionaries can be created manually, or tokens can be extracted from source files +more accurately than the built-in executable tokenizer using some existing tools: + +* [autodict-ql](https://github.com/AFLplusplus/AFLplusplus/tree/85c5b5218c6a7b2289f309fbd1625a5d0a602a00/utils/autodict_ql) +* [AFL++ dict2file pass](https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.llvm.md#5-bonus-feature-dict2file-pass) + +Once created, the tokens from these dictionaries can be added to the fuzzer with: + +```python +tsffs.iface.tsffs.add_token_file("%simics%/token-file.txt") +``` + +### Setting an Architecture Hint + +Some SIMICS models may not report the correct architecture for their CPU cores. When not +correct, setting an architecture hint can be useful to override the detected +architecture for the core. this is mostly useful for architectures that report `x86-64` +but are actually `i386`, and for architectures that are actually `x86-64` but are +running `i386` code in backward-compatibility mode. + +An architecture hint can be set with: + +```python +tsffs.iface.tsffs.add_architecture_hint(qsp.mb.cpu0.core[0][0], "i386") +``` + +### Adding a Trace Processor + +By default, only the processor core that either executes the start harness or is passed +to the [manual start API](../harnessing/black-box.md) is traced during execution. When fuzzing +code running on multiple cores, the additional cores can be added with: + +```python +tsffs.iface.tsffs.add_trace_processor(qsp.mb.cpu0.core[0][1]) +``` \ No newline at end of file diff --git a/docs/src/config/installing-in-projects.md b/docs/src/config/installing-in-projects.md new file mode 100644 index 00000000..b00de13d --- /dev/null +++ b/docs/src/config/installing-in-projects.md @@ -0,0 +1,46 @@ +# Installing In Projects + +After building and installing TSFFS into the local SIMICS installation (the last step in +the [Linux](../setup/linux.md#build-tsffs) and +[Windows](../setup/windows.md#build-tsffs) documents), TSFFS will be available to add +when creating projects. + +- [Installing In Projects](#installing-in-projects) + - [In New Projects](#in-new-projects) + - [In Existing Projects](#in-existing-projects) + +## In New Projects + +Projects are created using `ispm` (Intel Simics Package Manager). The command below +would create a project with packages numbered 1000 (SIMICS Base), 2096 (Quick Start +Platform [QSP] x86), 8112 (QSP CPU), and 31337 (TSFFS), each with the latest version +except SIMICS base, which here is specified as 6.0.169. All that is required to create +a new project with the TSFFS package included is to add it after the `--create` flag +to `ispm`. Using the `-latest` version is recommended for simplicity, but if you are a +TSFFS developer and need to test specific versions the version of any package may be +specified in the same way as the SIMICS base package here. + +```sh +ispm projects /path/to/new-project --create 1000-6.0.169 2096-latest 8112-latest 31337-latest +``` + +## In Existing Projects + +All SIMICS projects have a file `.package-list`, which contains a list of absolute or +relative (from the project's SIMICS base package root) paths to packages that should +be included in the project. + +If all SIMICS packages are installed into an `install-dir` together, the TSFFS package +can be added by adding a line like: + +```txt +../simics-tsffs-6.0.0/ +``` + +to your `.package-list` file, then running `bin/project-setup`. + +If your SIMICS packages are not all installed together, the path can be absolute, like: + +```txt +/absolute/path/to/installed/simics-tsffs-6.0.0/ +``` \ No newline at end of file diff --git a/docs/src/config/loading-module.md b/docs/src/config/loading-module.md new file mode 100644 index 00000000..fb9f5ad3 --- /dev/null +++ b/docs/src/config/loading-module.md @@ -0,0 +1,61 @@ +# Loading & Initializing TSFFS + +Before TSFFS can be used, the module must be loaded, an instance of the fuzzer must be +created and instantiated, and the fuzzer must be configured for your target. + +- [Loading \& Initializing TSFFS](#loading--initializing-tsffs) + - [Loading the Module](#loading-the-module) + - [Initializing the Fuzzer](#initializing-the-fuzzer) + - [Configuring the Fuzzer](#configuring-the-fuzzer) + +## Loading the Module + +The TSFFS module can be loaded by running (in a SIMICS script): + +```simics +load-module tsffs +``` + +Or, in a Python script: + +```python +SIM_load_module("tsffs") +``` + +## Initializing the Fuzzer + +"The Fuzzer" is an instance of the `tsffs` class, declared in the `tsffs` module. The +`tsffs` class can only be instantiated once in a given simulation. + +You can get the `tsffs` class by running (in a Python script -- this can be done in a +SIMICS script by prefixing this line with the `@` prefix): + +```python +tsffs_cls = SIM_get_class("tsffs") +``` + +Once we have the `tsffs_cls` an instance can be created with: + +```python +tsffs = SIM_create_object(tsffs_cls, "tsffs", []) +``` + +The fuzzer instance is now created and ready to configure and use. + +## Configuring the Fuzzer + +The fuzzer is configured through its singular interface, simply called +`tsffs`. This interface is used for both configuration and control of the +fuzzer. + +This interface can be accessed in Python scripts like: + +```python +tsffs.iface.tsffs.interface_method_name(interface_args, ...) +``` + +And from SIMICS scripts like using the `@` prefix like: + +```simics +@tsffs.iface.tsffs.interface_method_name(interface_args, ...) +``` \ No newline at end of file diff --git a/docs/src/fuzzing/README.md b/docs/src/fuzzing/README.md new file mode 100644 index 00000000..8ca07732 --- /dev/null +++ b/docs/src/fuzzing/README.md @@ -0,0 +1,7 @@ +# Fuzzing + +- [Checking Compatibility](compatibility.md) +- [Choosing a Harnessing Method](choose-harnessing-method.md) +- [Running the Fuzzer](running-fuzzer.md) +- [Verifying Progress](verifying-progress.md) +- [Optimizing for Fuzzing](optimizing-for-fuzzing.md) \ No newline at end of file diff --git a/docs/src/fuzzing/analyzing-results.md b/docs/src/fuzzing/analyzing-results.md new file mode 100644 index 00000000..b5fa50c7 --- /dev/null +++ b/docs/src/fuzzing/analyzing-results.md @@ -0,0 +1,13 @@ +# Analyzing Results + +Once a solution is found, the fuzzer can be run in *repro* mode which will: + +* Save a bookmark when the testcase is written +* Write only one testcase, the bytes from the specified file +* Stop without resetting to the initial snapshot + +Repro mode can be run after stopping execution, or before executing the fuzzing loop. + +```python +tsffs.iface.tsffs.repro("%simics%/solutions/TESTCASE") +``` \ No newline at end of file diff --git a/docs/src/fuzzing/choose-harnessing-method.md b/docs/src/fuzzing/choose-harnessing-method.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/Requirements.md b/docs/src/fuzzing/compatibility.md similarity index 91% rename from docs/Requirements.md rename to docs/src/fuzzing/compatibility.md index 15ecfff4..4e23d482 100644 --- a/docs/Requirements.md +++ b/docs/src/fuzzing/compatibility.md @@ -1,26 +1,38 @@ -# Requirements +# Compatibility There are a small number of requirements for the target software for this fuzzer to support it as a fuzz target. If your project meets the requirements here, it is likely it can use this fuzzer for fuzz testing! -- [Requirements](#requirements) +- [Compatibility](#compatibility) + - [Requirements Overview](#requirements-overview) - [Architecture](#architecture) - [Micro Checkpoints](#micro-checkpoints) - [Testing Micro Checkpoints](#testing-micro-checkpoints) - [Set Up The Project](#set-up-the-project) - [Test Micro Checkpoints](#test-micro-checkpoints) - [Testing for Your App](#testing-for-your-app) + - [Snapshots](#snapshots) + +## Requirements Overview + +TSFFS has two requirements to run: + +* Your target software must be running on a CPU model with a supported architecture +* Your target CPU model must support either micro-checkpoints or snapshots ## Architecture Supported Architectures: - x86_64 +- x86 +- RISC-V (32 and 64-bit) -For now, this fuzzer only supports target software running on Intel x86_64 architecture. -This is a temporary limitation dependent on testing and enabling tracing and fault -detection on other architectures. More architectures will be enabled in the future. +If your model's target architecture is one of these, it is supported by TSFFS. If not, +file an issue or pull request. Adding new architectures is easy, and can be a good +first contribution to the fuzzer. See the generic and specific architecture information +[here](../modules/tsffs/src/tsffs/src/arch/). ## Micro Checkpoints @@ -257,3 +269,16 @@ somewhat depending on your project. In general, try to follow this flow: 5. If you are able, do this several times. Some issues can occur on many executions that are not apparent after just one, for example if your model has a memory leak. You can script this step if you'd like. + + +## Snapshots + +Newer versions of SIMICS (>= 6.0.175) support a new feature called snapshots, which are +similar to micro checkpoints but do not rely on underlying rev-exec support. If your +model supports a new version of SIMICS, follow the same instructions as for micro +checkpoints, but replace: + +* `VT_save_micro_checkpoint("origin", 0)` with `VT_save_snapshot("origin")` +* `VT_restore_micro_checkpoint(0)` with `VT_restore_snapshot("origin")` + +And do not call `CORE_discard_future`. \ No newline at end of file diff --git a/docs/src/fuzzing/optimizing-for-fuzzing.md b/docs/src/fuzzing/optimizing-for-fuzzing.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/src/fuzzing/running-fuzzer.md b/docs/src/fuzzing/running-fuzzer.md new file mode 100644 index 00000000..357a8912 --- /dev/null +++ b/docs/src/fuzzing/running-fuzzer.md @@ -0,0 +1 @@ +# Running the Fuzzer \ No newline at end of file diff --git a/docs/src/fuzzing/verifying-progress.md b/docs/src/fuzzing/verifying-progress.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/src/harnessing/README.md b/docs/src/harnessing/README.md new file mode 100644 index 00000000..99db0b62 --- /dev/null +++ b/docs/src/harnessing/README.md @@ -0,0 +1,12 @@ +# Harnessing + +Harnessing target software to effectively use TSFFS to fuzz it is a target-dependent +subject, so examples of each supported harnessing method are provided here. The order of +each approach here is roughly equivalent to the preferred order harnessing should be +tried. If possible, the target software should be harnessed at the source-code level. If +not, try injecting testcases into its memory directly, and if this is still not possible +or not appropriate for your use case, the fully-manual approach can be used. + +- [Using Compiled-In Harnesses](compiled-in.md) +- [Black-Box Testcase Injection](black-box.md) +- [Manual Testcase Injection](manual.md) \ No newline at end of file diff --git a/docs/src/harnessing/black-box.md b/docs/src/harnessing/black-box.md new file mode 100644 index 00000000..bed849ad --- /dev/null +++ b/docs/src/harnessing/black-box.md @@ -0,0 +1,90 @@ +# Black Box Harnessing + +- [Black Box Harnessing](#black-box-harnessing) + - [Disabling Compiled-in/Magic Harnesses](#disabling-compiled-inmagic-harnesses) + - [Triggering Manual Stops/Solutions](#triggering-manual-stopssolutions) + +## Disabling Compiled-in/Magic Harnesses + +Magic start and stop behavior can be disabled, which allows harnessing target software +without compiled-in harness code. However, implementation becomes highly target-specific +and the magic harness approach is highly preferred. + +The same code as before, with no harness: + + +```c +#include "tsffs-gcc-x86_64.h" + +int main() { + char buf[20]; + size_t size = sizeof(buf); + + function_under_test(buf); + + return 0; +} +``` + +Can be harnessed in a black-box fashion by creating a script-branch to wait until the +simulation reaches a specified address, timeout, HAP, or any other condition. First, we +can disable magic harnesses (this is not strictly necessary unless any magic harnesses +actually exist in the target software, but it is good practice). + +```python +tsffs.iface.tsffs.set_start_on_harness(False) +tsffs.iface.tsffs.set_stop_on_harness(False) +``` + +Once compiled-in harnesses are disabled, the fuzzing loop can be started manually. There +are two APIs available. Both receive a `cpu` object as their first argument, which +should be a processor instance, for example on the QSP platform +`qsp.mb.cpu0.core[0][0]`. This is the processor whose associated memory will be written +with new testcases, and whose address space will be used for virtual address +translation. + +The first API takes two memory addresses, and is equivalent to the [compiled in +`HARNESS_START`](compiled-in.md#using-provided-headers) macro. When called, the fuzzer +will save the passed-in addresses (which may be virtual or physical), read the +pointer-sized integer at `*size_address` as the maximum size of testcases. take a +snapshot, and begin the fuzzing loop. Each iteration, a testcase will be written to the +testcase pointer, and the size of the testcase will be written to the provided size +pointer. This API is called like: + +```python +tsffs.iface.tsffs.start(cpu, testcase_address, size_address) +``` + +The second API takes one memory address and a maximum size. Testcases will be written +to the provided testcase address, and will be truncated to the provided maximum size. +This API is called like: + +```python +tsffs.iface.tsffs.start_with_maximum_size(cpu, testcase_address, maximum_size) +``` + +## Triggering Manual Stops/Solutions + +During manual or harnessed fuzzer execution, a normal stop or solution can be specified +at any time using the API. This allows arbitrary conditions for stopping execution of +a test case, or treating an execution as a solution, by programming via the SIMICS +script or SIMICS Python script. + +During execution, the fuzzer can be signaled to stop the current testcase execution with +a normal exit (i.e. *not* a solution), and reset to the initial snapshot with a new +testcase with: + +```python +tsffs.iface.tsffs.stop() +``` + +Likewise, the fuzzer can be signaled to stop the current testcase execution with a +solution. The fuzzer will save the input for this execution to the solutions directory +(see [that section](../config/common-options.md#set-corpus-and-solutions-directory)). +The `solution` method takes an ID and message that will be saved along with this +solution for later use. Any id and message can be provided, it is entirely up to the +user: + +```python +tsffs.iface.tsffs.solution(1, "A descriptive message about why this is a solution condition") +``` diff --git a/docs/src/harnessing/compiled-in.md b/docs/src/harnessing/compiled-in.md new file mode 100644 index 00000000..4259eb2e --- /dev/null +++ b/docs/src/harnessing/compiled-in.md @@ -0,0 +1,143 @@ +# Compiled-In Harnessing + +- [Compiled-In Harnessing](#compiled-in-harnessing) + - [Using Provided Headers](#using-provided-headers) + - [Multiple Harnesses in One Binary](#multiple-harnesses-in-one-binary) + - [Troubleshooting](#troubleshooting) + - [Compile Errors About Temporaries](#compile-errors-about-temporaries) + +## Using Provided Headers + +The TSFFS project provides harnessing headers for each supported combination of +architecture and build toolchain. These headers can be found in the `harness` directory +in the repository. + +Each header provides the macros `HARNESS_START` and `HARNESS_STOP`. + + +`HARNESS_START(testcase_ptr, size_ptr)` takes two arguments, a buffer for the fuzzer to +write testcases into each fuzzing iteration and a pointer to a pointer-sized variable, +which the fuzzer will write the size of each testcase to each fuzzing iteration. The +variable pointed to by `size_pointer` should be initially equal to the maximum size of a +testcase, typically the size of the buffer passed as the first argument. + +`HARNESS_STOP` takes no arguments. + +For example, the following code will invoke the start and stop harnesses correctly: + +```c +#include "tsffs-gcc-x86_64.h" + +int main() { + char buffer[20]; + size_t size = sizeof(buffer); + + // Each fuzzer iteration, execution will start from here, with a different buffer content + // and size=len(buffer). + HARNESS_START(buffer, &size); + + // Check if we got enough data from the fuzzer -- this is not always necessary + if (size < 3) { + // Stop early if we didn't get enough bytes from the fuzzer + HARNESS_STOP(); + } + + // Do something with buffer and size + function_under_test(buffer, size); + + // Stop normally + HARNESS_STOP(); + return 0; +} +``` + +By default, TSFFS is enabled to use these harnesses, so no explicit configuration is +necessary. However, the defaults are equivalent to the configuration: + +```python +tsffs.iface.tsffs.set_start_on_harness(True) +tsffs.iface.tsffs.set_stop_on_harness(True) +tsffs.iface.tsffs.set_start_magic_number(1) +tsffs.iface.tsffs.set_start_magic_number(2) +``` + +This sets TSFFS to start the fuzzing loop on a *magic* harness with magic number `1` +(used by `HARNESS_START`) and stop execution and restore to the initial snapshot on +*magic* harnesses with magic number `2` (used by `HARNESS_STOP`). + +## Multiple Harnesses in One Binary + +If multiple fuzzing campaigns will be run on the same target software, it is sometimes +advantageous to compile multiple harnesses into the same target software ahead of time, +and choose which to enable at runtime.Each provided header also provides two lower-level +macros for this purpose. + +* `__arch_harness_start(start, testcase_ptr, size_ptr)` +* `__arch_harness_stop(stop)` + +These macros are used in the same way as `HARNESS_START` and `HARNESS_STOP`, with the +additional first argument. The default value of `start` is 1, and the default value of +`stop` is 2, but TSFFS can be configured to treat a different value as the trigger to +start or stop the fuzzing loop. Note that `start` and `stop` must be at least 1 and at +most 11, so it is possible to create a target software with up to 10 different harnesses +(by using magic values `1`, `3-11` as start values and `2` as the stop value). This is a +limitation of the instructions SIMICS understands as *magic*, some of which only support +an immediate `0<=n<=12` (with magic numbers 0 and 12 *being reserved by SIMICS). + +```c +#include "tsffs-gcc-x86_64.h" + +int main() { + char buf[20]; + size_t size = sizeof(buf); + + __arch_harness_start(1, buf, &size); + + if (size < 3) { + // Stop early if there is not enough data + HARNESS_STOP(); + } + + char * result = function_under_test(buf); + + // Stop normally on success + HARNESS_STOP(); + + __arch_harness_start(3, result, &size); + + second_function_under_test(result); + + HARNESS_STOP(); + + return 0; +} +``` + +And configuration settings like: + + +```python +tsffs.iface.tsffs.set_start_on_harness(True) +tsffs.iface.tsffs.set_stop_on_harness(True) +tsffs.iface.tsffs.set_start_magic_number(3) +tsffs.iface.tsffs.set_start_magic_number(4) +``` + +With this runtime configuration, the first harness will be ignored, and only the second +set of harness calls will be used. + + +## Troubleshooting + +### Compile Errors About Temporaries + +Some toolchains or compiler versions may reject the use of an `&` reference in the +`HARNESS_START` macro (like `HARNESS_START(buffer, &size)`). In this case, create a +temporary to hold the address and pass it instead, like: + +```c +char buffer[100]; +size_t size = sizeof(buffer); +size_t size_ptr = &size; +HARNESS_START(buffer, size_ptr); +``` \ No newline at end of file diff --git a/docs/src/harnessing/manual.md b/docs/src/harnessing/manual.md new file mode 100644 index 00000000..a2a0b790 --- /dev/null +++ b/docs/src/harnessing/manual.md @@ -0,0 +1,15 @@ +# Manual Harnessing + +If the target software does not provide opportunity for injecting testcases into memory, +for example when testing an application which takes input via a network or other +hardware interface, manual harnessing can be used. This interface simply provides a way +for users to obtain the fuzzing test case directly from the fuzzer and use it in any way +that is appropriate. + +Harnessing in this way can be done using the api. Note that the API method still takes +a CPU object. When called, the initial snapshot is still captured in the same way as +with other [black box](black-box.md) harnessing methods. + +```python +tsffs.iface.tsffs.start_without_buffer(cpu) +``` \ No newline at end of file diff --git a/docs/src/internals/README.md b/docs/src/internals/README.md new file mode 100644 index 00000000..426bd799 --- /dev/null +++ b/docs/src/internals/README.md @@ -0,0 +1,3 @@ +# Internals + +- [Build Internals](build.md) \ No newline at end of file diff --git a/docs/src/internals/build.md b/docs/src/internals/build.md new file mode 100644 index 00000000..72b4e79b --- /dev/null +++ b/docs/src/internals/build.md @@ -0,0 +1,81 @@ +# Build Internals + +TSFFS is somewhat unique as a SIMICS module written in Rust, instead of a supported +language like Python, C, C++, or DML. This is possible due to a complex build +configuration. + +- [Build Internals](#build-internals) + - [SIMICS API Bindings](#simics-api-bindings) + - [Low Level Bindings](#low-level-bindings) + - [High Level Bindings](#high-level-bindings) + - [Macros](#macros) + - [Build Process](#build-process) + +## SIMICS API Bindings + +TSFFS maintains its own bindings to the SIMICS API, both low level bindings to the +exported C API and high level bindings that are more idiomatic Rust. + +### Low Level Bindings + +The low level bindings are initially generated using +[bindgen](https://github.com/rust-lang/rust-bindgen) from the C header files in the +SIMICS installation's `src/include` directory. This generates a large Rust file +containing declarations of all data types and function prototypes in the headers. + +The low level bindings crate (`simics-api-sys`) also emits linking instructions in its +`build.rs` build script to link against the libraries which actually provide the symbols +exported by the SIMICS header files. + +### High Level Bindings + +The high level bindings import the low level bindings and re-export them as +`simics::api::sys`. They also provide high level, more idiomatic bindings to nearly all +APIs in the low level bindings. In general, the `sys` bindings should never be used +except by the high level bindings, they are provided simply as an escape hatch. + +The high level bindings make extensive use of dynamic code generation from the low level +binding code and SIMICS HTML documentation. Code for generated for all built-in +interfaces in SIMICS base by parsing the struct definitions from the low level bindings. +HTML documentation is parsed to emit index information for the interfaces. Code is +generated for all built-in HAPS in SIMICS base by parsing the names and prototypes of +the HAP callback function, and emitting safe bindings around them. + +There are several core ideas expressed in the high level bindings: + +* `AttrValue` as a serialization and deserialization primitive +* Functions which take callbacks as parameters are wrapped with bindings that instead + take closures +* Where appropriate (in particular with `ConfObject`), pointers are left raw. Pointers + which are never dereferenced except by the SIMICS API are left raw without violating + safety. + +### Macros + +The high level SIMICS crate also has an associated proc-macro crate. It provides several +attribute macros for implementing: + +* Interfaces +* Classes +* Functions which may throw SIMICS exceptions + +It also provides derive macros for converting Rust structs to and from `AttrValue`s. + +In particular, the `#[interface_impl]` attribute generates a `.dml`, `.h`, and +`Makefile` to produce an interface. This is the reason the top level build invokes +`make` twice, to ensure the interface definition is updated and rebuilt. + +## Build Process + +The build process for the TSFFS SIMICS package is implemented in the top level +`build.rs` script. + +* Call `make` twice + * The first time, the TSFFS module is built and the interface files are emitted + * The second time, the updated interface is built +* Produce a package list file and package spec JSON file + * There is a script provided by an internal SIMICS package to produce the JSON file + from the package list, but the functionality is re-implemented in the top-level + build script because this script is not available to open source public users +* Create a module cache +* Create the final `.ispm` package \ No newline at end of file diff --git a/docs/src/setup/README.md b/docs/src/setup/README.md new file mode 100644 index 00000000..c0bcc20d --- /dev/null +++ b/docs/src/setup/README.md @@ -0,0 +1,8 @@ +# Setup + +Setup instructions are provided for all major platforms TSFFS supports (all platforms +supported by SIMICS). + +- [Docker](docker.md) +- [Linux](linux.md) +- [Windows](windows.md) \ No newline at end of file diff --git a/docs/src/setup/docker.md b/docs/src/setup/docker.md new file mode 100644 index 00000000..b38799c9 --- /dev/null +++ b/docs/src/setup/docker.md @@ -0,0 +1,17 @@ +# Setup (Docker) + +Setting up TSFFS using Docker is the recommended way to use TSFFS externally to Intel, +and is the best way for all new users of TSFFS to get familiar with the build process, +tools and configurations available. + +Setting up and using `tsffs` using the provided Dockerfile is only a few simple steps: + +1. Install Docker following the directions for your OS from + [docker.com](https://docs.docker.com/engine/install/). +2. Clone this repository: `git clone https://github.com/intel/tsffs/ && cd tsffs` +3. Build the container (this will take some time): `docker build -t tsffs .` +4. Run the container: `docker run -it tsffs` + +The provided base container will prompt you to run the included sample. Feel free to +customize the provided script and target -- any non-platform-specific UEFI application +can be fuzzed with this container! \ No newline at end of file diff --git a/docs/src/setup/linux.md b/docs/src/setup/linux.md new file mode 100644 index 00000000..d165f9dd --- /dev/null +++ b/docs/src/setup/linux.md @@ -0,0 +1,173 @@ +# Setup (Linux) + +The easiest way to get started with TSFFS is with our [docker setup](docker.md). + +This guide will walk you through local installation of the fuzzer instead. This is +recommended for both internal users and external users who want to move beyond the +initial examples. + +- [Setup (Linux)](#setup-linux) + - [Install Local Dependencies](#install-local-dependencies) + - [Install Rust](#install-rust) + - [Install SIMICS](#install-simics) + - [Build TSFFS](#build-tsffs) + +## Install Local Dependencies + +The TSFFS fuzzer module, its example cases, and the SIMICS installation process require +several local system dependencies. + +For Fedora Linux: + +```sh +sudo dnf -y update +sudo dnf -y install clang clang-libs cmake curl dosfstools g++ gcc git glibc-devel \ + glibc-devel.i686 glibc-static glibc-static.i686 gtk3 lld llvm make mtools \ + ninja-build openssl openssl-devel openssl-libs +``` + +## Install Rust + +Rust's official installation instructions can be found at +[rustup.rs](https://rustup.rs). To install Rust with the recommended settings for this +project (including the nightly toolchain), run: + +```sh +curl https://sh.rustup.rs -sSf | bash -s -- -y +rustup toolchain install nightly +``` + +The installer may prompt you to add `source $HOME/.cargo/env` to your shell init file. +You should accept this option if prompted, or otherwise add `cargo` to your path. + +Verify that `cargo` is installed in your path with: + +```sh +cargo +nightly --version +``` + +## Install SIMICS + +For users of the public distribution of SIMICS, visit the [SIMICS download +page](https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html), +accept the EULA, and download the following files. Users of internal or commercial +private Wind River or Intel SIMICS should follow internal documentation available +[here](TODO). + +* `intel-simics-package-manager-[VERSION].tar.gz` +* `simics-6-packages-[VERSION].ispm` + +You can also download via the direct links as shown below. You can download these files +anywhere, we suggest your `Downloads` directory. In subsequent commands, if you downloaded +directly from the download page, replace `ispm.tar.gz` with the full name of the `ispm` +tarball you downloaded, and likewise with `simics-6-packages` + +```sh +curl --noproxy -L -o $HOME/Downloads/ispm.tar.gz \ + "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-linux64.tar.gz" +curl --noproxy -L -o $HOME/Downloads/simics-6-packages.ispm \ + "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/simics-6-packages-2023-31-linux64.ispm" +``` + +Next, we will install SIMICS. Here, we install to `$HOME/simics/` . We will extract +`ispm` into our install directory. `ispm` is a static electron executable. + +```sh +mkdir -p $HOME/simics/ispm/ +tar -C $HOME/simics/ispm --strip-components=1 -xvf $HOME/Downloads/ispm.tar.gz +``` + +Next, we add `$HOME/simics/ispm` to our `PATH` by adding a line to our `.bashrc` or +`.zshrc`. You need not configure both shells, only configure the shell you plan to use +`ispm` in. + +`bash`: + +```sh +echo 'PATH="${PATH}:${HOME}/simics/ispm/"' >> $HOME/.bashrc +source $HOME/.bashrc +``` + +`zsh`: + +```sh +echo 'PATH="${PATH}:${HOME}/simics/ispm/"' >> $HOME/.zshrc +source $HOME/.zshrc +``` + +ISPM is installed. You can check that it is installed and working with: + +```sh +ispm --version +``` + +If ISPM prints its version number, it is installed successfully. With ISPM installed, we +will configure an `install-dir`. This is the directory all downloaded SIMICS packages +will be installed into. Custom-built SIMICS packages, including the TSFFS package, will +be installed here as well. + +```sh +ispm settings install-dir $HOME/simics/ +``` + +Now that we have configured our `install-dir`, we will install the ISPM bundle we +downloaded. + +```sh +ispm packages --install-bundle $HOME/Downloads/simics-6-packages.ispm --non-interactive +``` + +ISPM will report any errors it encounters. SIMICS is now installed. + +## Build TSFFS + +With all dependencies installed, it is time to clone (if you have not already) and build +TSFFS. You can clone `tsffs` anywhere you like, we use the SIMICS directory we already +created. If you already cloned `tsffs`, you can skip this step, just `cd` to the cloned +repository directory. + +```sh +git clone https://github.com/intel/tsffs $HOME/simics/tsffs/ +cd $HOME/simics/tsffs/ +``` + +The first step to building `tsffs` is to initialize the repository as a SIMICS project +so it is associated with your installed SIMICS packages. + +```sh +ispm projects $(pwd) --create --ignore-existing-files --non-interactive +``` + +Next, we run the `project-setup` script SIMICS installs into the repository for us to +update the project. + +```sh +bin/project-setup --force +``` + +Then, we will build the TSFFS package using the build script. This automates several +steps for us: + +* Runs `make` twice to invoke `cargo` with the correct environment to build and generate + a signed shared object (module) to be loaded into SIMICS +* Creates a `packages-spec.json` file from the TSFFS crate's contents +* Creates module info for the packaging scripts +* Creates a `.ispm` package that can be installed into the local SIMICS installation + +```sh +./build.rs +``` + +This will produce a file `linux64/packages/simics-pkg-31337-6.0.0-linux64.ispm`. We can +then install this package into our local SIMICS installation. This in turn allows us to +add the TSFFS package to our SIMICS projects for use. Note the +`--trust-insecure-packages` flag is required because this package is not built and +signed by the SIMICS team, but by ourselves. + +```sh +ispm packages -i linux64/packages/simics-pkg-31337-6.0.0-linux64.ispm \ + --non-interactive --trust-insecure-packages +``` + +You are now ready to use TSFFS! See the [User Guide](./UserGuide.md) to learn how to +add TSFFS to your SIMICS projects, configure TSFFS, and run fuzzing campaigns. \ No newline at end of file diff --git a/docs/src/setup/windows.md b/docs/src/setup/windows.md new file mode 100644 index 00000000..c7323bd5 --- /dev/null +++ b/docs/src/setup/windows.md @@ -0,0 +1,169 @@ +# Setup (Windows) + +This guide will walk you through installing build dependencies, building, and installing +TSFFS into your SIMICS installation on Windows. All console commands in this document +should be run in PowerShell (the default shell on recent Windows versions). + +- [Setup (Windows)](#setup-windows) + - [Install System Dependencies](#install-system-dependencies) + - [Git](#git) + - [7-Zip](#7-zip) + - [Install MinGW-w64](#install-mingw-w64) + - [Install Rust](#install-rust) + - [Install SIMICS](#install-simics) + - [Build TSFFS](#build-tsffs) + - [Test TSFFS](#test-tsffs) + - [Troubleshooting](#troubleshooting) + - [I Already Have A MinGW Installation](#i-already-have-a-mingw-installation) + - [Command is Unrecognized](#command-is-unrecognized) + +## Install System Dependencies + +### Git + +Download and install Git for Windows from the [git +website](https://git-scm.com/download/win). The default options are acceptable. In a new +powershell terminal, the command `git -h` should complete with no error. + +### 7-Zip + +Download and install 7-Zip from the [website](https://www.7-zip.org/). In a new +powershell terminal, the command `7z -h` should complete with no error. + +### Install MinGW-w64 + +If you already have a MinGW-w64 installation, you can skip this step and see the +[section](#i-already-have-a-mingw-installation) on using an existing installation. + +Download the MinGW archive from [winlibs.com](https://winlibs.com/#download-release). +Select the UCRT runtime *with* POSIX threads and LLVM/Clang/LLD/LLDB. Select the Win64 +7-Zip archive, or use the [direct +link](https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0-16.0.6-11.0.0-ucrt-r1/winlibs-x86_64-posix-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64ucrt-11.0.0-r1.7z) +to download an install the tested MinGW version (LLVM/Clang/LLD/LLDB+UCRT+POSIX, GCC +13.2.0). Once downloaded, run the following commands (assuming the file is downloaded to +`~/Downloads`, substitute the correct path if not) to extract the file to the MinGW +directory. You may prefer to right-click the `7z` file, choose `7-Zip: Extract Files`, +and type `C:\MinGW\` as the destination instead of running these commands. + +```powershell +7z x -o ~/Downloads/mingw-w64/ ~/Downloads/winlibs-x86_64-posix-seh-gcc-13.2.0-llvm-16.0.6-mingw-w64ucrt-11.0.0-r1.7z +mv ~/Downloads/mingw-w64/mingw64/ C:/MinGW/ +``` + +Next, add MinGW to the `Path` in your environment variables. + +1. Open the `Edit the System Environment Variables` control panel option +2. Select `Environment Variables` +3. Highlight `Path` under `User variables for YOUR_USERNAME` +4. Select `Edit...`. A new window will open. +5. Select `New` +6. Type `C:\MinGW\bin` +7. Select `OK`. The window will close. +8. Select `OK` on the previous window. + +Close your terminal and open a new terminal. Run `gcc --version` and ensure no error +occurs. + +### Install Rust + +Go to [rustup.rs](https://rustup.rs/) and download `rustup-init.exe`. Run +`rustup-init.exe` with the following arguments: + +```powershell +rustup-init.exe --default-toolchain nightly --default-host x86_64-pc-windows-gnu -y +``` + +After installation, close your terminal and open a new terminal as prompted. Run `cargo +--verison`. Ensure the version ends with `-nightly` (this is required to run the build +script). + +### Install SIMICS + +Go to the [SIMICS download +page](https://www.intel.com/content/www/us/en/developer/articles/tool/simics-simulator.html) +and download: + +* `simics-6-packages-VERSION-win64.ispm` +* `intel-simics-package-manager-VERSION-win64.exe` + +Run the downloaded `.exe` file to install `ispm` using the default settings (for your +user only). Next, add ISPM to the `Path` in your environment variables. + +1. Open the `Edit the System Environment Variables` control panel option +2. Select `Environment Variables` +3. Highlight `Path` under `User variables for YOUR_USERNAME` +4. Select `Edit...`. A new window will open. +5. Select `New` +6. Type `C:\Users\YOUR_USERNAME\AppData\Local\Programs\Intel Simics Package Manager`, + replacing `YOUR_USERNAME` with your Windows user account name. +7. Select `OK`. The window will close. +8. Select `OK` on the previous window. + +Close your terminal and open a new one. Run `ispm.exe --version` and ensure no error +occurs. + +Next, install the downloaded SIMICS packages. Run the following, replacing VERSION with +the version in your downloaded filename: + +```powershell +mkdir ~/simics +ispm.exe settings install-dir ~/simics +ispm.exe packages --install-bundle ~/Downloads/simics-6-VERSION-win64.ispm ` + --non-interactive +``` + +You may be prompted to accept certificates, choose `Y`. + +## Build TSFFS + +Clone TSFFS to your system (anywhere you like) and build with: + +```powershell +git clone https://github.com/intel/tsffs +cd tsffs +ispm.exe projects $(pwd) --create --non-interactive --ignore-existing-files +./bin/project-setup.bat --mingw-dir C:\MinGW\ --ignore-existing-files --force +cargo -Zscript build.rs +``` + +Once built, install TSFFS to your SIMICS installation with: + +```powershell +ispm.exe packages -i win64/packages/simics-pkg-31337-6.0.0-win64.ispm --non-interactive --trust-insecure-packages +``` + +## Test TSFFS + +We can test TSFFS by creating a new project with our minimal test case, a UEFI boot +disk, and the same fuzz script used in the Linux docker example in the +[README](../README.md). Run the following from the root of this repository: + +```powershell +mkdir $env:TEMP\TSFFS-Windows +ispm.exe projects $env:TEMP\TSFFS-Windows\ --create +cp examples\docker-example\fuzz.simics $env:TEMP\TSFFS-Windows\ +cp modules\tsffs\tests\targets\minimal-x86_64\* $env:TEMP\TSFFS-Windows\ +cp modules\tsffs\tests\rsrc\minimal_boot_disk.craff $env:TEMP\TSFFS-Windows\ +cp harness\tsffs-gcc-x86_64.h $env:TEMP\TSFFS-Windows\ +cd $env:TEMP\TSFFS-Windows +./simics ./fuzz.simics +``` + +## Troubleshooting + +### I Already Have A MinGW Installation + +If you already have a MinGW-w64 installation elsewhere, and you do not want to reinstall +it to `C:\MinGW`, edit `compiler.mk` and point `CC=` and `CXX=` at your MinGW `gcc.exe` +and `g++.exe` binaries, respectively, or change the location passed with the +`--mingw-dir` option in [the build step](#build-tsffs). + +### Command is Unrecognized + +If PowerShell complains that any command above is not recognized, take the following +steps: + +1. Run `echo $env:PATH` and ensure the directory containing the command you are trying + to run is present, add it to your `Path` environment variable if it is absent. +2. Close your terminal and open a new one. The `Path` variable is only reloaded on new + terminal sessions \ No newline at end of file diff --git a/examples/.gitignore b/examples/.gitignore new file mode 100644 index 00000000..955c1d3e --- /dev/null +++ b/examples/.gitignore @@ -0,0 +1 @@ +restricted/ \ No newline at end of file diff --git a/examples/breakpoints/.gitignore b/examples/breakpoints/.gitignore deleted file mode 100644 index 457e41cc..00000000 --- a/examples/breakpoints/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.o -*.lib -*.efi -corpus -project -solutions -src/.ninja_log \ No newline at end of file diff --git a/examples/breakpoints/input/1 b/examples/breakpoints/input/1 deleted file mode 100644 index b81cd7c9..00000000 --- a/examples/breakpoints/input/1 +++ /dev/null @@ -1 +0,0 @@ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/examples/breakpoints/input/2 b/examples/breakpoints/input/2 deleted file mode 100644 index a631cf2f..00000000 --- a/examples/breakpoints/input/2 +++ /dev/null @@ -1 +0,0 @@ -BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB diff --git a/examples/breakpoints/input/3 b/examples/breakpoints/input/3 deleted file mode 100644 index 2e9861c2..00000000 --- a/examples/breakpoints/input/3 +++ /dev/null @@ -1 +0,0 @@ -CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC diff --git a/examples/breakpoints/input/4 b/examples/breakpoints/input/4 deleted file mode 100644 index 760a4d92..00000000 --- a/examples/breakpoints/input/4 +++ /dev/null @@ -1 +0,0 @@ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD diff --git a/examples/breakpoints/rsrc/fuzz.simics b/examples/breakpoints/rsrc/fuzz.simics deleted file mode 100644 index b32139b7..00000000 --- a/examples/breakpoints/rsrc/fuzz.simics +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -$disk0_image = (lookup-file "%simics%/minimal_boot_disk.craff") -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -script-branch "UEFI Shell Enter Branch" { - local $kbd = $system.mb.sb.kbd - local $con = $system.console.con - local $sercon = $system.serconsole.con - - bp.time.wait-for seconds = 10 - - $kbd.key-press ESC - bp.time.wait-for seconds = 3 - - foreach $i in (range 2) { - $kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - # We are now in the UEFI shell, we'll download our EFI app - local $manager = (start-agent-manager) - $con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/target.efi") + "\n") - bp.time.wait-for seconds = .5 - - stop - - - @conf.tsffs_module.iface.tsffs_module.init() - @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) - # Page fault - @conf.tsffs_module.iface.tsffs_module.add_fault(14) - # Invalid opcode - @conf.tsffs_module.iface.tsffs_module.add_fault(6) - # Treat breakpoints as faults - @conf.tsffs_module.iface.tsffs_module.set_breakpoints_are_faults(True) - - $con.input "target.efi\n" - continue - -} - -script-branch "Set breakpoints" { - local $TARGET_HARNESS_ADDRESS = 0x180001082 - local $TARGET_INSTRUCTION_ADDRESS = 0x180001267 - local $TARGET_DATA_ADDRESS = 0x180003000 - - local $MAGIC_START = 1 - bp.magic.wait-for $MAGIC_START - - # Create a context for the CPU to set virtual address breakpoints. If you only need - # physical address breakpoints, you can just use `break` - local $ctx = (new-context) - board.mb.cpu0.core[0][0].set-context $ctx - - # Get the value of the IP and the offset from the known address (in this case, it - # should be 0) - local $rip = (board.mb.cpu0.core[0][0].read-reg rip) - local $offset = $rip - $TARGET_HARNESS_ADDRESS - - # Set a breakpoint on the bad instruction - local $harness_break_addr = ($TARGET_INSTRUCTION_ADDRESS + $offset) - echo "Setting instruction harness on:" - print -x $harness_break_addr - $ctx.break -x $harness_break_addr - - # Set a breakpoint on the data memory range - local $data_break_addr = ($TARGET_DATA_ADDRESS + $offset) - echo "Setting data harness on:" - print -x $data_break_addr - $ctx.break -r -w $data_break_addr 0x100 -} - -run \ No newline at end of file diff --git a/examples/breakpoints/rsrc/target.efi b/examples/breakpoints/rsrc/target.efi deleted file mode 100755 index d7a82005..00000000 Binary files a/examples/breakpoints/rsrc/target.efi and /dev/null differ diff --git a/examples/breakpoints/test.sh b/examples/breakpoints/test.sh deleted file mode 100755 index aa1f9563..00000000 --- a/examples/breakpoints/test.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -pushd src || exit 1 -ninja -popd || exit 1 - -cargo run --manifest-path ../../Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./src/target.efi:%simics%/target.efi" \ - --file "./rsrc/fuzz.simics:%simics%/fuzz.simics" \ - --file "./rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' diff --git a/examples/docker-example/fuzz.simics b/examples/docker-example/fuzz.simics new file mode 100644 index 00000000..4e451c99 --- /dev/null +++ b/examples/docker-example/fuzz.simics @@ -0,0 +1,63 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +# Load the TSFFS module. The project has the TSFFS package added to it by the +# ISPM command, this loads the known module into the simulator. +load-module tsffs + +# Create the TSFFS fuzzer object +@tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + +# Set the log level for TSFFS to 3 (debug). Set to 4 (trace) or 1 (error) for additional +# debug information or brevity, respectively +tsffs.log-level 3 + +# Set to start on magic harness. This is the "default" behavior for harnessing. +@tsffs.iface.tsffs.set_start_on_harness(True) + +# Set to stop on magic harness. This is the "default" behavior for harnessing. +@tsffs.iface.tsffs.set_stop_on_harness(True) + +# Set a virtual-time timeout of 3 seconds. If the target runs for this amount of time +# without encountering a normal stop or another solution condition, it will be +# considered a timeout. +@tsffs.iface.tsffs.set_timeout(3.0) + +# Set page faults as an exception-type solution. When the CPU raises exception #14, the +# input that caused it will be saved as a solution. +@tsffs.iface.tsffs.add_exception_solution(14) + +# Set to generate a random corpus. This is only used for demonstration purposes. +@tsffs.iface.tsffs.set_generate_random_corpus(True) + +# Public SIMICS uses SIMICS base version 6.0.169, so snapshots are not yet available +@tsffs.iface.tsffs.set_use_snapshots(False) + +# Tokenize our UEFI executable to greatly enhance mutation efficacy +@tsffs.iface.tsffs.tokenize_executable("%simics%/test.efi") + +# Load the UEFI shell target for the QSP-x86 board, using an x86-64 Golden Cove (Sapphire Rapids) processor class +# We set disk0 to the minimal_boot_disk.craff provided, which includes the SimicsAgent.efi app we can use to download +# our target UEFI application. +load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" machine:hardware:processor:class = "x86-goldencove-server" + +# Uncomment to disable QSP serial console output. This disables the target from printing. +# qsp.serconsole.con.disable-cmd-line-output + +# This script branch runs when the model starts. It waits an appropriate amount of time, +# then downloads the UEFI application we are fuzzing and runs it. The application is +# compiled with a harness that uses magic instructions to signal the fuzzer, which will +# enter the fuzzing loop once the harness code is reached. +script-branch { + bp.time.wait-for seconds = 15 + qsp.serconsole.con.input "\n" + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = .5 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "test.efi\n" +} + +run \ No newline at end of file diff --git a/examples/harnessing-uefi/.gitignore b/examples/harnessing-uefi/.gitignore deleted file mode 100644 index 457e41cc..00000000 --- a/examples/harnessing-uefi/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.o -*.lib -*.efi -corpus -project -solutions -src/.ninja_log \ No newline at end of file diff --git a/examples/harnessing-uefi/input/1 b/examples/harnessing-uefi/input/1 deleted file mode 100644 index b81cd7c9..00000000 --- a/examples/harnessing-uefi/input/1 +++ /dev/null @@ -1 +0,0 @@ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/examples/harnessing-uefi/input/2 b/examples/harnessing-uefi/input/2 deleted file mode 100644 index a631cf2f..00000000 --- a/examples/harnessing-uefi/input/2 +++ /dev/null @@ -1 +0,0 @@ -BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB diff --git a/examples/harnessing-uefi/input/3 b/examples/harnessing-uefi/input/3 deleted file mode 100644 index 2e9861c2..00000000 --- a/examples/harnessing-uefi/input/3 +++ /dev/null @@ -1 +0,0 @@ -CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC diff --git a/examples/harnessing-uefi/input/4 b/examples/harnessing-uefi/input/4 deleted file mode 100644 index 760a4d92..00000000 --- a/examples/harnessing-uefi/input/4 +++ /dev/null @@ -1 +0,0 @@ -DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD diff --git a/examples/harnessing-uefi/rsrc/fuzz.simics b/examples/harnessing-uefi/rsrc/fuzz.simics deleted file mode 100644 index 34c5ad76..00000000 --- a/examples/harnessing-uefi/rsrc/fuzz.simics +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -$disk0_image = (lookup-file "%simics%/minimal_boot_disk.craff") -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -script-branch "UEFI Shell Enter Branch" { - local $kbd = $system.mb.sb.kbd - local $con = $system.console.con - local $sercon = $system.serconsole.con - - bp.time.wait-for seconds = 10 - - $kbd.key-press ESC - bp.time.wait-for seconds = 3 - - foreach $i in (range 2) { - $kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - # We are now in the UEFI shell, we'll download our EFI app - local $manager = (start-agent-manager) - $con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/target.efi") + "\n") - bp.time.wait-for seconds = .5 - - stop - - - @conf.tsffs_module.iface.tsffs_module.init() - @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) - # Page fault - @conf.tsffs_module.iface.tsffs_module.add_fault(14) - # Invalid opcode - @conf.tsffs_module.iface.tsffs_module.add_fault(6) - # Invalid opcode - @conf.tsffs_module.iface.tsffs_module.add_fault(13) - - $con.input "target.efi\n" - continue - -} -run \ No newline at end of file diff --git a/examples/harnessing-uefi/rsrc/target.efi b/examples/harnessing-uefi/rsrc/target.efi deleted file mode 100755 index 33fbf7c0..00000000 Binary files a/examples/harnessing-uefi/rsrc/target.efi and /dev/null differ diff --git a/examples/harnessing-uefi/src/build.ninja b/examples/harnessing-uefi/src/build.ninja deleted file mode 100644 index d1c9b700..00000000 --- a/examples/harnessing-uefi/src/build.ninja +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -rule cc - command = clang -target x86_64-pc-win32-coff -fno-stack-protector -fshort-wchar $ - -mno-red-zone $cflags -c $in -o $out - -rule link - command = lld-link -filealign:16 -subsystem:efi_application -dll -nodefaultlib $ - -entry:UefiMain $in -out:$out - -build target.o: cc target.c - cflags = -O0 -build target.efi: link target.o - -build target-harnessed.o: cc target-harnessed.c - cflags = -O0 -build target-harnessed.efi: link target-harnessed.o - -build target-harnessed-include.o: cc target-harnessed-include.c - cflags = -I ../../../include/ -O0 -build target-harnessed-include.efi: link target-harnessed-include.o diff --git a/examples/harnessing-uefi/src/target-harnessed-include.c b/examples/harnessing-uefi/src/target-harnessed-include.c deleted file mode 100644 index c77efdb4..00000000 --- a/examples/harnessing-uefi/src/target-harnessed-include.c +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#include -#include - -#include "tsffs.h" - -// NOTE: Forward declaration -struct EfiSimpleTextOutputProtocol; - -typedef uint64_t (*EfiTextString)(struct EfiSimpleTextOutputProtocol *this, - int16_t *string); -typedef struct EfiTableHeader { - uint64_t signature; - uint32_t revision; - uint32_t headerSize; - uint32_t crc32; - uint32_t reserved; -} EfiTableHeader; - -typedef struct EfiSimpleTextOutputProtocol { - uint64_t reset; - EfiTextString output_string; - uint64_t test_string; - uint64_t query_mode; - uint64_t set_mode; - uint64_t set_attribute; - uint64_t clear_screen; - uint64_t set_cursor_position; - uint64_t enable_cursor; - uint64_t mode; -} EfiSimpleTextOutputProtocol; - -typedef struct EfiSystemTable { - EfiTableHeader hdr; - int16_t *firmwareVendor; - uint32_t firmwareRevision; - void *consoleInHandle; - uint64_t conIn; - void *consoleOutHandle; - EfiSimpleTextOutputProtocol *conOut; - void *standardErrorHandle; - uint64_t stdErr; - uint64_t runtimeServices; - uint64_t bootServices; - uint64_t numberOfTableEntries; - uint64_t configurationTable; -} EfiSystemTable; - -const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - -int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { - int16_t buffer[0x20]; - int16_t *buffer_ptr = &buffer[0]; - size_t size = sizeof(buffer) - 1; - - HARNESS_START(&buffer_ptr, &size); - - for (size_t i = 0; i < size; i++) { - if (i != 0 && !(i % 8)) { - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"\r\n"); - } - int16_t buf[5]; - buf[4] = 0; - int16_t chr = buffer[i]; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); - } - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); - - if (*(char *)buffer == 'a') { - // Invalid opcode - __asm__(".byte 0x06"); - } else if (*(char *)buffer == 'b') { - // Crash - uint8_t *bad_ptr = (uint8_t *)0xffffffffffffffff; - *bad_ptr = 0; - } - - HARNESS_STOP(); - - return 0; -} \ No newline at end of file diff --git a/examples/harnessing-uefi/src/target-harnessed.c b/examples/harnessing-uefi/src/target-harnessed.c deleted file mode 100644 index 87e05608..00000000 --- a/examples/harnessing-uefi/src/target-harnessed.c +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#include -#include - -// NOTE: Forward declaration -struct EfiSimpleTextOutputProtocol; - -typedef uint64_t (*EfiTextString)(struct EfiSimpleTextOutputProtocol *this, - int16_t *string); -typedef struct EfiTableHeader { - uint64_t signature; - uint32_t revision; - uint32_t headerSize; - uint32_t crc32; - uint32_t reserved; -} EfiTableHeader; - -typedef struct EfiSimpleTextOutputProtocol { - uint64_t reset; - EfiTextString output_string; - uint64_t test_string; - uint64_t query_mode; - uint64_t set_mode; - uint64_t set_attribute; - uint64_t clear_screen; - uint64_t set_cursor_position; - uint64_t enable_cursor; - uint64_t mode; -} EfiSimpleTextOutputProtocol; - -typedef struct EfiSystemTable { - EfiTableHeader hdr; - int16_t *firmwareVendor; - uint32_t firmwareRevision; - void *consoleInHandle; - uint64_t conIn; - void *consoleOutHandle; - EfiSimpleTextOutputProtocol *conOut; - void *standardErrorHandle; - uint64_t stdErr; - uint64_t runtimeServices; - uint64_t bootServices; - uint64_t numberOfTableEntries; - uint64_t configurationTable; -} EfiSystemTable; - -const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - -int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { - uint32_t _a, _b, _c, _d = 0; - - int16_t buffer[0x20]; - size_t size = sizeof(buffer) - 1; - int16_t *buffer_ptr = &buffer[0]; - size_t *size_ptr = &size; - - __asm__ __volatile__( - "cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d), "=S"(buffer_ptr), "=D"(size_ptr) - : "0"((0x0001U << 16U) | 0x4711U), "S"(buffer_ptr), "D"(size_ptr)); - - for (size_t i = 0; i < size; i++) { - if (i != 0 && !(i % 8)) { - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"\r\n"); - } - int16_t buf[5]; - buf[4] = 0; - int16_t chr = buffer[i]; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); - } - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); - - if (*(char *)buffer == 'a') { - // Invalid opcode - __asm__(".byte 0x06"); - } else if (*(char *)buffer == 'b') { - // Crash - uint8_t *bad_ptr = (uint8_t *)0xffffffffffffffff; - *bad_ptr = 0; - } - - __asm__ __volatile__("cpuid\n\t" - : "=a"(_a), "=b"(_b), "=c"(_c), "=d"(_d) - : "0"((0x0002U << 16U) | 0x4711U)); - - return 0; -} \ No newline at end of file diff --git a/examples/harnessing-uefi/src/target.c b/examples/harnessing-uefi/src/target.c deleted file mode 100644 index 7b778de6..00000000 --- a/examples/harnessing-uefi/src/target.c +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#include -#include - -// NOTE: Forward declaration -struct EfiSimpleTextOutputProtocol; - -typedef uint64_t (*EfiTextString)(struct EfiSimpleTextOutputProtocol *this, - int16_t *string); -typedef struct EfiTableHeader { - uint64_t signature; - uint32_t revision; - uint32_t headerSize; - uint32_t crc32; - uint32_t reserved; -} EfiTableHeader; - -typedef struct EfiSimpleTextOutputProtocol { - uint64_t reset; - EfiTextString output_string; - uint64_t test_string; - uint64_t query_mode; - uint64_t set_mode; - uint64_t set_attribute; - uint64_t clear_screen; - uint64_t set_cursor_position; - uint64_t enable_cursor; - uint64_t mode; -} EfiSimpleTextOutputProtocol; - -typedef struct EfiSystemTable { - EfiTableHeader hdr; - int16_t *firmwareVendor; - uint32_t firmwareRevision; - void *consoleInHandle; - uint64_t conIn; - void *consoleOutHandle; - EfiSimpleTextOutputProtocol *conOut; - void *standardErrorHandle; - uint64_t stdErr; - uint64_t runtimeServices; - uint64_t bootServices; - uint64_t numberOfTableEntries; - uint64_t configurationTable; -} EfiSystemTable; - -const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - -int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { - int16_t buffer[0x20]; - size_t size = sizeof(buffer) - 1; - - for (size_t i = 0; i < size; i++) { - if (i != 0 && !(i % 8)) { - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"\r\n"); - } - int16_t buf[5]; - buf[4] = 0; - int16_t chr = buffer[i]; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); - } - - SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); - - return 0; -} \ No newline at end of file diff --git a/examples/harnessing-uefi/test-gui.sh b/examples/harnessing-uefi/test-gui.sh deleted file mode 100755 index ec2a6caf..00000000 --- a/examples/harnessing-uefi/test-gui.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -pushd src || exit 1 -ninja -popd || exit 1 - -cargo run --manifest-path ../../Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./src/target-harnessed.efi:%simics%/target.efi" \ - --file "./rsrc/fuzz.simics:%simics%/fuzz.simics" \ - --file "./rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' \ - --enable-simics-gui diff --git a/examples/harnessing-uefi/test-included-gui.sh b/examples/harnessing-uefi/test-included-gui.sh deleted file mode 100755 index 4b762e8e..00000000 --- a/examples/harnessing-uefi/test-included-gui.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -pushd src || exit 1 -ninja -popd || exit 1 - -cargo run --manifest-path ../../Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./src/target-harnessed-include.efi:%simics%/target.efi" \ - --file "./rsrc/fuzz.simics:%simics%/fuzz.simics" \ - --file "./rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' \ - --enable-simics-gui diff --git a/examples/harnessing-uefi/test-included.sh b/examples/harnessing-uefi/test-included.sh deleted file mode 100755 index c10fe45e..00000000 --- a/examples/harnessing-uefi/test-included.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -pushd src || exit 1 -ninja -popd || exit 1 - -cargo run --manifest-path ../../Cargo.toml --release \ - --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./src/target-harnessed-include.efi:%simics%/target.efi" \ - --file "./rsrc/fuzz.simics:%simics%/fuzz.simics" \ - --file "./rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' diff --git a/examples/harnessing-uefi/test.sh b/examples/harnessing-uefi/test.sh deleted file mode 100755 index 0bba5d90..00000000 --- a/examples/harnessing-uefi/test.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -pushd src || exit 1 -ninja -popd || exit 1 - -cargo run --manifest-path ../../Cargo.toml --release \ - --bin simics-fuzz --features=6.0.169 -- \ - --project ./project --input ./input --solutions ./solutions --corpus ./corpus \ - --log-level INFO --trace-mode once --executor-timeout 60 --timeout 3 --cores 1 \ - --package 2096:6.0.70 \ - --file "./src/target-harnessed.efi:%simics%/target.efi" \ - --file "./rsrc/fuzz.simics:%simics%/fuzz.simics" \ - --file "./rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - --command 'COMMAND:run-script "%simics%/fuzz.simics"' diff --git a/examples/hello-world/corpus/0 b/examples/hello-world/corpus/0 deleted file mode 100644 index 95d09f2b..00000000 --- a/examples/hello-world/corpus/0 +++ /dev/null @@ -1 +0,0 @@ -hello world \ No newline at end of file diff --git a/examples/hello-world/rsrc/app.py b/examples/hello-world/rsrc/app.py deleted file mode 100644 index 7cade3f5..00000000 --- a/examples/hello-world/rsrc/app.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -""" -App startup script for hello-world example -""" - -# mypy: ignore-errors -# flake8: noqa -# pylint: disable=undefined-variable,import-error - - -import commands -import simics -from sim_params import params - -SIM_log_info(1, conf.sim, 0, "Running app.py") - -args = [[name, commands.param_val_to_str(value)] for (name, value) in params.items()] - -SIM_log_info(1, conf.sim, 0, "Running with args" + str(args)) - -SIM_log_info(1, conf.sim, 0, "Running simics script") - -simics.SIM_run_command_file_params( - simics.SIM_lookup_file("%simics%/targets/hello-world/run-uefi-app.simics"), - True, - args, -) - -SIM_log_info(1, conf.sim, 0, "Ran simics script") - -if SIM_get_batch_mode(): - SIM_log_info(1, conf.sim, 0, "Got batch mode") - SIM_log_info(1, conf.sim, 0, "Batch mode detected. Disconnecting console from VGA") - conf.board.mb.gpu.vga.console = None - -SIM_log_info(1, conf.sim, 0, "Done disconnecting") - -conf.tsffs_module.iface.tsffs_module.init() -conf.tsffs_module.iface.tsffs_module.add_processor( - SIM_get_object(simenv.system).mb.cpu0.core[0][0] -) -conf.tsffs_module.iface.tsffs_module.add_fault(14) -conf.tsffs_module.iface.tsffs_module.add_fault(6) -SIM_log_info(1, conf.sim, 0, "Added processor") -SIM_log_info(1, conf.sim, 0, "Started module") - -SIM_log_info(1, conf.sim, 0, "Started simulation") diff --git a/examples/hello-world/rsrc/app.yml b/examples/hello-world/rsrc/app.yml deleted file mode 100644 index 6470e317..00000000 --- a/examples/hello-world/rsrc/app.yml +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -%YAML 1.2 ---- -description: QSP with UEFI App (Fuzzing) -params: - apic_freq_mhz: - type: int - default: 133 - cpi: - type: int - default: 1 - cpu_comp_class: - type: str - default: "x86QSP1" - freq_mhz: - type: int - default: 2000 - num_cores: - type: int - default: 1 - num_cores_small: - type: int - default: 0 - num_cpus: - type: int - default: 1 - num_threads: - type: int - default: 1 - num_threads_small: - type: int - default: 0 - hide_consoles: - type: bool - default: FALSE - serial_console_bg_color: - type: str - default: "black" - serial_console_fg_color: - type: str - default: "white" - show_con0: - type: bool - default: TRUE - show_con1: - type: bool - default: FALSE - show_gfx_con: - type: bool - default: TRUE - create_cdrom: - type: str - default: "sata" - create_disk0: - type: str - default: "sata" - disk0_image: - type: file - default: "%simics%/targets/hello-world/minimal_boot_disk.craff" - disk0_size: - type: int - default: 209715200 - tsc_factor: - type: int - default: 20 - connect_real_network: - type: str - default: "napt" - create_network: - type: bool - default: TRUE - create_service_node: - type: bool - default: TRUE - dhcp_domain_name: - type: str - default: "network.sim" - dhcp_pool_size: - type: int - default: 100 - eth_connector_vlan_id: - type: int - default: -1 - eth_vlan_enable: - type: bool - default: FALSE - ip_address: - type: str - default: "auto" - mac_address: - type: str - default: "auto" - service_node_ip_address: - type: str - default: "10.10.0.1" - service_node_setup: - type: bool - default: TRUE - service_node_vlan_id: - type: int - default: -1 - create_osa: - type: bool - default: TRUE - create_tracker: - type: bool - default: FALSE - enable_break_on_reboot: - type: bool - default: FALSE - enable_system_clock: - type: bool - default: FALSE - real_time_mode: - type: bool - default: FALSE - system_clock_class: - type: str - default: "clock" - system_info: - type: str - default: "QSP x86 with externally provided Kernel/RootFs/InitRd" - auto_start_uefi_shell: - type: bool - default: TRUE - bios_image: - type: file - default: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd" - create_usb_tablet: - type: bool - default: FALSE - machine_name: - type: str - default: "board" - memory_megs: - type: int - default: 8192 - rtc_time: - type: str - default: "2021-06-10 10:41:54" - startup_nsh: - type: file - default: "%simics%/targets/hello-world/run_uefi_app.nsh" - uefi_app: - type: file - default: "%simics%/targets/hello-world/HelloWorld.efi" - eth_link: - type: str - output: true - service_node: - type: str - output: true - system: - type: str - output: true - -script: "%simics%/scripts/app.py" -... \ No newline at end of file diff --git a/examples/hello-world/rsrc/minimal_boot_disk.craff b/examples/hello-world/rsrc/minimal_boot_disk.craff deleted file mode 100644 index 8f121f53..00000000 Binary files a/examples/hello-world/rsrc/minimal_boot_disk.craff and /dev/null differ diff --git a/examples/hello-world/rsrc/run-uefi-app.simics b/examples/hello-world/rsrc/run-uefi-app.simics deleted file mode 100644 index 89f546fc..00000000 --- a/examples/hello-world/rsrc/run-uefi-app.simics +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -decl { - - # We import most parameters from the QSP-X86 boot script - params from "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - - group "MSR" - - # Set the TSC factor field for platform info MSR. - param tsc_factor : int = 20 - - group "System" - - # Automatically enter BIOS setup and start UEFI shell using the script - # branch below - param auto_start_uefi_shell : bool = TRUE - - # NSH script that controls things. - param startup_nsh : file("*") or nil = "%simics%/targets/hello-world/run_uefi_app.nsh" - - # UEFI app you wanna start. - param uefi_app : file("*") - - result system : string - result eth_link : string or nil - result service_node : string or nil -} - -echo "Loaded simics declaration" - -echo "Running command file" - -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -@import os -@simenv.startup_nsh_nodir = os.path.basename(simenv.startup_nsh) -echo "Set startup nsh" -@simenv.uefi_app_nodir = os.path.basename(simenv.uefi_app) -echo "Set startup uefi app" - -# The below branch will (when enabled) enter the BIOS menu by pressing ESC -# after 10 seconds, then go to the third entry on the top level (by pressin DOWN twice). -# The assumption is that this is the boot device selection (which is true for the QSP BIOS) -# Then there is one press of UP, to select the last element in the list, which is assumed -# to be the UEFI shell (which again is true for the QSP BIOS). Then the shell is started. - -# note: this is actually needed to boot the uefi image! - -if $auto_start_uefi_shell { - script-branch "UEFI Shell Enter Branch" { - echo "Doing UEFI button combination" - local $kbd = $system.mb.sb.kbd - local $con = $system.console.con - local $sercon = $system.serconsole.con - bp.time.wait-for seconds = 10 - $kbd.key-press ESC - bp.time.wait-for seconds = 3 - foreach $i in (range 2) { - $kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - $kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - #stop countdown - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - echo "Running command: FS0:\n" - - $con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - echo "Running command: " + "set -v UEFI_APP_ON_HOST \"" + $uefi_app + "\"\n" - $con.input ("set -v UEFI_APP_ON_HOST \" " + $uefi_app + "\"\n") - bp.time.wait-for seconds = .5 - - echo "Running command: " + "set -v UEFI_APP_NODIR \"" + $uefi_app_nodir + "\"\n" - $con.input ("set -v UEFI_APP_NODIR \" " + $uefi_app_nodir + "\"\n") - bp.time.wait-for seconds = .5 - - - local $manager = (start-agent-manager) - - echo "Running command: " + "SimicsAgent.efi --download \"" + (lookup-file $startup_nsh) + "\"\n" - $con.input ("SimicsAgent.efi --download " + (lookup-file $startup_nsh) + "\n") - bp.time.wait-for seconds = .5 - - echo "Running command: " + "\"" + $startup_nsh_nodir + "\"\n" - $con.input ("" + $startup_nsh_nodir + "\n") - - } -} \ No newline at end of file diff --git a/examples/hello-world/rsrc/run_uefi_app.nsh b/examples/hello-world/rsrc/run_uefi_app.nsh deleted file mode 100644 index f9939da3..00000000 --- a/examples/hello-world/rsrc/run_uefi_app.nsh +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -#Get kernel image -SimicsAgent.efi --download %UEFI_APP_ON_HOST% - -%UEFI_APP_NODIR% \ No newline at end of file diff --git a/examples/hello-world/src/tsffs.h b/examples/hello-world/src/tsffs.h deleted file mode 100644 index 89a4fdef..00000000 --- a/examples/hello-world/src/tsffs.h +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#ifndef TSFFS_H -#define TSFFS_H - -#include - -#if (defined(__i386__) || defined(__i586__) || defined(__i686__)) -#define MAGIC 18193 -#endif - -#if defined(__x86_64__) -#define MAGIC 18193 -#endif - -#define MAGIC_START 1 - -#define MAGIC_STOP 2 - -#if (defined(__i386__) || defined(__i586__) || defined(__i686__)) -/** - * X86 32: - * - */ - -#define __cpuid_extended2(level, a, b, c, d, inout_ptr_0, inout_ptr_1) \ - __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ - : "0"(level), "S"(*inout_ptr_0), "D"(*inout_ptr_1) \ - : "memory") - -#define __cpuid_extended1(level, a, b, c, d, inout_ptr_0) \ - __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0) \ - : "0"(level), "S"(*inout_ptr_0) \ - : "memory") - -#define __cpuid(level, a, b, c, d) \ - __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ - : "0"(level) \ - : "memory") - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ - __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(leaf, _a, _b, _c, _d); \ - } while (0) - -#define __arch_harness_stop_extended(val_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ - } while (0) - -void __marker_i386(void); -#endif - -#if defined(__x86_64__) -/** - * X86_64: - * - */ - -#define __cpuid_extended2(level, a, b, c, d, inout_ptr_0, inout_ptr_1) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ - : "0"(level), "S"(*inout_ptr_0), "D"(*inout_ptr_1)) - -#define __cpuid_extended1(level, a, b, c, d, inout_ptr_0) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0) \ - : "0"(level), "S"(*inout_ptr_0)) - -#define __cpuid(level, a, b, c, d) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ - : "0"(level)) - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ - __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(leaf, _a, _b, _c, _d); \ - } while (0) - -#define __arch_harness_stop_extended(val_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ - } while (0) - -void __marker_x86_64(void); -#endif - -/** - * Architecture-independent harness macros: - * - * - */ - -#define HARNESS_START(addr_ptr, size_ptr) \ - do { \ - __arch_harness_start(addr_ptr, size_ptr); \ - } while (0) - -#define HARNESS_STOP() \ - do { \ - __arch_harness_stop(); \ - } while (0) - -#define HARNESS_STOP_EXTENDED(val_ptr) \ - do { \ - __arch_harness_stop_extended(val_ptr); \ - } while (0) - -void __marker(void); - -/** - * Called by SIMICS C stub to initialize the module, this is the entrypoint of - * the entire module - */ -void module_init_local(void); - -#endif /* TSFFS_H */ diff --git a/examples/manual-example/Dockerfile b/examples/manual-example/Dockerfile new file mode 100644 index 00000000..552fef3b --- /dev/null +++ b/examples/manual-example/Dockerfile @@ -0,0 +1,114 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# hadolint global ignore=DL3041,DL3040 + +FROM fedora:38 + +# Download links can be obtained from: +# https://lemcenter.intel.com/productDownload/?Product=256660e5-a404-4390-b436-f64324d94959 +ARG PUBLIC_SIMICS_PKGS_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/simics-6-packages-2023-31-linux64.ispm" +ARG PUBLIC_SIMICS_ISPM_URL="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/881ee76a-c24d-41c0-af13-5d89b2a857ff/intel-simics-package-manager-1.7.5-linux64.tar.gz" +# Add cargo and ispm to the path +ENV PATH="/root/.cargo/bin:/workspace/simics/ispm:${PATH}" + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Install local dependencies: +# - Libraries and dependencies for SIMICS and ISPM +# - Libraries and dependencies for building a sample UEFI application +# - Tools for creating a CRAFF image to load into a model +# - Python, including checkers/linters +# - Rust (will be on the PATH due to the ENV command above) +RUN dnf -y update && \ + dnf -y install \ + alsa-lib \ + atk \ + bash \ + clang \ + clang-libs \ + clang-resource-filesystem \ + clang-tools-extra \ + cmake \ + cups \ + curl \ + dosfstools \ + g++ \ + gcc \ + git \ + git-lfs \ + glibc-devel \ + glibc-devel.i686 \ + glibc-static \ + glibc-static.i686 \ + gtk3 \ + lld \ + lld-devel \ + lld-libs \ + llvm \ + llvm-libs \ + llvm-static \ + make \ + mesa-libgbm \ + mtools \ + ninja-build \ + openssl \ + openssl-devel \ + openssl-libs \ + python3 \ + python3-pip \ + vim \ + yamllint && \ + python3 -m pip install --no-cache-dir \ + black==23.10.1 \ + flake8==6.1.0 \ + isort==5.12.0 \ + mypy==1.6.1 \ + pylint==3.0.2 && \ + curl https://sh.rustup.rs -sSf | bash -s -- -y && \ + rustup toolchain install nightly + + +WORKDIR /workspace + +# Download and install public SIMICS. This installs all the public packages as well as the +# ispm SIMICS package and project manager. ISPM will be on the path due to the ENV command +# above +RUN mkdir -p /workspace/simics/ispm/ && \ + curl --noproxy -L -o /workspace/simics/ispm.tar.gz "${PUBLIC_SIMICS_ISPM_URL}" && \ + curl --noproxy -L -o /workspace/simics/simics.ispm "${PUBLIC_SIMICS_PKGS_URL}" && \ + tar -C /workspace/simics/ispm --strip-components=1 \ + -xvf /workspace/simics/ispm.tar.gz && \ + ispm settings install-dir /workspace/simics && \ + ispm packages --install-bundle /workspace/simics/simics.ispm --non-interactive && \ + rm /workspace/simics/ispm.tar.gz /workspace/simics/simics.ispm + +# Copy the local repository into the workspace +COPY . /workspace/tsffs/ + +WORKDIR /workspace/tsffs/ + +# Build the project by initializing it as a project associated with the local SIMICS installation +# and building the module using the build script. Then, install the built TSFFS SIMICS +# package into the local SIMICS installation for use. +RUN ispm projects /workspace/tsffs/ --create --ignore-existing-files --non-interactive && \ + bin/project-setup --force && \ + ./build.rs && \ + ispm packages \ + -i /workspace/tsffs/linux64/packages/simics-pkg-31337-6.0.0-linux64.ispm \ + --non-interactive --trust-insecure-packages + +WORKDIR /workspace/projects/example/ + +RUN dnf -y update && \ + dnf -y install rizin + +RUN ispm projects /workspace/projects/example/ --create --ignore-existing-files --non-interactive && \ + cp /workspace/tsffs/examples/manual-example/* . && \ + ninja && \ + rizin -e 'asm.var=false' -e 'asm.lines=false' -qqc 'idp test.pdb; aaaa; sf pdb.test.Check; pd 1 ~[0]:-1;' test.efi > START_ADDRESS && \ + rizin -e 'asm.var=false' -e 'asm.lines=false' -qqc 'idp test.pdb; aaaa; sf pdb.test.Check; pdf ~[0]:-1;' test.efi > STOP_ADDRESS + +RUN echo 'echo "To run the demo, run ./simics -no-gui --no-win fuzz.simics"' >> /root/.bashrc + + + diff --git a/examples/manual-example/README.md b/examples/manual-example/README.md new file mode 100644 index 00000000..e0d84994 --- /dev/null +++ b/examples/manual-example/README.md @@ -0,0 +1,17 @@ +# Manual Example + +This example shows how to manually harness a binary in black-box mode +(that is, without being able to compile in a harness). + +To run this example, from the *repo root* run: + +```sh +docker build -t tsffs-manual -f examples/manual-example/Dockerfile . +docker run -it tsffs-manual +``` + +Then in the container run: + +```sh +./simics -no-gui --no-win --batch-mode fuzz.simics +``` \ No newline at end of file diff --git a/examples/breakpoints/src/build.ninja b/examples/manual-example/build.ninja similarity index 53% rename from examples/breakpoints/src/build.ninja rename to examples/manual-example/build.ninja index 001c0c2d..5cf12979 100644 --- a/examples/breakpoints/src/build.ninja +++ b/examples/manual-example/build.ninja @@ -6,13 +6,13 @@ rule cc -mno-red-zone $cflags -c $in -o $out rule link - command = lld-link -filealign:16 -subsystem:efi_application -nodefaultlib -dll $ + command = lld-link $ldflags -filealign:16 -subsystem:efi_application -nodefaultlib -dll $ -entry:UefiMain $in -out:$out rule copy command = cp $in $out -build target.o: cc target.c - cflags = -I ../../../include/ -O0 -g -build target.efi: link target.o -build ../rsrc/target.efi: copy target.efi +build test.o: cc test.c + cflags = -O0 -g -gcodeview -gdwarf-5 -gembed-source -fstandalone-debug +build test.efi: link test.o + ldflags = -debug -debugtype:pdata diff --git a/examples/manual-example/fuzz.simics b/examples/manual-example/fuzz.simics new file mode 100644 index 00000000..6ad1585a --- /dev/null +++ b/examples/manual-example/fuzz.simics @@ -0,0 +1,58 @@ +# Read the start and stop addresses from the files containing them (see Dockerfile for +# how they are generated) +@simenv.start_addr = int(open("START_ADDRESS").read().strip(), 16) +@simenv.stop_addr = int(open("STOP_ADDRESS").read().strip(), 16) + +# Configure the fuzzer +load-module tsffs +@tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) +@tsffs.log_level = 4 +@tsffs.iface.tsffs.set_start_on_harness(False) +@tsffs.iface.tsffs.set_stop_on_harness(False) +@tsffs.iface.tsffs.set_timeout(3.0) +@tsffs.iface.tsffs.add_exception_solution(14) +@tsffs.iface.tsffs.set_generate_random_corpus(True) +@tsffs.iface.tsffs.set_use_snapshots(False) +@tsffs.iface.tsffs.tokenize_executable("%simics%/test.efi") + +# load the target +load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" + +# Set a breakpoint for start and stop events +$start_bp = (bp.memory.break -x $start_addr) +$stop_bp = (bp.memory.break -x $stop_addr) + +# Continuously wait for the start bp to occur after reset, and call the start method +script-branch { + while 1 { + bp.wait-for-breakpoint id = $start_bp + echo "Got start BP" + local $rdi = (qsp.mb.cpu0.core[0][0].read-reg reg-name = "rdi") + echo ("Starting with buffer " + $rdi) + @tsffs.iface.tsffs.start_with_maximum_size(conf.qsp.mb.cpu0.core[0][0], simenv.rdi, 8) + } +} + +# Continuously wait for the stop bp to occur after reset, and call the start method +script-branch { + while 1 { + bp.wait-for-breakpoint id = $stop_bp + echo "Got stop BP" + @tsffs.iface.tsffs.stop() + } +} + +# Enter the EFI shell and run the EFI application +script-branch { + bp.console_string.wait-for qsp.serconsole.con "Shell>" + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = 1.0 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = 1.0 + # Set an execute breakpoint on the address we found by disassembling + # the EFI binary (see the dockerfile for the rizin command used) + qsp.serconsole.con.input "test.efi\n" +} + +run \ No newline at end of file diff --git a/examples/breakpoints/rsrc/minimal_boot_disk.craff b/examples/manual-example/minimal_boot_disk.craff similarity index 100% rename from examples/breakpoints/rsrc/minimal_boot_disk.craff rename to examples/manual-example/minimal_boot_disk.craff diff --git a/examples/breakpoints/src/target.c b/examples/manual-example/test.c similarity index 50% rename from examples/breakpoints/src/target.c rename to examples/manual-example/test.c index 8500e36d..b7767ecb 100644 --- a/examples/breakpoints/src/target.c +++ b/examples/manual-example/test.c @@ -4,13 +4,6 @@ #include #include -#include "tsffs.h" - -// NOTE: Forward declaration -struct EfiSimpleTextOutputProtocol; - -typedef uint64_t (*EfiTextString)(struct EfiSimpleTextOutputProtocol *this, - int16_t *string); typedef struct EfiTableHeader { uint64_t signature; uint32_t revision; @@ -19,6 +12,11 @@ typedef struct EfiTableHeader { uint32_t reserved; } EfiTableHeader; +struct EfiSimpleTextOutputProtocol; + +typedef uint64_t (*EfiTextString)(struct EfiSimpleTextOutputProtocol *this, + int16_t *string); + typedef struct EfiSimpleTextOutputProtocol { uint64_t reset; EfiTextString output_string; @@ -50,54 +48,63 @@ typedef struct EfiSystemTable { const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; +const char *password = "fuzzing!"; + +int Check(char *buffer, size_t *size, EfiSystemTable *SystemTable) { + // We'll stop here and harness this buffer + if ((((char *)buffer)[0]) == password[0]) { + if ((((char *)buffer)[1]) == password[1]) { + if ((((char *)buffer)[2]) == password[2]) { + if ((((char *)buffer)[3]) == password[3]) { + if ((((char *)buffer)[4]) == password[4]) { + if ((((char *)buffer)[5]) == password[5]) { + if ((((char *)buffer)[6]) == password[6]) { + if ((((char *)buffer)[7]) == password[7]) { + SystemTable->conOut->output_string( + SystemTable->conOut, + (int16_t *)L"All characters were correct!\r\n"); + uint8_t *ptr = (uint8_t *)0xffffffffffffffff; + *ptr = 0; + } + } + } + } + } + } + } + } -char off_limits[0x100] = {0x00}; + return 0; +} +// The entrypoint of our EFI application int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { - uint32_t _a, _b, _c, _d = 0; - - int16_t buffer[0x20]; - int16_t *buffer_ptr = &buffer[0]; - size_t size = sizeof(buffer) - 1; - - HARNESS_START(&buffer_ptr, &size); + // We have a size and a buffer of that size. The address of the buffer and the + // address of the size variable will be passed to the fuzzer. On the first + // start harness, the fuzzer will save the initial value of the size and the + // addresses of both variables. On each iteration of the fuzzer, up to the + // initial size bytes of fuzzer input data will be written to the buffer, and + // the current testcase size in bytes will be written to the size variable. + char buffer[8] = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; + size_t size = sizeof(buffer); for (size_t i = 0; i < size; i++) { if (i != 0 && !(i % 8)) { SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); } - int16_t buf[5]; - buf[4] = 0; - int16_t chr = buffer[i]; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; + uint8_t chr = buffer[i]; + int16_t buf[3]; + buf[0] = hex[(chr >> 4) & 0xf]; + buf[1] = hex[chr & 0xf]; + buf[2] = 0; SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); } SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); - if (*(char *)buffer == 'a') { - // Invalid opcode - __asm__(".byte 0x06"); - } else if (*(char *)buffer == 'b') { - // Crash - uint8_t *bad_ptr = (uint8_t *)0xffffffffffffffff; - *bad_ptr = 0; - } else if (*(char *)buffer == 'c') { - // Breakpoint-defined fault location (instruction BP) - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"Uh oh!\r\n"); - } else if (*(char *)buffer == 'd') { - for (size_t i = 0; i < sizeof(off_limits); i++) { - off_limits[i] = 'X'; - } - } - - HARNESS_STOP(); + Check(buffer, &size, SystemTable); return 0; } \ No newline at end of file diff --git a/examples/mini/.gitignore b/examples/mini/.gitignore deleted file mode 100644 index 98dc2333..00000000 --- a/examples/mini/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -corpus -solution -test-project \ No newline at end of file diff --git a/examples/mini/rsrc/fuzz.simics b/examples/mini/rsrc/fuzz.simics deleted file mode 100644 index 919744a7..00000000 --- a/examples/mini/rsrc/fuzz.simics +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -$disk0_image = (lookup-file "%simics%/minimal_boot_disk.craff") -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -script-branch "UEFI Shell Enter Branch" { - local $kbd = $system.mb.sb.kbd - local $con = $system.console.con - local $sercon = $system.serconsole.con - - bp.time.wait-for seconds = 10 - - $kbd.key-press ESC - bp.time.wait-for seconds = 3 - - foreach $i in (range 2) { - $kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - # We are now in the UEFI shell, we'll download our EFI app - local $manager = (start-agent-manager) - $con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/mini.efi") + "\n") - bp.time.wait-for seconds = .5 - - stop - - @conf.tsffs_module.iface.tsffs_module.init() - @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) - # Page fault - @conf.tsffs_module.iface.tsffs_module.add_fault(14) - # Invalid opcode - @conf.tsffs_module.iface.tsffs_module.add_fault(6) - - $con.input "mini.efi\n" -} - -run - diff --git a/examples/mini/rsrc/mini.efi b/examples/mini/rsrc/mini.efi deleted file mode 100755 index f90c9309..00000000 Binary files a/examples/mini/rsrc/mini.efi and /dev/null differ diff --git a/examples/mini/rsrc/minimal_boot_disk.craff b/examples/mini/rsrc/minimal_boot_disk.craff deleted file mode 100644 index 8f121f53..00000000 Binary files a/examples/mini/rsrc/minimal_boot_disk.craff and /dev/null differ diff --git a/examples/mini/src/.gitignore b/examples/mini/src/.gitignore deleted file mode 100644 index 445197ec..00000000 --- a/examples/mini/src/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.ninja_log -mini.lib -mini.o -mini.efi diff --git a/examples/mini/test.sh b/examples/mini/test.sh deleted file mode 100755 index 5003c41b..00000000 --- a/examples/mini/test.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -pushd "${SCRIPT_DIR}" || exit 1 - -pushd "${SCRIPT_DIR}/src/" || exit 1 - -ninja - -popd || exit 1 - -cargo run --release --features=6.0.169 -- \ - -p test-project -i corpus -c corpus -o solution -l INFO -C 1 -P 2096:6.0.70 \ - -e "${SCRIPT_DIR}/rsrc/mini.efi" \ - -f "${SCRIPT_DIR}/rsrc/mini.efi:%simics%/mini.efi" \ - -f "${SCRIPT_DIR}/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - -f "${SCRIPT_DIR}/rsrc/fuzz.simics:%simics%/fuzz.simics" \ - -x 'COMMAND:run-script "%simics%/fuzz.simics"' -N | tee log.txt diff --git a/examples/winintrin/.gitignore b/examples/winintrin/.gitignore deleted file mode 100644 index 9669cc09..00000000 --- a/examples/winintrin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -corpus -solution -test-project -winintrin.* \ No newline at end of file diff --git a/examples/winintrin/rsrc/fuzz.simics b/examples/winintrin/rsrc/fuzz.simics deleted file mode 100644 index 520daaa9..00000000 --- a/examples/winintrin/rsrc/fuzz.simics +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -$disk0_image = (lookup-file "%simics%/minimal_boot_disk.craff") -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -script-branch "UEFI Shell Enter Branch" { - local $kbd = $system.mb.sb.kbd - local $con = $system.console.con - local $sercon = $system.serconsole.con - - bp.time.wait-for seconds = 10 - - $kbd.key-press ESC - bp.time.wait-for seconds = 3 - - foreach $i in (range 2) { - $kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - $con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - # We are now in the UEFI shell, we'll download our EFI app - local $manager = (start-agent-manager) - $con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/winintrin.efi") + "\n") - bp.time.wait-for seconds = .5 - - stop - - @conf.tsffs_module.iface.tsffs_module.init() - @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) - # Page fault - @conf.tsffs_module.iface.tsffs_module.add_fault(14) - # Invalid opcode - @conf.tsffs_module.iface.tsffs_module.add_fault(6) - - $con.input "winintrin.efi\n" -} - -run - diff --git a/examples/winintrin/rsrc/minimal_boot_disk.craff b/examples/winintrin/rsrc/minimal_boot_disk.craff deleted file mode 100644 index 8f121f53..00000000 Binary files a/examples/winintrin/rsrc/minimal_boot_disk.craff and /dev/null differ diff --git a/examples/winintrin/rsrc/winintrin.efi b/examples/winintrin/rsrc/winintrin.efi deleted file mode 100755 index 7e188b1f..00000000 Binary files a/examples/winintrin/rsrc/winintrin.efi and /dev/null differ diff --git a/examples/winintrin/src/.gitignore b/examples/winintrin/src/.gitignore deleted file mode 100644 index 445197ec..00000000 --- a/examples/winintrin/src/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.ninja_log -mini.lib -mini.o -mini.efi diff --git a/examples/winintrin/test.sh b/examples/winintrin/test.sh deleted file mode 100755 index 8ebee102..00000000 --- a/examples/winintrin/test.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) - -pushd "${SCRIPT_DIR}" || exit 1 - -pushd "${SCRIPT_DIR}/src/" || exit 1 - -ninja - -popd || exit 1 - -cargo run --release --features=6.0.169 -- \ - -g -p test-project -i corpus -c corpus -o solution -l TRACE -C 1 -P 2096:6.0.70 -S 8 -E 120 \ - -e "${SCRIPT_DIR}/rsrc/winintrin.efi" \ - -f "${SCRIPT_DIR}/rsrc/winintrin.efi:%simics%/winintrin.efi" \ - -f "${SCRIPT_DIR}/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff" \ - -f "${SCRIPT_DIR}/rsrc/fuzz.simics:%simics%/fuzz.simics" \ - -x 'COMMAND:run-script "%simics%/fuzz.simics"' -N | tee log.txt diff --git a/examples/x509-parse/corpus/0 b/examples/x509-parse/corpus/0 deleted file mode 100644 index ae61ab21..00000000 Binary files a/examples/x509-parse/corpus/0 and /dev/null differ diff --git a/examples/x509-parse/corpus/1 b/examples/x509-parse/corpus/1 deleted file mode 100644 index ec60e782..00000000 Binary files a/examples/x509-parse/corpus/1 and /dev/null differ diff --git a/examples/x509-parse/corpus/2 b/examples/x509-parse/corpus/2 deleted file mode 100644 index 1b4645d2..00000000 Binary files a/examples/x509-parse/corpus/2 and /dev/null differ diff --git a/examples/x509-parse/corpus/3 b/examples/x509-parse/corpus/3 deleted file mode 100644 index 489838aa..00000000 Binary files a/examples/x509-parse/corpus/3 and /dev/null differ diff --git a/examples/x509-parse/corpus/4 b/examples/x509-parse/corpus/4 deleted file mode 100644 index 0781268c..00000000 Binary files a/examples/x509-parse/corpus/4 and /dev/null differ diff --git a/examples/x509-parse/corpus/5 b/examples/x509-parse/corpus/5 deleted file mode 100644 index 4cdb45e3..00000000 Binary files a/examples/x509-parse/corpus/5 and /dev/null differ diff --git a/examples/x509-parse/corpus/6 b/examples/x509-parse/corpus/6 deleted file mode 100644 index 0d8006c0..00000000 Binary files a/examples/x509-parse/corpus/6 and /dev/null differ diff --git a/examples/x509-parse/corpus/7 b/examples/x509-parse/corpus/7 deleted file mode 100644 index bf29dc25..00000000 Binary files a/examples/x509-parse/corpus/7 and /dev/null differ diff --git a/examples/x509-parse/corpus/8 b/examples/x509-parse/corpus/8 deleted file mode 100644 index 1627adc7..00000000 Binary files a/examples/x509-parse/corpus/8 and /dev/null differ diff --git a/examples/x509-parse/rsrc/X509Parse.efi b/examples/x509-parse/rsrc/X509Parse.efi deleted file mode 100644 index 2c56ec20..00000000 Binary files a/examples/x509-parse/rsrc/X509Parse.efi and /dev/null differ diff --git a/examples/x509-parse/rsrc/app.py b/examples/x509-parse/rsrc/app.py deleted file mode 100644 index 048f5ba5..00000000 --- a/examples/x509-parse/rsrc/app.py +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -""" -App startup script for x509-parse example -""" - -# mypy: ignore-errors -# flake8: noqa -# pylint: disable=undefined-variable,import-error - -import commands -import simics -from sim_params import params - -SIM_log_info(1, conf.sim, 0, "Running app.py") - -args = [[name, commands.param_val_to_str(value)] for (name, value) in params.items()] - -SIM_log_info(1, conf.sim, 0, "Running with args" + str(args)) - -SIM_log_info(1, conf.sim, 0, "Running simics script") - -simics.SIM_run_command_file_params( - simics.SIM_lookup_file("%simics%/targets/x509-parse/run-uefi-app.simics"), - True, - args, -) - -SIM_log_info(1, conf.sim, 0, "Ran simics script") - -if SIM_get_batch_mode(): - SIM_log_info(1, conf.sim, 0, "Got batch mode") - SIM_log_info(1, conf.sim, 0, "Batch mode detected. Disconnecting console from VGA") - conf.board.mb.gpu.vga.console = None - -SIM_log_info(1, conf.sim, 0, "Done disconnecting") - - -SIM_load_module("tsffs_module") -SIM_log_info(1, conf.sim, 0, "Loaded module") -try: - SIM_create_object("tsffs_module", "tsffs_module", []) - SIM_log_info(1, conf.sim, 0, "Created object") -except simics.SimExc_General as e: - # SIM_get_object("tsffs_module", "tsffs_module") - SIM_log_info(1, conf.sim, 0, "Module object already exists: " + str(e)) - -conf.tsffs_module.iface.tsffs_module.init() -conf.tsffs_module.iface.tsffs_module.add_processor( - SIM_get_object(simenv.system).mb.cpu0.core[0][0] -) -# triple -conf.tsffs_module.iface.tsffs_module.add_fault(-1) -# divide by 0 -conf.tsffs_module.iface.tsffs_module.add_fault(0) -# overflow -conf.tsffs_module.iface.tsffs_module.add_fault(4) -# invalid opcode -conf.tsffs_module.iface.tsffs_module.add_fault(6) -# double fault -conf.tsffs_module.iface.tsffs_module.add_fault(8) -# segment not present -conf.tsffs_module.iface.tsffs_module.add_fault(11) -# stack segment -conf.tsffs_module.iface.tsffs_module.add_fault(12) -# gpf -conf.tsffs_module.iface.tsffs_module.add_fault(13) -# page -conf.tsffs_module.iface.tsffs_module.add_fault(14) -# FPE -conf.tsffs_module.iface.tsffs_module.add_fault(16) - -SIM_log_info(1, conf.sim, 0, "Added processor") -SIM_log_info(1, conf.sim, 0, "Started module") - -SIM_log_info(1, conf.sim, 0, "Started simulation") diff --git a/examples/x509-parse/rsrc/app.yml b/examples/x509-parse/rsrc/app.yml deleted file mode 100644 index cd0c1ac0..00000000 --- a/examples/x509-parse/rsrc/app.yml +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -%YAML 1.2 ---- -description: QSP with UEFI App (Fuzzing) -params: - apic_freq_mhz: - type: int - default: 133 - cpi: - type: int - default: 1 - cpu_comp_class: - type: str - default: "x86QSP1" - freq_mhz: - type: int - default: 2000 - num_cores: - type: int - default: 1 - num_cores_small: - type: int - default: 0 - num_cpus: - type: int - default: 1 - num_threads: - type: int - default: 1 - num_threads_small: - type: int - default: 0 - hide_consoles: - type: bool - default: FALSE - serial_console_bg_color: - type: str - default: "black" - serial_console_fg_color: - type: str - default: "white" - show_con0: - type: bool - default: TRUE - show_con1: - type: bool - default: FALSE - show_gfx_con: - type: bool - default: TRUE - create_cdrom: - type: str - default: "sata" - create_disk0: - type: str - default: "sata" - disk0_image: - type: file - default: "%simics%/targets/x509-parse/minimal_boot_disk.craff" - disk0_size: - type: int - default: 209715200 - tsc_factor: - type: int - default: 20 - connect_real_network: - type: str - default: "napt" - create_network: - type: bool - default: TRUE - create_service_node: - type: bool - default: TRUE - dhcp_domain_name: - type: str - default: "network.sim" - dhcp_pool_size: - type: int - default: 100 - eth_connector_vlan_id: - type: int - default: -1 - eth_vlan_enable: - type: bool - default: FALSE - ip_address: - type: str - default: "auto" - mac_address: - type: str - default: "auto" - service_node_ip_address: - type: str - default: "10.10.0.1" - service_node_setup: - type: bool - default: TRUE - service_node_vlan_id: - type: int - default: -1 - create_osa: - type: bool - default: TRUE - create_tracker: - type: bool - default: FALSE - enable_break_on_reboot: - type: bool - default: FALSE - enable_system_clock: - type: bool - default: FALSE - real_time_mode: - type: bool - default: FALSE - system_clock_class: - type: str - default: "clock" - system_info: - type: str - default: "QSP x86 with externally provided Kernel/RootFs/InitRd" - auto_start_uefi_shell: - type: bool - default: TRUE - bios_image: - type: file - default: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd" - create_usb_tablet: - type: bool - default: FALSE - machine_name: - type: str - default: "board" - memory_megs: - type: int - default: 8192 - rtc_time: - type: str - default: "2021-06-10 10:41:54" - startup_nsh: - type: file - default: "%simics%/targets/x509-parse/run_uefi_app.nsh" - uefi_app: - type: file - default: "%simics%/targets/x509-parse/X509Parse.efi" - eth_link: - type: str - output: true - service_node: - type: str - output: true - system: - type: str - output: true - -script: "%simics%/scripts/app.py" -... \ No newline at end of file diff --git a/examples/x509-parse/rsrc/minimal_boot_disk.craff b/examples/x509-parse/rsrc/minimal_boot_disk.craff deleted file mode 100644 index 8f121f53..00000000 Binary files a/examples/x509-parse/rsrc/minimal_boot_disk.craff and /dev/null differ diff --git a/examples/x509-parse/rsrc/run-uefi-app.simics b/examples/x509-parse/rsrc/run-uefi-app.simics deleted file mode 100644 index 00bb7c09..00000000 --- a/examples/x509-parse/rsrc/run-uefi-app.simics +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -decl { - - # We import most parameters from the QSP-X86 boot script - params from "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - - group "MSR" - - # Set the TSC factor field for platform info MSR. - param tsc_factor : int = 20 - - group "System" - - # Automatically enter BIOS setup and start UEFI shell using the script - # branch below - param auto_start_uefi_shell : bool = TRUE - - # NSH script that controls things. - param startup_nsh : file("*") or nil = "%simics%/targets/x509-parse/run_uefi_app.nsh" - - # UEFI app you wanna start. - param uefi_app : file("*") - - result system : string - result eth_link : string or nil - result service_node : string or nil -} - -echo "Loaded simics declaration" - -echo "Running command file" - -run-command-file "%simics%/targets/qsp-x86/qsp-hdd-boot.simics" - -@import os -@simenv.startup_nsh_nodir = os.path.basename(simenv.startup_nsh) -echo "Set startup nsh" -@simenv.uefi_app_nodir = os.path.basename(simenv.uefi_app) -echo "Set startup uefi app" - -# The below branch will (when enabled) enter the BIOS menu by pressing ESC -# after 10 seconds, then go to the third entry on the top level (by pressin DOWN twice). -# The assumption is that this is the boot device selection (which is true for the QSP BIOS) -# Then there is one press of UP, to select the last element in the list, which is assumed -# to be the UEFI shell (which again is true for the QSP BIOS). Then the shell is started. - -# note: this is actually needed to boot the uefi image! - -if $auto_start_uefi_shell { - script-branch "UEFI Shell Enter Branch" { - echo "Doing UEFI button combination" - local $kbd = $system.mb.sb.kbd - local $con = $system.console.con - local $sercon = $system.serconsole.con - bp.time.wait-for seconds = 10 - $kbd.key-press ESC - bp.time.wait-for seconds = 3 - foreach $i in (range 2) { - $kbd.key-press KP_DOWN - bp.time.wait-for seconds = .5 - } - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - $kbd.key-press KP_UP - bp.time.wait-for seconds = .5 - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - #stop countdown - $kbd.key-press ENTER - bp.time.wait-for seconds = .5 - - echo "Running command: FS0:\n" - - $con.input "FS0:\n" - bp.time.wait-for seconds = 10 - - echo "Running command: " + "set -v UEFI_APP_ON_HOST \"" + $uefi_app + "\"\n" - $con.input ("set -v UEFI_APP_ON_HOST \" " + $uefi_app + "\"\n") - bp.time.wait-for seconds = .5 - - echo "Running command: " + "set -v UEFI_APP_NODIR \"" + $uefi_app_nodir + "\"\n" - $con.input ("set -v UEFI_APP_NODIR \" " + $uefi_app_nodir + "\"\n") - bp.time.wait-for seconds = .5 - - - local $manager = (start-agent-manager) - - echo "Running command: " + "SimicsAgent.efi --download \"" + (lookup-file $startup_nsh) + "\"\n" - $con.input ("SimicsAgent.efi --download " + (lookup-file $startup_nsh) + "\n") - bp.time.wait-for seconds = .5 - - echo "Running command: " + "\"" + $startup_nsh_nodir + "\"\n" - $con.input ("" + $startup_nsh_nodir + "\n") - - } -} \ No newline at end of file diff --git a/examples/x509-parse/rsrc/run_uefi_app.nsh b/examples/x509-parse/rsrc/run_uefi_app.nsh deleted file mode 100644 index f9939da3..00000000 --- a/examples/x509-parse/rsrc/run_uefi_app.nsh +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -#Get kernel image -SimicsAgent.efi --download %UEFI_APP_ON_HOST% - -%UEFI_APP_NODIR% \ No newline at end of file diff --git a/examples/x509-parse/src/tsffs.h b/examples/x509-parse/src/tsffs.h deleted file mode 100644 index 89a4fdef..00000000 --- a/examples/x509-parse/src/tsffs.h +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#ifndef TSFFS_H -#define TSFFS_H - -#include - -#if (defined(__i386__) || defined(__i586__) || defined(__i686__)) -#define MAGIC 18193 -#endif - -#if defined(__x86_64__) -#define MAGIC 18193 -#endif - -#define MAGIC_START 1 - -#define MAGIC_STOP 2 - -#if (defined(__i386__) || defined(__i586__) || defined(__i686__)) -/** - * X86 32: - * - */ - -#define __cpuid_extended2(level, a, b, c, d, inout_ptr_0, inout_ptr_1) \ - __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ - : "0"(level), "S"(*inout_ptr_0), "D"(*inout_ptr_1) \ - : "memory") - -#define __cpuid_extended1(level, a, b, c, d, inout_ptr_0) \ - __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0) \ - : "0"(level), "S"(*inout_ptr_0) \ - : "memory") - -#define __cpuid(level, a, b, c, d) \ - __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ - : "0"(level) \ - : "memory") - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ - __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(leaf, _a, _b, _c, _d); \ - } while (0) - -#define __arch_harness_stop_extended(val_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ - } while (0) - -void __marker_i386(void); -#endif - -#if defined(__x86_64__) -/** - * X86_64: - * - */ - -#define __cpuid_extended2(level, a, b, c, d, inout_ptr_0, inout_ptr_1) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ - : "0"(level), "S"(*inout_ptr_0), "D"(*inout_ptr_1)) - -#define __cpuid_extended1(level, a, b, c, d, inout_ptr_0) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0) \ - : "0"(level), "S"(*inout_ptr_0)) - -#define __cpuid(level, a, b, c, d) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ - : "0"(level)) - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ - __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(leaf, _a, _b, _c, _d); \ - } while (0) - -#define __arch_harness_stop_extended(val_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ - } while (0) - -void __marker_x86_64(void); -#endif - -/** - * Architecture-independent harness macros: - * - * - */ - -#define HARNESS_START(addr_ptr, size_ptr) \ - do { \ - __arch_harness_start(addr_ptr, size_ptr); \ - } while (0) - -#define HARNESS_STOP() \ - do { \ - __arch_harness_stop(); \ - } while (0) - -#define HARNESS_STOP_EXTENDED(val_ptr) \ - do { \ - __arch_harness_stop_extended(val_ptr); \ - } while (0) - -void __marker(void); - -/** - * Called by SIMICS C stub to initialize the module, this is the entrypoint of - * the entire module - */ -void module_init_local(void); - -#endif /* TSFFS_H */ diff --git a/harness/README.md b/harness/README.md new file mode 100644 index 00000000..12c541a4 --- /dev/null +++ b/harness/README.md @@ -0,0 +1,29 @@ +# Harness Collection for TSFFS + +This directory contains a selection of provided (and tested) harness header files. All +harnesses are tested automatically at project test time for correct passing of the +testcase and size addresses. + +All headers define the following: + +* `MAGIC_START` - The value used by default to signal the fuzzer to start +* `MAGIC_STOP` - The value used by default to signal the fuzzer to stop +* `HARNESS_START(uint8_t **addr_ptr, size_t * size_ptr)` - The macro used to signal the + fuzzer to start fuzzing, writing each testcase to the buffer pointed to by `addr_ptr` + and writing the size of each testcase to `size_ptr`, where `*size_ptr` is initially + equal to the maximum testcase size (i.e. the size of `*addr_ptr`). +* `HARNESS_STOP()` - The macro used to signal the fuzzer to stop the current execution, + restore the snapshot taken at the location of `HARNESS_START`, and start another + execution with a new testcase. + +Some architectures or programming environments require an assembly file in addition to +the provided header file. Notably, MSVC does not support intrinsics when compiling +edk2-based UEFI code, and does not support inline assembly, so assembly files are +necessary. + +| Architecture | Compiler | Programming Environment | Header/Support File(s) | +| ------------ | -------- | ----------------------- | -------------------------------------------------- | +| x86_64 | gcc | Generic (non-edk2) | [tsffs-gcc-x86_64.h](tsffs-gcc-x86_64.h) | +| x86 | gcc | Generic (non-edk2) | [tsffs-gcc-x86.h](tsffs-gcc-x86.h) | +| x86_64 | gcc | edk2 | [tsffs-gcc-x86_64-edk2.h](tsffs-gcc-x86_64-edk2.h) | +| x86 | gcc | edk2 | [tsffs-gcc-x86-edk2.h](tsffs-gcc-x86-edk2.h) | \ No newline at end of file diff --git a/harness/tsffs-gcc-riscv32.h b/harness/tsffs-gcc-riscv32.h new file mode 100644 index 00000000..24243dcc --- /dev/null +++ b/harness/tsffs-gcc-riscv32.h @@ -0,0 +1,42 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +#define __srai_extended(value, testcase_ptr, size_ptr) \ + __asm__ __volatile__("mv a0, %0; mv a1, %1; srai zero, zero, %2" \ + : \ + : "r"(testcase_ptr), "r"(size_ptr), "I"(value) \ + : "a0", "a1"); + +#define __srai(value) \ + __asm__ __volatile__("srai zero, zero, %0" : : "I"(value) :) + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + __srai_extended(start, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + __srai(stop); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/harness/tsffs-gcc-riscv64.h b/harness/tsffs-gcc-riscv64.h new file mode 100644 index 00000000..24243dcc --- /dev/null +++ b/harness/tsffs-gcc-riscv64.h @@ -0,0 +1,42 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +#define __srai_extended(value, testcase_ptr, size_ptr) \ + __asm__ __volatile__("mv a0, %0; mv a1, %1; srai zero, zero, %2" \ + : \ + : "r"(testcase_ptr), "r"(size_ptr), "I"(value) \ + : "a0", "a1"); + +#define __srai(value) \ + __asm__ __volatile__("srai zero, zero, %0" : : "I"(value) :) + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + __srai_extended(start, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + __srai(stop); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/harness/tsffs-gcc-x86.h b/harness/tsffs-gcc-x86.h new file mode 100644 index 00000000..2f799429 --- /dev/null +++ b/harness/tsffs-gcc-x86.h @@ -0,0 +1,52 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC (0x4711U) +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +/// Trigger a CPUID instruction with RSI and RDI set to specific values. +#define __cpuid_extended2(value, inout_ptr_0, inout_ptr_1) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid" \ + : "=a"(_a) \ + : "a"(value), "D"(inout_ptr_0), "S"(inout_ptr_1) \ + : "ebx", "ecx", "edx"); + +/// Trigger a CPUID instruction +#define __cpuid(value) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid\n\t" \ + : "=a"(_a) \ + : "a"(value) \ + : "ebx", "ecx", "edx") + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + unsigned int magic = (start << 0x10U) | MAGIC; \ + __cpuid_extended2(magic, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + unsigned int magic = (stop << 0x10U) | MAGIC; \ + __cpuid(magic); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/harness/tsffs-gcc-x86_64.h b/harness/tsffs-gcc-x86_64.h new file mode 100644 index 00000000..a3c4ba97 --- /dev/null +++ b/harness/tsffs-gcc-x86_64.h @@ -0,0 +1,52 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC (0x4711U) +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +/// Trigger a CPUID instruction with RSI and RDI set to specific values. +#define __cpuid_extended2(value, inout_ptr_0, inout_ptr_1) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid" \ + : "=a"(_a) \ + : "a"(value), "D"(inout_ptr_0), "S"(inout_ptr_1) \ + : "rbx", "rcx", "rdx"); + +/// Trigger a CPUID instruction +#define __cpuid(value) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid\n\t" \ + : "=a"(_a) \ + : "a"(value) \ + : "rbx", "rcx", "rdx") + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + unsigned int magic = (start << 0x10U) | MAGIC; \ + __cpuid_extended2(magic, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + unsigned int magic = (stop << 0x10U) | MAGIC; \ + __cpuid(magic); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/include/Cargo.toml b/include/Cargo.toml deleted file mode 100644 index 83ab2ba5..00000000 --- a/include/Cargo.toml +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "include" -categories.workspace = true -description = "Target software include file generation for TSFFS targets" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - - -[features] -"6.0.163" = ["tsffs_module/6.0.163"] -"6.0.164" = ["tsffs_module/6.0.164"] -"6.0.165" = ["tsffs_module/6.0.165"] -"6.0.166" = ["tsffs_module/6.0.166"] -"6.0.167" = ["tsffs_module/6.0.167"] -"6.0.168" = ["tsffs_module/6.0.168"] -"6.0.169" = ["tsffs_module/6.0.169"] -"6.0.170" = ["tsffs_module/6.0.170"] -"6.0.171" = ["tsffs_module/6.0.171"] -"6.0.172" = ["tsffs_module/6.0.172"] -default = ["win32", "win64", "unix"] -win32 = [] -win64 = [] -unix = [] - - -[dependencies] -tsffs_module.workspace = true -# i386 = [] -# i586 = [] -# i686 = [] -# x86_64 = [] -# powerpc = [] -# powerpc64 = [] -# powerpc64le = [] -# aarch64 = [] -# arm = [] -# armv7 = [] -# "thumbv8m.main" = [] -# "thumbv8m.base" = [] -# "thumbv7m" = [] -# "thumbv7em" = [] -# "thumbv7a" = [] -# mips = [] -# mipsel = [] -# mips64 = [] -# mips64el = [] -# riscv32gc = [] -# riscv32i = [] -# riscv32im = [] -# riscv32imac = [] -# riscv32imc = [] -# riscv64gc = [] -# riscv64imac = [] -# -# default = [ -# "i386", -# "i586", -# "i686", -# "x86_64", -# "powerpc", -# "powerpc64", -# "powerpc64le", -# "aarch64", -# "arm", -# "armv7", -# "thumbv8m.main", -# "thumbv8m.base", -# "thumbv7m", -# "thumbv7em", -# "thumbv7a", -# "mips", -# "mipsel", -# "mips64", -# "mips64el", -# "riscv32gc", -# "riscv32i", -# "riscv32im", -# "riscv32imac", -# "riscv32imc", -# "riscv64gc", -# "riscv64imac", -# ] diff --git a/include/README.md b/include/README.md deleted file mode 100644 index 2d4f216a..00000000 --- a/include/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Include File Definition - -This crate defines the include file for the fuzzer for harnessing C code. The C header -can be generated by running: - -```sh -rustup run nightly cbindgen --config cbindgen.toml --crate include --output tsffs.h -``` - -You need to install a fork of `cbindgen` that supports multiline annotations. You can -install it with: - -```sh -cargo install --git https://github.com/novafacing/cbindgen \ - --branch allow-equals-in-annotations cbindgen -``` \ No newline at end of file diff --git a/include/cbindgen.toml b/include/cbindgen.toml deleted file mode 100644 index 29baa4f1..00000000 --- a/include/cbindgen.toml +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -# This is a template cbindgen.toml file with all of the default values. -# Some values are commented out because their absence is the real default. -# -# See https://github.com/eqrion/cbindgen/blob/master/docs.md#cbindgentoml -# for detailed documentation of every option here. - -language = "C" - -############## Options for Wrapping the Contents of the Header ################# - -# header = "/* Text to put at the beginning of the generated file. Probably a license. */" -# trailer = "/* Text to put at the end of the generated file */" -include_guard = "TSFFS_H" -# pragma_once = true -# autogen_warning = "/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */" -include_version = false -# namespace = "my_namespace" -namespaces = [] -using_namespaces = [] -sys_includes = [] -includes = [] -no_includes = true -after_includes = "// Copyright (C) 2023 Intel Corporaton\n// SPDX-License-Identifier: Apache-2.0\n" - - -############################ Code Style Options ################################ - -braces = "SameLine" -line_length = 88 -tab_width = 4 -documentation = true -documentation_style = "auto" -documentation_length = "full" -line_endings = "LF" # also "CR", "CRLF", "Native" - - -############################# Codegen Options ################################## - -style = "both" -sort_by = "None" # default for `fn.sort_by` and `const.sort_by` -usize_is_size_t = true - -[defines] -# "target_os = freebsd" = "DEFINE_FREEBSD" -# "feature = serde" = "DEFINE_SERDE" -"target_arch = i386" = "__i386__" -"target_arch = i586" = "__i586__" -"target_arch = i686" = "__i686__" -"target_arch = x86_64" = "__x86_64__" -"target_arch = powerpc" = "__powerpc__" -"target_arch = powerpc64" = "__powerpc64__" -"target_arch = powerpc64le" = "__powerpc64__" -"target_arch = aarch64" = "__aarch64__" -"target_arch = arm" = "__arm__" -"target_arch = armv7" = "__arm__" -"feature = win32" = "_WIN32" -"feature = win64" = "_WIN64" -"feature = unix" = "__unix__" - - -[export] -include = [] -exclude = [] -# prefix = "CAPI_" -item_types = [] -renaming_overrides_prefixing = false - - -[export.rename] - - -[export.body] - - -[export.mangle] - - -[fn] -rename_args = "None" -# must_use = "MUST_USE_FUNC" -# no_return = "NO_RETURN" -# prefix = "START_FUNC" -# postfix = "END_FUNC" -args = "auto" -sort_by = "None" - - -[struct] -rename_fields = "None" -# must_use = "MUST_USE_STRUCT" -derive_constructor = false -derive_eq = false -derive_neq = false -derive_lt = false -derive_lte = false -derive_gt = false -derive_gte = false - - -[enum] -rename_variants = "None" -# must_use = "MUST_USE_ENUM" -add_sentinel = false -prefix_with_name = false -derive_helper_methods = false -derive_const_casts = false -derive_mut_casts = false -# cast_assert_name = "ASSERT" -derive_tagged_enum_destructor = false -derive_tagged_enum_copy_constructor = false -enum_class = true -private_default_tagged_enum_constructor = false - - -[const] -allow_static_const = true -allow_constexpr = true -sort_by = "None" - -[macro_expansion] -bitflags = false - - -############## Options for How Your Rust library Should Be Parsed ############## - -[parse] -parse_deps = true -include = ["tsffs_module"] -exclude = [] -clean = false -extra_bindings = ["tsffs_module"] - - -[parse.expand] -crates = ["include"] -all_features = false -default_features = true -features = ["6.0.169"] diff --git a/include/src/lib.rs b/include/src/lib.rs deleted file mode 100644 index 766e5d7f..00000000 --- a/include/src/lib.rs +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![deny(clippy::unwrap_used)] -#![allow(unused)] - -use tsffs_module::magic::{MAGIC_START, MAGIC_START_WININTRIN, MAGIC_STOP}; - -#[no_mangle] -#[doc = concat!(r#"cbindgen:prefix=#define TSFFS_INCLUDE_VERSION ""#, env!("CARGO_PKG_VERSION"), r#"""#, "\\")] -#[doc = ""] -pub extern "C" fn __version_marker() {} - -#[no_mangle] -#[doc = concat!(r#"cbindgen:prefix=#define TSFFS_INCLUDE_VERSION_MAJOR ""#, env!("CARGO_PKG_VERSION_MAJOR"), r#"""#, "\\")] -#[doc = ""] -pub extern "C" fn __version_marker_major() {} - -#[no_mangle] -#[doc = concat!(r#"cbindgen:prefix=#define TSFFS_INCLUDE_VERSION_MINOR ""#, env!("CARGO_PKG_VERSION_MINOR"), r#"""#, "\\")] -#[doc = ""] -pub extern "C" fn __version_marker_minor() {} - -#[no_mangle] -#[doc = concat!(r#"cbindgen:prefix=#define TSFFS_INCLUDE_VERSION_PATCH ""#, env!("CARGO_PKG_VERSION_PATCH"), r#"""#, "\\")] -#[doc = ""] -pub extern "C" fn __version_marker_patch() {} - -#[cfg(any( - target_arch = "i386", - target_arch = "i586", - target_arch = "i686", - all(feature = "win32", not(feature = "win64")) -))] -/// Architecture-independent i386 (x86) definitions. -pub mod i386 { - pub const MAGIC: u16 = 0x4711; - - use tsffs_module::magic::{MAGIC_START, MAGIC_STOP}; - - pub fn harness_start(buffer: &mut *mut u8, size: &mut u32) { - let magic: u32 = (MAGIC_START as u32) << 16 | MAGIC as u32; - unsafe { - asm! ( - "cpuid", - inout("rsi") *buffer, - inout("rdi") *size, - in("rax") magic, - ); - } - } - - pub fn harness_stop_extended(value: u32) { - let magic: u32 = (MAGIC_STOP as u32) << 16 | MAGIC as u32; - unsafe { - asm! ( - "cpuid", - in("rsi") value, - in("rax") magic, - ); - } - } - - pub fn harness_stop() { - let magic: u32 = (MAGIC_STOP as u32) << 16 | MAGIC as u32; - unsafe { - asm! ( - "cpuid", - in("rax") magic, - ); - } - } -} - -#[cfg(all( - any(target_arch = "i386", target_arch = "i586", target_arch = "i686"), - feature = "unix" -))] -pub mod i386_unix { - #[no_mangle] - /// cbindgen:prefix= \ - /// #include \ - /// #define __cpuid_extended2(leaf, a, b, c, d, inout_ptr_0, inout_ptr_1) \ \ - /// __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ \ - /// : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ \ - /// "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ \ - /// : "0"(leaf), "S"(*inout_ptr_0), "D"(*inout_ptr_1) \ \ - /// : "memory") \ - /// \ - /// #define __cpuid_extended1(leaf, a, b, c, d, inout_ptr_0) \ \ - /// __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ \ - /// : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ \ - /// "=S"(*inout_ptr_0) \ \ - /// : "0"(leaf), "S"(*inout_ptr_0) \ \ - /// : "memory") \ - /// \ - /// #define __cpuid(leaf, a, b, c, d) \ \ - /// __asm__ __volatile__("push %%ebx; cpuid; pop %%ebx\n\t" \ \ - /// : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ \ - /// : "0"(leaf) \ \ - /// : "memory") \ - /// \ - /// #define __arch_harness_start(addr_ptr, size_ptr) \ \ - /// do { \ \ - /// uint32_t _a __attribute__((unused)) = 0; \ \ - /// uint32_t _b __attribute__((unused)) = 0; \ \ - /// uint32_t _c __attribute__((unused)) = 0; \ \ - /// uint32_t _d __attribute__((unused)) = 0; \ \ - /// uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ \ - /// __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ \ - /// } while (0) \ - /// \ - /// #define __arch_harness_stop() \ \ - /// do { \ \ - /// uint32_t _a __attribute__((unused)) = 0; \ \ - /// uint32_t _b __attribute__((unused)) = 0; \ \ - /// uint32_t _c __attribute__((unused)) = 0; \ \ - /// uint32_t _d __attribute__((unused)) = 0; \ \ - /// uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ \ - /// __cpuid(leaf, _a, _b, _c, _d); \ \ - /// } while (0) \ - /// \ - /// #define __arch_harness_stop_extended(val_ptr) \ \ - /// do { \ \ - /// uint32_t _a __attribute__((unused)) = 0; \ \ - /// uint32_t _b __attribute__((unused)) = 0; \ \ - /// uint32_t _c __attribute__((unused)) = 0; \ \ - /// uint32_t _d __attribute__((unused)) = 0; \ \ - /// uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ \ - /// __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ \ - /// } while (0) \ - /// - pub extern "C" fn __marker_i386_unix() {} -} - -#[cfg(all(feature = "win32", not(feature = "win64")))] -pub mod i386_windows { - #[no_mangle] - pub extern "C" fn __marker_i386_windows() {} -} - -#[cfg(any(target_arch = "x86_64", feature = "win64"))] -pub mod x86_64 { - pub const MAGIC: u16 = 0x4711; - - use std::arch::asm; - - use tsffs_module::magic::{MAGIC_START, MAGIC_STOP}; - - pub fn harness_start(buffer: &mut *mut u8, size: &mut u64) { - let magic: u64 = (MAGIC_START as u64) << 16 | MAGIC as u64; - unsafe { - asm! ( - "cpuid", - inout("rsi") *buffer, - inout("rdi") *size, - in("rax") magic, - ); - } - } - - pub fn harness_stop_extended(value: u64) { - let magic: u64 = (MAGIC_STOP as u64) << 16 | MAGIC as u64; - unsafe { - asm! ( - "cpuid", - in("rsi") value, - in("rax") magic, - ); - } - } - - pub fn harness_stop() { - let magic: u64 = (MAGIC_STOP as u64) << 16 | MAGIC as u64; - unsafe { - asm! ( - "cpuid", - in("rax") magic, - ); - } - } -} - -#[cfg(all(target_arch = "x86_64", feature = "unix"))] -pub mod x86_64_unix { - #[no_mangle] - /// cbindgen:prefix= \ - /// #include \ - /// #define __cpuid_extended2(leaf, a, b, c, d, inout_ptr_0, inout_ptr_1) \ \ - /// __asm__ __volatile__("cpuid\n\t" \ \ - /// : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ \ - /// "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ \ - /// : "0"(leaf), "S"(*inout_ptr_0), "D"(*inout_ptr_1)) \ - /// \ - /// #define __cpuid_extended1(leaf, a, b, c, d, inout_ptr_0) \ \ - /// __asm__ __volatile__("cpuid\n\t" \ \ - /// : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ \ - /// "=S"(*inout_ptr_0) \ \ - /// : "0"(leaf), "S"(*inout_ptr_0)) \ - /// \ - /// #define __cpuid(leaf, a, b, c, d) \ \ - /// __asm__ __volatile__("cpuid\n\t" \ \ - /// : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ \ - /// : "0"(leaf)) \ - /// \ - /// #define __arch_harness_start(addr_ptr, size_ptr) \ \ - /// do { \ \ - /// uint32_t _a __attribute__((unused)) = 0; \ \ - /// uint32_t _b __attribute__((unused)) = 0; \ \ - /// uint32_t _c __attribute__((unused)) = 0; \ \ - /// uint32_t _d __attribute__((unused)) = 0; \ \ - /// uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ \ - /// __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ \ - /// } while (0) \ - /// \ - /// #define __arch_harness_stop() \ \ - /// do { \ \ - /// uint32_t _a __attribute__((unused)) = 0; \ \ - /// uint32_t _b __attribute__((unused)) = 0; \ \ - /// uint32_t _c __attribute__((unused)) = 0; \ \ - /// uint32_t _d __attribute__((unused)) = 0; \ \ - /// uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ \ - /// __cpuid(leaf, _a, _b, _c, _d); \ \ - /// } while (0) \ - /// \ - /// #define __arch_harness_stop_extended(val_ptr) \ \ - /// do { \ \ - /// uint32_t _a __attribute__((unused)) = 0; \ \ - /// uint32_t _b __attribute__((unused)) = 0; \ \ - /// uint32_t _c __attribute__((unused)) = 0; \ \ - /// uint32_t _d __attribute__((unused)) = 0; \ \ - /// uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ \ - /// __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ \ - /// } while (0) \ - /// - pub extern "C" fn __marker_x86_64_unix() {} -} - -#[cfg(feature = "win64")] -pub mod x86_64_windows { - #[no_mangle] - /// cbindgen:prefix= \ - /// #define __arch_harness_start(addr_ptr, size_ptr) \ \ - /// do { \ \ - /// int cpuInfo[4] = {0}; \ \ - /// int function_id_start = (MAGIC_START_WININTRIN << 16U) | MAGIC; \ \ - /// int subfunction_id_addr_low = (int)(((long long)*addr_ptr) & 0xffffffff); \ \ - /// int subfunction_id_addr_hi = (int)(((long long)*addr_ptr) >> 32U); \ \ - /// int subfunction_id_size_low = (int)(((long long)*size_ptr) & 0xffffffff); \ \ - /// int subfunction_id_size_hi = (int)(((long long)*size_ptr) >> 32U); \ \ - /// __cpuidex(cpuInfo, function_id_start, subfunction_id_addr_low); \ \ - /// __cpuidex(cpuInfo, function_id_start, subfunction_id_addr_hi); \ \ - /// __cpuidex(cpuInfo, function_id_start, subfunction_id_size_low); \ \ - /// __cpuidex(cpuInfo, function_id_start, subfunction_id_size_hi); \ \ - /// *(long long *)addr_ptr = 0; \ \ - /// *(long long *)addr_ptr |= (long long)cpuInfo[0]; \ \ - /// *(long long *)addr_ptr |= ((long long)cpuInfo[1]) << 32U; \ \ - /// *(long long *)size_ptr = 0; \ \ - /// *(long long *)size_ptr |= (long long)cpuInfo[2]; \ \ - /// *(long long *)size_ptr |= ((long long)cpuInfo[3]) << 32U; \ \ - /// } while (0) \ - /// \ - /// #define __arch_harness_stop() \ \ - /// do { \ \ - /// int cpuInfo[4] = {0}; \ \ - /// int function_id_stop = (MAGIC_STOP << 16U) | MAGIC; \ \ - /// __cpuid(cpuInfo, function_id_stop); \ \ - /// } while (0) \ - /// \ - /// #define __arch_harness_stop_extended(val_ptr) \ \ - /// __arch_harness_stop() \ - /// - pub extern "C" fn __marker_x86_64_windows() {} -} -#[cfg(target_arch = "powerpc")] -pub mod powerpc {} - -#[cfg(any(target_arch = "powerpc64", target_arch = "powerpc64le"))] -pub mod powerpc64 {} - -#[cfg(target_arch = "aarch64")] -pub mod aarch64 {} - -#[cfg(any(target_arch = "arm", target_arch = "armv7"))] -pub mod arm {} - -#[cfg(any( - target_arch = "thumbv8m.main", - target_arch = "thumbv8m.base", - target_arch = "thumbv7neon", - target_arch = "thumbv7m", - target_arch = "thumbv7em", - target_arch = "thumbv7a", -))] -pub mod thumb {} - -#[cfg(any( - target_arch = "mips", - target_arch = "mipsel", - target_arch = "mips64", - target_arch = "mips64el", -))] -pub mod mips {} - -#[cfg(any( - target_arch = "riscv32gc", - target_arch = "riscv32i", - target_arch = "riscv32im", - target_arch = "riscv32imac", - target_arch = "riscv32imc", - target_arch = "riscv64gc", - target_arch = "riscv64imac", -))] -pub mod riscv {} - -pub mod harness { - #[no_mangle] - /// cbindgen:prefix= \ - /// #define HARNESS_START(addr_ptr, size_ptr) \ \ - /// do { \ \ - /// __arch_harness_start(addr_ptr, size_ptr); \ \ - /// } while (0) \ - /// \ - /// #define HARNESS_STOP() \ \ - /// do { \ \ - /// __arch_harness_stop(); \ \ - /// } while (0) \ - /// \ - /// #define HARNESS_STOP_EXTENDED(val_ptr) \ \ - /// do { \ \ - /// __arch_harness_stop_extended(val_ptr); \ \ - /// } while (0) \ - /// - pub extern "C" fn __marker() {} -} diff --git a/include/tsffs.h b/include/tsffs.h deleted file mode 100644 index e496d969..00000000 --- a/include/tsffs.h +++ /dev/null @@ -1,192 +0,0 @@ -#ifndef TSFFS_H -#define TSFFS_H - -// Copyright (C) 2023 Intel Corporaton -// SPDX-License-Identifier: Apache-2.0 - -#if (defined(__x86_64__) || defined(_WIN64)) -#define MAGIC 18193 -#endif - -/** - * MAGIC_START, when passed as the value of `n` in a [Magic - * Instruction](https://simics-download.pdx.intel.com/simics-6/docs/html/simics-user-guide/breakpoints.html#Magic-Breakpoints) - * indicates that the register `ARG0` and `ARG1` (as defined per platform) are - * set to the buffer pointer and a pointer to the buffer size, respectively. - */ -#define MAGIC_START 1 - -/** - * MAGIC_STOP, when passed as the value of `n` in a [Magic - * Instruction](https://simics-download.pdx.intel.com/simics-6/docs/html/simics-user-guide/breakpoints.html#Magic-Breakpoints) - * indicates that execution should stop, and the root fuzzing snapshot should be - * restored - */ -#define MAGIC_STOP 2 - -/** - * MAGIC_START_WININTRIN, when passed as the value of `n` in a magic - * instruction, indicates a magic start sequence that is supported by X64 - * windows intrinsic `__cpuidex`. This signals the start of the following - * sequence of cpuid (as this is only supported on X64) instructions: - * - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=(BUFFER_PTR & - * 0xffffffff) - * - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=((BUFFER_PTR >> 32U) - * & 0xffffffff) - * - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=(SIZE & 0xffffffff) - * - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=((SIZE >> 32U) & - * 0xffffffff) - * - * The first three `__cpuid` calls output no value into the `cpuInfo` buffer. - * The fourth sets `cpuInfo` to: - * - * ```c - * { - * BUFFER_PTR & 0xffffffff, - * (BUFFER_PTR >> 32U) & 0xffffffff, - * SIZE & 0xffffffff, - * (SIZE >> 32U) & 0xffffffff, - * } - * ``` - */ -#define MAGIC_START_WININTRIN 3 - -/** - * - */ -#define TSFFS_INCLUDE_VERSION "0.1.0" -void __version_marker(void); - -/** - * - */ -#define TSFFS_INCLUDE_VERSION_MAJOR "0" -void __version_marker_major(void); - -/** - * - */ -#define TSFFS_INCLUDE_VERSION_MINOR "1" -void __version_marker_minor(void); - -/** - * - */ -#define TSFFS_INCLUDE_VERSION_PATCH "0" -void __version_marker_patch(void); - -#if (defined(__x86_64__) && defined(__unix__)) -/** - * - */ - -#include -#define __cpuid_extended2(leaf, a, b, c, d, inout_ptr_0, inout_ptr_1) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0), "=D"(*inout_ptr_1) \ - : "0"(leaf), "S"(*inout_ptr_0), "D"(*inout_ptr_1)) - -#define __cpuid_extended1(leaf, a, b, c, d, inout_ptr_0) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d), \ - "=S"(*inout_ptr_0) \ - : "0"(leaf), "S"(*inout_ptr_0)) - -#define __cpuid(leaf, a, b, c, d) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ - : "0"(leaf)) - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_START << 16U) | MAGIC; \ - __cpuid_extended2(leaf, _a, _b, _c, _d, addr_ptr, size_ptr); \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(leaf, _a, _b, _c, _d); \ - } while (0) - -#define __arch_harness_stop_extended(val_ptr) \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid_extended1(leaf, _a, _b, _c, _d, val_ptr); \ - } while (0) - -void __marker_x86_64_unix(void); -#endif - -#if defined(_WIN64) -/** - * - */ - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - int cpuInfo[4] = {0}; \ - int function_id_start = (MAGIC_START_WININTRIN << 16U) | MAGIC; \ - int subfunction_id_addr_low = (int)(((long long)*addr_ptr) & 0xffffffff); \ - int subfunction_id_addr_hi = (int)(((long long)*addr_ptr) >> 32U); \ - int subfunction_id_size_low = (int)(((long long)*size_ptr) & 0xffffffff); \ - int subfunction_id_size_hi = (int)(((long long)*size_ptr) >> 32U); \ - __cpuidex(cpuInfo, function_id_start, subfunction_id_addr_low); \ - __cpuidex(cpuInfo, function_id_start, subfunction_id_addr_hi); \ - __cpuidex(cpuInfo, function_id_start, subfunction_id_size_low); \ - __cpuidex(cpuInfo, function_id_start, subfunction_id_size_hi); \ - *(long long *)addr_ptr = 0; \ - *(long long *)addr_ptr |= (long long)cpuInfo[0]; \ - *(long long *)addr_ptr |= ((long long)cpuInfo[1]) << 32U; \ - *(long long *)size_ptr = 0; \ - *(long long *)size_ptr |= (long long)cpuInfo[2]; \ - *(long long *)size_ptr |= ((long long)cpuInfo[3]) << 32U; \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - int cpuInfo[4] = {0}; \ - int function_id_stop = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(cpuInfo, function_id_stop); \ - } while (0) - -#define __arch_harness_stop_extended(val_ptr) __arch_harness_stop() - -void __marker_x86_64_windows(void); -#endif - -/** - * - */ - -#define HARNESS_START(addr_ptr, size_ptr) \ - do { \ - __arch_harness_start(addr_ptr, size_ptr); \ - } while (0) - -#define HARNESS_STOP() \ - do { \ - __arch_harness_stop(); \ - } while (0) - -#define HARNESS_STOP_EXTENDED(val_ptr) \ - do { \ - __arch_harness_stop_extended(val_ptr); \ - } while (0) - -void __marker(void); - -#endif /* TSFFS_H */ diff --git a/modules/.gitignore b/modules/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/modules/tsffs-interface/Makefile b/modules/tsffs-interface/Makefile new file mode 100644 index 00000000..71923ae4 --- /dev/null +++ b/modules/tsffs-interface/Makefile @@ -0,0 +1,8 @@ +IFACE_FILES = tsffs-interface.h +THREAD_SAFE = yes + +ifeq ($(MODULE_MAKEFILE),) +$(error Make sure you compile your module from the project directory) +else +include $(MODULE_MAKEFILE) +endif diff --git a/modules/tsffs-interface/tsffs-interface.dml b/modules/tsffs-interface/tsffs-interface.dml new file mode 100644 index 00000000..249f2205 --- /dev/null +++ b/modules/tsffs-interface/tsffs-interface.dml @@ -0,0 +1,42 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +dml 1.4; + +header %{ +#include "tsffs-interface.h" +%} + +extern typedef struct { + void (*set_start_on_harness)(conf_object_t * obj, bool start_on_harness); + void (*set_start_magic_number)(conf_object_t * obj, int64 magic_number); + void (*set_stop_on_harness)(conf_object_t * obj, bool stop_on_harness); + void (*set_stop_magic_number)(conf_object_t * obj, int64 magic_number); + void (*start)(conf_object_t * obj, conf_object_t * cpu, generic_address_t testcase_address, generic_address_t size_address); + void (*start_with_maximum_size)(conf_object_t * obj, conf_object_t * cpu, generic_address_t testcase_address, uint32 maximum_size); + attr_value_t (*start_without_buffer)(conf_object_t * obj, conf_object_t * cpu); + void (*stop)(conf_object_t * obj); + void (*solution)(conf_object_t * obj, uint64 id, char * message); + void (*set_use_snapshots)(conf_object_t * obj, bool use_snapshots); + void (*set_timeout)(conf_object_t * obj, double timeout); + void (*add_exception_solution)(conf_object_t * obj, int64 exception); + void (*remove_exception_solution)(conf_object_t * obj, int64 exception); + void (*set_all_exceptions_are_solutions)(conf_object_t * obj, bool all_exceptions_are_solutions); + void (*add_breakpoint_solution)(conf_object_t * obj, breakpoint_id_t breakpoint); + void (*remove_breakpoint_solution)(conf_object_t * obj, breakpoint_id_t breakpoint); + void (*set_all_breakpoints_are_solutions)(conf_object_t * obj, bool all_breakpoints_are_solutions); + void (*set_cmplog_enabled)(conf_object_t * obj, bool enabled); + void (*set_corpus_directory)(conf_object_t * obj, char * corpus_directory); + void (*set_solutions_directory)(conf_object_t * obj, char * solutions_directory); + void (*set_generate_random_corpus)(conf_object_t * obj, bool generate_random_corpus); + void (*set_iterations)(conf_object_t * obj, size_t iterations); + attr_value_t (*get_configuration)(conf_object_t * obj); + void (*tokenize_executable)(conf_object_t * obj, char * executable_file); + void (*tokenize_src)(conf_object_t * obj, char * source_file); + void (*add_token_file)(conf_object_t * obj, char * token_file); + void (*add_trace_processor)(conf_object_t * obj, conf_object_t * cpu); + void (*add_architecture_hint)(conf_object_t * obj, conf_object_t * cpu, char * hint); + void (*repro)(conf_object_t * obj, char * testcase_file); +} tsffs_interface_t; + +extern const char *const TSFFS_INTERFACE; diff --git a/modules/tsffs-interface/tsffs-interface.h b/modules/tsffs-interface/tsffs-interface.h new file mode 100644 index 00000000..39fc5cbd --- /dev/null +++ b/modules/tsffs-interface/tsffs-interface.h @@ -0,0 +1,53 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#ifndef TSFFS_INTERFACE_H +#define TSFFS_INTERFACE_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +SIM_INTERFACE(tsffs) { + void (*set_start_on_harness)(conf_object_t * obj, bool start_on_harness); + void (*set_start_magic_number)(conf_object_t * obj, int64 magic_number); + void (*set_stop_on_harness)(conf_object_t * obj, bool stop_on_harness); + void (*set_stop_magic_number)(conf_object_t * obj, int64 magic_number); + void (*start)(conf_object_t * obj, conf_object_t * cpu, generic_address_t testcase_address, generic_address_t size_address); + void (*start_with_maximum_size)(conf_object_t * obj, conf_object_t * cpu, generic_address_t testcase_address, uint32 maximum_size); + attr_value_t (*start_without_buffer)(conf_object_t * obj, conf_object_t * cpu); + void (*stop)(conf_object_t * obj); + void (*solution)(conf_object_t * obj, uint64 id, char * message); + void (*set_use_snapshots)(conf_object_t * obj, bool use_snapshots); + void (*set_timeout)(conf_object_t * obj, double timeout); + void (*add_exception_solution)(conf_object_t * obj, int64 exception); + void (*remove_exception_solution)(conf_object_t * obj, int64 exception); + void (*set_all_exceptions_are_solutions)(conf_object_t * obj, bool all_exceptions_are_solutions); + void (*add_breakpoint_solution)(conf_object_t * obj, breakpoint_id_t breakpoint); + void (*remove_breakpoint_solution)(conf_object_t * obj, breakpoint_id_t breakpoint); + void (*set_all_breakpoints_are_solutions)(conf_object_t * obj, bool all_breakpoints_are_solutions); + void (*set_cmplog_enabled)(conf_object_t * obj, bool enabled); + void (*set_corpus_directory)(conf_object_t * obj, char * corpus_directory); + void (*set_solutions_directory)(conf_object_t * obj, char * solutions_directory); + void (*set_generate_random_corpus)(conf_object_t * obj, bool generate_random_corpus); + void (*set_iterations)(conf_object_t * obj, size_t iterations); + attr_value_t (*get_configuration)(conf_object_t * obj); + void (*tokenize_executable)(conf_object_t * obj, char * executable_file); + void (*tokenize_src)(conf_object_t * obj, char * source_file); + void (*add_token_file)(conf_object_t * obj, char * token_file); + void (*add_trace_processor)(conf_object_t * obj, conf_object_t * cpu); + void (*add_architecture_hint)(conf_object_t * obj, conf_object_t * cpu, char * hint); + void (*repro)(conf_object_t * obj, char * testcase_file); +}; + +#define TSFFS_INTERFACE "tsffs" + +#ifdef __cplusplus +} +#endif + +#endif // TSFFS_INTERFACE_H + diff --git a/modules/tsffs/Makefile b/modules/tsffs/Makefile new file mode 100644 index 00000000..795b1012 --- /dev/null +++ b/modules/tsffs/Makefile @@ -0,0 +1,25 @@ +# We are creating a module which registers the class `tsffs` +MODULE_CLASSES = tsffs +# The module is thread safe +THREAD_SAFE = yes +# This is passed as a dependency to the final shared object in Make, so this dependency is +# triggered to invoke cargo +EXTRA_OBJ_FILES = $(TARGET_DIR)/../obj/release/lib$(TARGET).a + +ifeq ($(MODULE_MAKEFILE),) +$(error Make sure you compile your module from the project directory) +else +include $(MODULE_MAKEFILE) +endif + +# Cargo generates a .d file as well as the library for us +$(TARGET_DIR)/../obj/release/lib$(TARGET).a $(TARGET_DIR)/../obj/release/lib$(TARGET).d: + $(info CARGO $@) + cargo rustc -r --manifest-path $(SRC_BASE)/tsffs/src/tsffs/Cargo.toml --target-dir $(TARGET_DIR)/../obj/ -- -C link-args="-Wl,--disable-new-dtags -Wl,-rpath,$(SIMICS_BASE)/$(HOST_TYPE)/bin:$(dir $(PYTHON3_LDFLAGS))" + +# We include the .d file that cargo generates, which includes lib$(TARGET).a: [the list of dependencies] +include $(TARGET_DIR)/../obj/release/lib$(TARGET).d + +# Set the user-init-local flag to make module_id.c invoke init_local instead of providing an +# empty one +_INIT_LOCAL_FLAG = --user-init-local \ No newline at end of file diff --git a/modules/tsffs/src/simics/ispm-wrapper/Cargo.toml b/modules/tsffs/src/simics/ispm-wrapper/Cargo.toml new file mode 100644 index 00000000..83fca07f --- /dev/null +++ b/modules/tsffs/src/simics/ispm-wrapper/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "ispm-wrapper" +authors.workspace = true +categories.workspace = true +description.workspace = true +edition.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +publish.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = { workspace = true } +command-ext = { workspace = true } +serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true } +version-tools = { workspace = true } + +getters.workspace = true +typed-builder = "0.18.0" diff --git a/modules/tsffs/src/simics/ispm-wrapper/src/data/mod.rs b/modules/tsffs/src/simics/ispm-wrapper/src/data/mod.rs new file mode 100644 index 00000000..f6e9383c --- /dev/null +++ b/modules/tsffs/src/simics/ispm-wrapper/src/data/mod.rs @@ -0,0 +1,274 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Data deserializable from ISPM commands and configurations + +use anyhow::Result; +use getters::Getters; +use serde::Deserialize; +use serde_json::from_slice; +use std::{fmt::Display, fs::read, path::PathBuf}; +use typed_builder::TypedBuilder; +use version_tools::{version_constraint_from_string, VersionConstraint}; + +use crate::Internal; + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +/// A path object that is optionally an internet URI or local filesystem path +pub struct IPathObject { + id: isize, + priority: isize, + #[builder(setter(into))] + value: String, + enabled: bool, + #[serde(rename = "isWritable")] + #[builder(default, setter(strip_option))] + writable: Option, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +/// A path to a SIMICS repo. This is an artifactory repository. +pub struct RepoPath { + #[builder(setter(into))] + value: String, + enabled: bool, + priority: isize, + id: isize, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +#[builder(field_defaults(setter(into)))] +/// An electron rectangle definition +pub struct Rectangle { + x: isize, + y: isize, + width: isize, + height: isize, +} + +#[derive(Deserialize, Clone, Debug, PartialEq, Eq)] +#[serde(rename_all = "lowercase")] +/// Proxy settings +pub enum ProxySettingTypes { + None, + Env, + Manual, +} + +#[derive(Deserialize, Clone, Debug, PartialEq, Eq)] +/// Preference for which method should be used to install packages +pub enum InstallationPreference { + RepoOrder, + LegacyStyle, + NewStyle, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +#[builder(field_defaults(default, setter(strip_option)))] +/// V3 ISPM configuration, all fields are optional so older configs that we support should also work +/// without an issue +pub struct Settings { + #[builder(setter(into))] + /// Package repositories that ISPM can install from. Managed by the `ispm config + /// package-repos` command. + archives: Option>, + #[serde(rename = "cacheTimeout")] + cache_timeout: Option, + #[serde(rename = "installPath")] + /// Installation path. Managed by the `ispm config install-dir` command. + install_path: Option, + #[serde(rename = "readOnlyInstallationPaths")] + #[builder(setter(into))] + /// Installation paths that are set as read-only. Managed by the `ispm config + /// ro-install-paths` command. + read_only_installation_paths: Option>, + #[serde(rename = "cfgVersion")] + cfg_version: Option, + #[serde(rename = "guiBounds")] + gui_bounds: Option, + #[serde(rename = "guiMaximized")] + gui_maximized: Option, + #[serde(rename = "powershellPath")] + powershell_path: Option, + #[serde(rename = "tempDirectory")] + /// The temporary directory used by ISPM. Managed by the `ispm config temp-dir` command. + temp_directory: Option, + #[serde(rename = "multiUser")] + multi_user: Option, + #[serde(rename = "projectsDefault")] + #[builder(setter(into))] + projects_default: Option, + #[serde(rename = "enableRemoteManifests")] + enable_remote_manifests: Option, + #[serde(rename = "manifestRepos")] + #[builder(setter(into))] + /// Platform repositories that ISPM can install from. Managed by the `ispm config + /// platform-repos` command. + manifest_repos: Option>, + #[serde(rename = "projects")] + #[builder(setter(into))] + projects: Option>, + #[serde(rename = "manifests")] + #[builder(setter(into))] + manifests: Option>, + #[serde(rename = "keyStore")] + #[builder(setter(into))] + /// Files that store decryption keys for legacy package installation. Managed by the + /// `ispm config decryption-key-files` command. + key_store: Option>, + #[serde(rename = "ignoreLegacyPlatformRepoDeprecation")] + ignore_legacy_platform_repo_deprecation: Option, + #[serde(rename = "proxySettingsToUse")] + /// Proxy settings that should be used. Managed by the `ispm config proxy + /// (--dont-use|--use-env)` command and flags. + proxy_settings_to_use: Option, + #[serde(rename = "httpsProxy")] + #[builder(setter(into))] + /// Proxy settings that should be used for HTTPS. Managed by the `ispm config proxy + /// --https` command and flags. + https_proxy: Option, + #[serde(rename = "httpProxy")] + #[builder(setter(into))] + /// Proxy settings that should be used for HTTPS. Managed by the `ispm config proxy` + /// command. + http_proxy: Option, + #[serde(rename = "noProxy")] + #[builder(setter(into))] + /// URL/IP list (comma-delimited) of resources that should not use a proxy for access. + no_proxy: Option, + #[serde(rename = "AuthenticationConfig")] + #[builder(setter(into))] + /// The path to the SIMICS authentication file. Not used for public release. Managed by the + /// `ispm config auth-file` command. + authentication_config: Option, + #[serde(rename = "logfile")] + #[builder(setter(into))] + logfile: Option, + #[serde(rename = "preferPackageType")] + prefer_package_type: Option, +} + +impl Settings { + /// Get the current settings from the currently set configuration file + pub fn get() -> Result { + Ok(from_slice(&read(Internal::cfg_file_path()?)?)?) + } +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +/// A package that is already installed +pub struct InstalledPackage { + #[serde(rename = "pkgNumber")] + /// The package number + package_number: isize, + #[serde(deserialize_with = "version_constraint_from_string")] + /// The package version + version: VersionConstraint, + #[builder(setter(into))] + /// The package name + name: String, + #[builder(default, setter(into))] + /// Paths to this installed package + paths: Vec, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +/// A package that can be installed +pub struct AvailablePackage { + #[serde(rename = "pkgNumber")] + /// The package number + package_number: isize, + #[serde(deserialize_with = "version_constraint_from_string")] + /// The package version + version: VersionConstraint, + #[builder(setter(into))] + /// The package name + name: String, + /// Whether this package is installed + installed: bool, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +#[builder(field_defaults(default, setter(strip_option, into)))] +/// Set of installed and available packages +pub struct Packages { + #[serde(rename = "installedPackages")] + /// The list of packages which are installed + installed_packages: Option>, + #[serde(rename = "availablePackages")] + /// The list of packages which are available to install + available_packages: Option>, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq, Hash)] +/// A package which is added to a project +pub struct ProjectPackage { + #[serde(rename = "pkgNumber")] + /// The package number + package_number: isize, + #[serde(deserialize_with = "version_constraint_from_string")] + #[builder(setter(into))] + /// The package version + version: VersionConstraint, +} + +impl Display for ProjectPackage { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}-{}", + self.package_number, + self.version + .version() + .map(|v| v.to_string()) + .unwrap_or_default() + ) + } +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +/// A SIMICS project +pub struct Project { + #[builder(setter(into))] + /// The project name + name: String, + #[builder(setter(into))] + /// The project description + description: String, + /// The path to the project + path: PathBuf, + #[builder(default, setter(into))] + /// The set of packages this project was configured with + packages: Vec, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +#[builder(field_defaults(default, setter(into)))] +/// List of known projects associated with this ISPM installation +pub struct Projects { + projects: Vec, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +/// A platform, which is a collection of packages +pub struct Platform { + #[builder(setter(into))] + /// The name of the platform + name: String, + #[builder(setter(into))] + /// The group of the platform + group: String, + #[builder(setter(into))] + /// The path to the platform + path: String, + /// Whether this platform is remote + remote: bool, +} + +#[derive(TypedBuilder, Getters, Deserialize, Clone, Debug, PartialEq, Eq)] +#[builder(field_defaults(default, setter(into)))] +/// A list of platforms +pub struct Platforms { + /// The list of platforms + platforms: Vec, +} diff --git a/modules/tsffs/src/simics/ispm-wrapper/src/lib.rs b/modules/tsffs/src/simics/ispm-wrapper/src/lib.rs new file mode 100644 index 00000000..e690c0e8 --- /dev/null +++ b/modules/tsffs/src/simics/ispm-wrapper/src/lib.rs @@ -0,0 +1,501 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Wrappers for the small subset of ISPM commands the fuzzer and its build processes need to +//! function + +#[allow(deprecated)] +use std::env::home_dir; +// NOTE: Use of deprecated home_dir is ok because the "incorrect" windows behavior is actually +// correct for SIMICS' use case. +use anyhow::{anyhow, Result}; +use command_ext::CommandExtCheck; +use std::{path::PathBuf, process::Command}; + +pub mod data; + +pub const ISPM_NAME: &str = "ispm"; +pub const NON_INTERACTIVE_FLAG: &str = "--non-interactive"; + +/// Minimal implementation of internal ISPM functionality to use it externally +pub struct Internal {} + +impl Internal { + // NOTE: Can be found in package.json in extracted ispm application + const PRODUCT_NAME: &'static str = "Intel Simics Package Manager"; + + // NOTE: Can be found in `AppInfo` class in extracted ispm application + const CFG_FILENAME: &'static str = "simics-package-manager.cfg"; + + // NOTE: Can be found in `constructAppDataPath` in extracted ispm application + /// Retrieve the path to the directory containing ISPM's application data, in particular the + /// configuration file. + fn app_data_path() -> Result { + #[allow(deprecated)] + // NOTE: Use of deprecated home_dir is ok because the "incorrect" windows behavior is actually + // correct for SIMICS' use case. + let home_dir = home_dir().ok_or_else(|| anyhow!("No home directory found"))?; + + #[cfg(unix)] + return Ok(home_dir.join(".config").join(Self::PRODUCT_NAME)); + + #[cfg(windows)] + // This comes from the ispm source, it's hardcoded there and we hardcode it here + return Ok(home_dir + .join("AppData") + .join("Local") + .join(Self::PRODUCT_NAME)); + } + + // NOTE: Can be found in `getCfgFileName` in extracted ispm application + /// Retrieve the path to the ISPM configuration file + pub fn cfg_file_path() -> Result { + Ok(Self::app_data_path()?.join(Self::CFG_FILENAME)) + } + + pub fn is_internal() -> Result { + const IS_INTERNAL_MSG: &str = "This is an Intel internal release"; + + Ok( + String::from_utf8(Command::new(ISPM_NAME).arg("help").check()?.stdout)? + .contains(IS_INTERNAL_MSG), + ) + } +} + +pub trait ToArgs { + fn to_args(&self) -> Vec; +} + +/// Wrappers for ISPM commands +pub mod ispm { + use std::{iter::repeat, path::PathBuf}; + + use getters::Getters; + use typed_builder::TypedBuilder; + + use crate::{ToArgs, NON_INTERACTIVE_FLAG}; + + #[derive(TypedBuilder, Getters, Clone, Debug)] + /// Global ISPM options + pub struct GlobalOptions { + #[builder(default, setter(into))] + /// A package repo to use when installing packages + package_repo: Vec, + #[builder(default, setter(into, strip_option))] + /// A directory to install packages into, overriding global configurations + install_dir: Option, + #[builder(default, setter(into, strip_option))] + /// An HTTPS proxy URL to use + https_proxy: Option, + #[builder(default, setter(into, strip_option))] + /// A no-proxy string of addresses not to use the proxy for, e.g. "*.intel.com,127.0.0.1" + no_proxy: Option, + #[builder(default = true)] + /// Whether this command should be run in non-interactive mode. + non_interactive: bool, + #[builder(default = false)] + /// Whether insecure packages should be trusted. This should be set to true when + /// installing an un-signed local package + trust_insecure_packages: bool, + #[builder(default, setter(into, strip_option))] + /// A path to an override configuration file + config_file: Option, + #[builder(default = false)] + /// Whether the configuration file should not be used for this command + no_config_file: bool, + #[builder(default, setter(into, strip_option))] + /// A different temporary directory to use + temp_dir: Option, + #[builder(default, setter(into, strip_option))] + /// An authentication file to use for this command + auth_file: Option, + } + + impl ToArgs for GlobalOptions { + fn to_args(&self) -> Vec { + let mut args = Vec::new(); + + args.extend( + repeat("--package-repo".to_string()) + .zip(self.package_repo.iter()) + .flat_map(|(flag, arg)| [flag, arg.to_string()]), + ); + args.extend(self.install_dir.as_ref().iter().flat_map(|id| { + [ + "--install-dir".to_string(), + id.to_string_lossy().to_string(), + ] + })); + args.extend( + self.https_proxy + .as_ref() + .iter() + .flat_map(|p| ["--https-proxy".to_string(), p.to_string()]), + ); + args.extend( + self.no_proxy + .as_ref() + .iter() + .flat_map(|p| ["--no-proxy".to_string(), p.to_string()]), + ); + if self.non_interactive { + args.push(NON_INTERACTIVE_FLAG.to_string()) + } + if self.trust_insecure_packages { + args.push("--trust-insecure-packages".to_string()) + } + args.extend(self.config_file.as_ref().iter().flat_map(|cf| { + [ + "--config-file".to_string(), + cf.to_string_lossy().to_string(), + ] + })); + if self.no_config_file { + args.push("--no-config-file".to_string()); + } + args.extend( + self.temp_dir + .as_ref() + .iter() + .flat_map(|td| ["--temp-dir".to_string(), td.to_string_lossy().to_string()]), + ); + args.extend( + self.auth_file + .as_ref() + .iter() + .flat_map(|af| ["--auth-file".to_string(), af.to_string_lossy().to_string()]), + ); + + args + } + } + + impl Default for GlobalOptions { + fn default() -> Self { + Self::builder().build() + } + } + + pub mod packages { + use crate::{ + data::{Packages, ProjectPackage}, + ToArgs, ISPM_NAME, NON_INTERACTIVE_FLAG, + }; + use anyhow::Result; + use command_ext::CommandExtCheck; + use getters::Getters; + use serde_json::from_slice; + use std::{iter::repeat, path::PathBuf, process::Command}; + use typed_builder::TypedBuilder; + + use super::GlobalOptions; + + const PACKAGES_SUBCOMMAND: &str = "packages"; + + /// Get the currently installed and available packages + pub fn list(options: &GlobalOptions) -> Result { + Ok(from_slice( + &Command::new(ISPM_NAME) + .arg(PACKAGES_SUBCOMMAND) + .arg(NON_INTERACTIVE_FLAG) + // NOTE: There is a bug happening when running e.g.: + // `ispm packages --list --json | cat > test.txt; stat -c '%s' test.txt` + // where the output to the pipe from ISPM stops after the size of the + // PIPE_BUF. For now, we mitigate this by passing `--list-installed` only. + .arg("--list-installed") + .arg("--json") + .args(options.to_args()) + .check()? + .stdout, + )?) + } + + #[derive(TypedBuilder, Getters, Clone, Debug)] + #[getters(mutable)] + pub struct InstallOptions { + #[builder(default, setter(into))] + /// Packages to install by number/version + packages: Vec, + #[builder(default, setter(into))] + /// Packages to install by local path + package_paths: Vec, + #[builder(default)] + global: GlobalOptions, + #[builder(default = false)] + install_all: bool, + } + + impl ToArgs for InstallOptions { + fn to_args(&self) -> Vec { + repeat("-i".to_string()) + .zip( + self.packages.iter().map(|p| p.to_string()).chain( + self.package_paths + .iter() + .map(|p| p.to_string_lossy().to_string()), + ), + ) + .flat_map(|(flag, arg)| [flag, arg]) + .chain(self.global.to_args().iter().cloned()) + .chain(self.install_all.then_some("--install-all".to_string())) + .collect::>() + } + } + + pub fn install(install_options: &InstallOptions) -> Result<()> { + Command::new(ISPM_NAME) + .arg(PACKAGES_SUBCOMMAND) + .args(install_options.to_args()) + .arg(NON_INTERACTIVE_FLAG) + .check()?; + Ok(()) + } + + #[derive(TypedBuilder, Getters, Clone, Debug)] + pub struct UninstallOptions { + #[builder(default, setter(into))] + /// Packages to install by number/version + packages: Vec, + #[builder(default)] + global: GlobalOptions, + } + + impl ToArgs for UninstallOptions { + fn to_args(&self) -> Vec { + repeat("-u".to_string()) + .zip(self.packages.iter().map(|p| p.to_string())) + .flat_map(|(flag, arg)| [flag, arg]) + .chain(self.global.to_args().iter().cloned()) + .collect::>() + } + } + + pub fn uninstall(uninstall_options: &UninstallOptions) -> Result<()> { + Command::new(ISPM_NAME) + .arg(PACKAGES_SUBCOMMAND) + .args(uninstall_options.to_args()) + .arg(NON_INTERACTIVE_FLAG) + .check()?; + Ok(()) + } + } + + pub mod projects { + use crate::{ + data::{ProjectPackage, Projects}, + ToArgs, ISPM_NAME, NON_INTERACTIVE_FLAG, + }; + use anyhow::{anyhow, Result}; + use command_ext::CommandExtCheck; + use getters::Getters; + use serde_json::from_slice; + use std::{collections::HashSet, iter::once, path::Path, process::Command}; + use typed_builder::TypedBuilder; + + use super::GlobalOptions; + + const IGNORE_EXISTING_FILES_FLAG: &str = "--ignore-existing-files"; + const CREATE_PROJECT_FLAG: &str = "--create"; + const PROJECTS_SUBCOMMAND: &str = "projects"; + + #[derive(TypedBuilder, Getters, Clone, Debug)] + pub struct CreateOptions { + #[builder(default, setter(into))] + packages: HashSet, + #[builder(default = false)] + ignore_existing_files: bool, + #[builder(default)] + global: GlobalOptions, + } + + impl ToArgs for CreateOptions { + fn to_args(&self) -> Vec { + self.packages() + .iter() + .map(|p| Some(p.to_string())) + .chain(once( + self.ignore_existing_files + .then_some(IGNORE_EXISTING_FILES_FLAG.to_string()), + )) + .flatten() + .chain(self.global.to_args().iter().cloned()) + .collect::>() + } + } + + /// Create a project + pub fn create

(create_options: &CreateOptions, project_path: P) -> Result<()> + where + P: AsRef, + { + let mut args = vec![ + PROJECTS_SUBCOMMAND.to_string(), + project_path + .as_ref() + .to_str() + .ok_or_else(|| anyhow!("Could not convert to string"))? + .to_string(), + CREATE_PROJECT_FLAG.to_string(), + ]; + args.extend(create_options.to_args()); + println!("{:?}", args); + Command::new(ISPM_NAME).args(args).check()?; + + Ok(()) + } + + /// Get existing projects + pub fn list(options: &GlobalOptions) -> Result { + Ok(from_slice( + &Command::new(ISPM_NAME) + .arg(PROJECTS_SUBCOMMAND) + .arg(NON_INTERACTIVE_FLAG) + // NOTE: There is a bug happening when running e.g.: + // `ispm packages --list --json | cat > test.txt; stat -c '%s' test.txt` + // where the output to the pipe from ISPM stops after the size of the + // PIPE_BUF. For now, we mitigate this by passing `--list-installed` only. + .arg("--list") + .arg("--json") + .args(options.to_args()) + .check()? + .stdout, + )?) + } + } + + pub mod platforms { + use crate::{data::Platforms, ISPM_NAME, NON_INTERACTIVE_FLAG}; + use anyhow::Result; + use command_ext::CommandExtCheck; + use serde_json::from_slice; + use std::process::Command; + + const PLATFORMS_SUBCOMMAND: &str = "platforms"; + + /// Get existing platforms + pub fn list() -> Result { + Ok(from_slice( + &Command::new(ISPM_NAME) + .arg(PLATFORMS_SUBCOMMAND) + .arg(NON_INTERACTIVE_FLAG) + // NOTE: There is a bug happening when running e.g.: + // `ispm packages --list --json | cat > test.txt; stat -c '%s' test.txt` + // where the output to the pipe from ISPM stops after the size of the + // PIPE_BUF. For now, we mitigate this by passing `--list-installed` only. + .arg("--list") + .arg("--json") + .check()? + .stdout, + )?) + } + } + + pub mod settings { + use crate::{data::Settings, ISPM_NAME, NON_INTERACTIVE_FLAG}; + use anyhow::Result; + use command_ext::CommandExtCheck; + use serde_json::from_slice; + use std::process::Command; + + const SETTINGS_SUBCOMMAND: &str = "settings"; + + /// Get the current ISPM configuration + pub fn list() -> Result { + from_slice( + &Command::new(ISPM_NAME) + .arg(SETTINGS_SUBCOMMAND) + .arg(NON_INTERACTIVE_FLAG) + .arg("--json") + .check()? + .stdout, + ) + .or_else(|_| { + // Fall back to reading the config from disk + Settings::get() + }) + } + } +} + +#[cfg(test)] +mod test { + use anyhow::Result; + use std::path::PathBuf; + + use crate::{ + data::{IPathObject, ProxySettingTypes, RepoPath, Settings}, + ispm::{self, GlobalOptions}, + }; + use serde_json::from_str; + + #[test] + fn test_simple_public() { + let expected = Settings::builder() + .archives([RepoPath::builder() + .value("https://artifactory.example.com/artifactory/repos/example/") + .enabled(true) + .priority(0) + .id(0) + .build()]) + .install_path( + IPathObject::builder() + .id(1) + .priority(0) + .value("/home/user/simics") + .enabled(true) + .writable(true) + .build(), + ) + .cfg_version(2) + .temp_directory(PathBuf::from("/home/user/tmp")) + .manifest_repos([ + IPathObject::builder() + .id(0) + .priority(0) + .value("https://x.y.example.com") + .enabled(true) + .writable(false) + .build(), + IPathObject::builder() + .id(1) + .priority(1) + .value("https://artifactory.example.com/artifactory/repos/example/") + .enabled(true) + .build(), + ]) + .projects([IPathObject::builder() + .id(0) + .priority(0) + .value("/home/user/simics-projects/qsp-x86-project") + .enabled(true) + .build()]) + .key_store([IPathObject::builder() + .id(0) + .priority(0) + .value("/home/user/simics/keys") + .enabled(true) + .build()]) + .proxy_settings_to_use(ProxySettingTypes::Env) + .build(); + const SETTINGS_TEST_SIMPLE_PUBLIC: &str = + include_str!("../tests/config/simple-public/simics-package-manager.cfg"); + + let settings: Settings = from_str(SETTINGS_TEST_SIMPLE_PUBLIC) + .unwrap_or_else(|e| panic!("Error loading simple configuration: {e}")); + + assert_eq!(settings, expected) + } + + #[test] + fn test_current() -> Result<()> { + ispm::settings::list()?; + Ok(()) + } + + #[test] + fn test_packages() -> Result<()> { + ispm::packages::list(&GlobalOptions::default())?; + Ok(()) + } +} diff --git a/modules/tsffs/src/simics/ispm-wrapper/tests/config/simple-public/simics-package-manager.cfg b/modules/tsffs/src/simics/ispm-wrapper/tests/config/simple-public/simics-package-manager.cfg new file mode 100644 index 00000000..9fa934e7 --- /dev/null +++ b/modules/tsffs/src/simics/ispm-wrapper/tests/config/simple-public/simics-package-manager.cfg @@ -0,0 +1,51 @@ +{ + "cfgVersion": 2, + "installPath": { + "id": 1, + "priority": 0, + "value": "/home/user/simics", + "enabled": true, + "isWritable": true + }, + "projects": [ + { + "value": "/home/user/simics-projects/qsp-x86-project", + "enabled": true, + "priority": 0, + "id": 0 + } + ], + "manifestRepos": [ + { + "value": "https://x.y.example.com", + "enabled": true, + "isWritable": false, + "priority": 0, + "id": 0 + }, + { + "value": "https://artifactory.example.com/artifactory/repos/example/", + "enabled": true, + "priority": 1, + "id": 1 + } + ], + "archives": [ + { + "value": "https://artifactory.example.com/artifactory/repos/example/", + "enabled": true, + "priority": 0, + "id": 0 + } + ], + "keyStore": [ + { + "value": "/home/user/simics/keys", + "enabled": true, + "priority": 0, + "id": 0 + } + ], + "proxySettingsToUse": "env", + "tempDirectory": "/home/user/tmp" +} \ No newline at end of file diff --git a/simics-api-sys/.gitignore b/modules/tsffs/src/simics/simics-api-sys/.gitignore similarity index 100% rename from simics-api-sys/.gitignore rename to modules/tsffs/src/simics/simics-api-sys/.gitignore diff --git a/modules/tsffs/src/simics/simics-api-sys/.modcache b/modules/tsffs/src/simics/simics-api-sys/.modcache new file mode 100644 index 00000000..8af58de1 --- /dev/null +++ b/modules/tsffs/src/simics/simics-api-sys/.modcache @@ -0,0 +1,585 @@ +version 6247 +dir /home/rhart/hub/tsffs/src/simics/simics-api-sys/. +dir /home/rhart/simics-public/simics-6.0.174/linux64/lib +file 65160 1696283664 8042.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283661;MOD:8042;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i8042;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 38576 1696283664 82077.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283662;MOD:82077;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82077;CLS:floppy-drive;MODULE_LOAD;THREADSAFE; +file 33392 1696283663 8237x2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283661;MOD:8237x2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i8237x2;MODULE_LOAD;THREADSAFE; +file 43984 1696283666 8254.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283664;MOD:8254;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i8254;MODULE_LOAD;THREADSAFE; +file 45088 1696283666 8259x2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283664;MOD:8259x2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i8259x2;MODULE_LOAD;THREADSAFE; +file 177328 1696283677 AM79C960.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283664;MOD:AM79C960;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:AM79C960;MODULE_LOAD;THREADSAFE; +file 351496 1696283694 AM79C973.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283664;MOD:AM79C973;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:AM79C973;MODULE_LOAD;THREADSAFE; +file 36216 1696283668 AT24Cxx.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283665;MOD:AT24Cxx;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:AT24Cxx;CLS:AT24C04;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 25680 1696283667 AT24Cxxx.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283665;MOD:AT24Cxxx;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:AT24Cxxx;THREADSAFE; +file 196608 1696283674 BCM5703C.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:BCM5703C;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:BCM5703C;MODULE_LOAD;THREADSAFE; +file 196840 1696283675 BCM5704C.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:BCM5704C;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:BCM5704C;MODULE_LOAD;THREADSAFE; +file 63088 1696283670 CL-PD6729.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:CL-PD6729;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:CL-PD6729;MODULE_LOAD;THREADSAFE; +file 106496 1696283670 DEC21041.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:DEC21041;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DEC21041;MODULE_LOAD;THREADSAFE; +file 245168 1696283689 DEC21140A-dml.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:DEC21140A-dml;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DEC21140A-dml;MODULE_LOAD;THREADSAFE; +file 106496 1696283671 DEC21140A.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:DEC21140A;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DEC21140A;MODULE_LOAD;THREADSAFE; +file 106560 1696283671 DEC21143.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283667;MOD:DEC21143;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DEC21143;MODULE_LOAD;THREADSAFE; +file 30736 1696283670 DS12887-c.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283668;MOD:DS12887-c;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DS12887-c;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 148896 1696283677 DS12887.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283668;MOD:DS12887;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DS12887;MODULE_LOAD;THREADSAFE; +file 128280 1696283678 DS323x.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283669;MOD:DS323x;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:DS323x;CLS:DS3231;MODULE_LOAD;THREADSAFE; +file 179328 1696283680 NS16x50.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283669;MOD:NS16x50;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:NS16550;CLS:NS16450;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 36016 1696283674 PCF8582C.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283669;MOD:PCF8582C;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:PCF8582C;THREADSAFE; +file 508840 1696283715 TSB12LV26.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283673;MOD:TSB12LV26;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:TSB12LV26;MODULE_LOAD;THREADSAFE; +file 132368 1696283680 accel-vga.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283675;MOD:accel-vga;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:accel-vga;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 74960 1696283646 apic-inter-core-smi-handling-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283633;MOD:apic-inter-core-smi-handling-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:0;HOSTTYPE:linux64;PYIFACE:apic_inter_core_smi_handling;THREADSAFE; +file 87784 1696283681 apic.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283677;MOD:apic;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:apic;CLS:apic-bus;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 21840 1696283681 arinc429-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283679;MOD:arinc429-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:arinc429_bus;MODULE_LOAD;THREADSAFE; +file 22216 1696283683 async-bridge.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283681;MOD:async-bridge;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:async-bridge;MODULE_LOAD;THREADSAFE; +file 15168 1696283683 attr-meter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283682;MOD:attr-meter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:attr-meter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 16968 1696283684 bank-coverage-tool.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283682;MOD:bank-coverage-tool;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:bank_coverage_tool;CLS:bank_coverage_tool_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 16976 1696283684 bank-patch-tool.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283682;MOD:bank-patch-tool;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:bank_patch_tool;CLS:bank_patch_tool_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17032 1696283685 bitmask-translator.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283682;MOD:bitmask-translator;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:bitmask-translator;MODULE_LOAD;THREADSAFE; +file 15168 1696283688 blueprints.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283683;MOD:blueprints;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x58-mb;CLS:script-engine;CLS:eth-connector;CLS:eth-link-connector;CLS:usb-device-connector;CLS:usb-host-connector;CLS:uart-device-connector;CLS:uart-remote-connector;CLS:sata-controller-connector;CLS:sata-device-connector;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283686 bp-manager.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283684;MOD:bp-manager;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:bp-manager;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 44256 1696283689 can-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283685;MOD:can-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:can_device;PYIFACE:can_link;THREADSAFE; +file 17552 1696283686 can-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283685;MOD:can-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:can_link_impl;CLS:can_endpoint;CLS:can_link;COMP:can_link;MODULE_LOAD;THREADSAFE; +file 26464 1696283688 cdrom-image.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283685;MOD:cdrom-image;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cdrom_image;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17152 1696283687 clipboard-gateway.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283685;MOD:clipboard-gateway;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:clipboard-gateway;MODULE_LOAD;THREADSAFE; +file 36920 1696283688 clock.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283685;MOD:clock;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:clock;CLS:cell_and_clocks_comp;CLS:cell-and-clocks;COMP:cell_and_clocks_comp;COMP:cell-and-clocks;MODULE_LOAD;THREADSAFE; +file 17832 1696283688 co-engine.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283687;MOD:co-engine;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:co-engine;THREADSAFE; +file 22296 1696283678 co-execute.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283676;MOD:co-execute;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:co-execute;THREADSAFE; +file 59488 1696283995 code-coverage.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283991;MOD:code-coverage;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:code_coverage;CLS:code_coverage_helper;PYIFACE:code_coverage;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283689 console-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283688;MOD:console-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:txt_console_comp;CLS:gfx_console_comp;COMP:txt_console_comp;COMP:gfx_console_comp;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 cp3_quad100tx.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:cp3_quad100tx;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cp3_quad100tx;COMP:cp3_quad100tx;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 cpci-adapter-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:cpci-adapter-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cpci_adapter;COMP:cpci_adapter;MODULE_LOAD;THREADSAFE; +file 16344 1696283611 cpu-group.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:cpu-group;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cpu-group;MODULE_LOAD;THREADSAFE; +file 16992 1696283611 cpu-mode-filter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:cpu-mode-filter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cpu_mode_filter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283897 cpumode-software-tracker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283896;MOD:cpumode-software-tracker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cpumode_software_mapper;CLS:cpumode_software_tracker;CLS:cpumode_software_tracker_comp;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 55584 1696283614 cstate-v3-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:cstate-v3-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_cstate_notification_v3;PYIFACE:x86_cstate_notification_v4;PYIFACE:x86_cstate_notification_v5;THREADSAFE; +file 16376 1696283611 cycle-staller.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:cycle-staller;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cycle_staller;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17368 1696283611 datagram-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:datagram-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:datagram_link_impl;CLS:datagram_link_endpoint;CLS:datagram_link;COMP:datagram_link;MODULE_LOAD;THREADSAFE; +file 7198808 1696283957 disassemble-arm.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283689;MOD:disassemble-arm;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:disassemble_arm;THREADSAFE; +file 2509800 1696283776 disassemble_x86.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283689;MOD:disassemble_x86;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:disassemble_x86;THREADSAFE; +file 155984 1696283621 dm9161.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:dm9161;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:dm9161;MODULE_LOAD;THREADSAFE; +file 15168 1696283910 dml-api-info.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283909;MOD:dml-api-info;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;THREADSAFE; +file 39248 1696283614 doma-cstate-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:doma-cstate-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_doma_cstate;THREADSAFE; +file 15168 1696283611 empty-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:empty-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_components;COMP:empty_components;MODULE_LOAD;THREADSAFE; +file 16144 1696283611 empty-device-c.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:empty-device-c;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_device_c;MODULE_LOAD;THREADSAFE; +file 86416 1696283615 empty-device-cc.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:empty-device-cc;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_device_cc;MODULE_LOAD;THREADSAFE; +file 100168 1696283617 empty-device-dml.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:empty-device-dml;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_device_dml;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 empty-device-pyobj.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:empty-device-pyobj;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_device_pyobj;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 empty-device-python.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:empty-device-python;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_device_python;MODULE_LOAD;THREADSAFE; +file 43320 1696283613 empty-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:empty-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:empty_interface;THREADSAFE; +file 26072 1696283902 empty-software-tracker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283900;MOD:empty-software-tracker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:empty_software_tracker;CLS:empty_software_mapper;CLS:empty_software_tracker_comp;MODULE_LOAD;THREADSAFE; +file 38624 1696283614 eri-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:eri-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_eri_v1;THREADSAFE; +file 94264 1696283614 etg.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:etg;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:etg;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 eth-injector-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:eth-injector-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:eth_injector_comp;COMP:eth_injector_comp;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 eth-injector.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:eth-injector;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:eth_injector;MODULE_LOAD;THREADSAFE; +file 51920 1696283613 eth-links.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:eth-links;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:eth-hub-link;CLS:eth-hub-link-endpoint;CLS:eth-cable-link;CLS:eth-cable-link-endpoint;CLS:eth-switch-link;CLS:eth-switch-link-endpoint;CLS:eth-link-snoop-endpoint;CLS:eth-switch-link-snoop-endpoint;CLS:ethernet_hub;CLS:ethernet_cable;CLS:ethernet_switch;CLS:ethernet_vlan_switch;COMP:ethernet_hub;COMP:ethernet_cable;COMP:ethernet_switch;COMP:ethernet_vlan_switch;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 26096 1696283612 eth-probe.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:eth-probe;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:eth-probe;CLS:eth-probe-port;MODULE_LOAD;THREADSAFE; +file 26216 1696283612 eth-transceiver.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:eth-transceiver;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:eth-transceiver;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 event-histogram.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:event-histogram;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:event_histogram;CLS:event_histogram_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 43008 1696283614 event-provider-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:event-provider-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:event_provider;THREADSAFE; +file 15168 1696283611 examples-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:examples-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:emmett;CLS:mcfly;CLS:deckard;CLS:rachel;CLS:tyrell;CLS:sebastian;CLS:roy_batty;CLS:frankie_carbone;CLS:tyler_durden;CLS:maria_singer;CLS:ripley;CLS:nemo;CLS:nikita;CLS:wall_e;CLS:hal;CLS:marvin;CLS:elliot;CLS:gertie;CLS:brody;CLS:hunt;CLS:ethan;CLS:korben;CLS:zorg;CLS:leeloo;CLS:godzilla;COMP:emmett;COMP:mcfly;COMP:deckard;COMP:rachel;COMP:tyrell;COMP:sebastian;COMP:roy_batty;COMP:frankie_carbone;COMP:tyler_durden;COMP:maria_singer;COMP:ripley;COMP:nemo;COMP:nikita;COMP:wall_e;COMP:hal;COMP:marvin;COMP:elliot;COMP:gertie;COMP:brody;COMP:hunt;COMP:ethan;COMP:korben;COMP:zorg;COMP:leeloo;COMP:godzilla;MODULE_LOAD;THREADSAFE; +file 16984 1696283611 exception-histogram.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:exception-histogram;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:exception_histogram;CLS:exception_histogram_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 36944 1696283688 external-connection.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283686;MOD:external-connection;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:tcp-server;CLS:unix-socket-server;MODULE_LOAD;THREADSAFE; +file 45400 1696283614 firewire-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:firewire-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:firewire_bus;CLS:firewire_device_test_wrapper;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 firewire-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:firewire-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pci-tsb12lv26;CLS:std-firewire-bus;CLS:std-firewire-sample-device;COMP:pci-tsb12lv26;COMP:std-firewire-bus;COMP:std-firewire-sample-device;MODULE_LOAD;THREADSAFE; +file 25712 1696283611 framebuffer.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:framebuffer;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:framebuffer;THREADSAFE; +file 26920 1696283613 frequency-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:frequency-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:frequency_bus;MODULE_LOAD;THREADSAFE; +file 16432 1696283611 frontend-server-console.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:frontend-server-console;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:frontend-server-console;THREADSAFE; +file 66440 1696283613 ftp-service.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:ftp-service;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ftp-service;CLS:ftp-control;CLS:ftp-data;MODULE_LOAD;THREADSAFE; +file 16968 1696283612 ftp_alg.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:ftp_alg;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ftp-alg;SIMICS_START;THREADSAFE; +file 94304 1696283613 g-cache.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:g-cache;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:g-cache;CLS:trans-splitter;CLS:trans-sorter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 149648 1696283615 gdb-remote.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:gdb-remote;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:gdb-remote;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 85224 1696283613 generic-flash-memory.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic-flash-memory;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:generic-flash-memory;CLS:new-flash-memory;MODULE_LOAD;THREADSAFE; +file 43608 1696283614 generic-message-interfaces.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:generic-message-interfaces;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:generic_message_link;PYIFACE:generic_message_device;THREADSAFE; +file 256216 1696283618 generic-mmc-card.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic-mmc-card;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:generic-mmc-card;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 generic-pcie-switch-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic-pcie-switch-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:generic_pcie_switch;MODULE_LOAD;THREADSAFE; +file 308960 1696283639 generic-pcie-switch-port.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic-pcie-switch-port;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:generic_pcie_switch_port;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 461896 1696283639 generic-sdmmc-card.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic-sdmmc-card;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:mmc_card;CLS:sd_card;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 193840 1696283621 generic-spi-flash.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic-spi-flash;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:generic_spi_flash;CLS:M25Pxx;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 714288 1696283653 generic_eth_phy.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:generic_eth_phy;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:generic_eth_phy;MODULE_LOAD;THREADSAFE; +file 15168 1696283611 global-messages.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:global-messages;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;MODULE_LOAD;THREADSAFE; +file 26824 1696283612 gml-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:gml-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:gml_link_impl;CLS:gml_link_endpoint;CLS:gml_link;COMP:gml_link;MODULE_LOAD;THREADSAFE; +file 138600 1696283901 graphcon.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283896;MOD:graphcon;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:graphcon;CLS:gfx-frontend-winsome;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 21784 1696283612 hap-meter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:hap-meter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:hap-meter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 21864 1696283611 host-serial-console.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:host-serial-console;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:host-serial-console;CLS:pty-console;THREADSAFE; +file 45296 1696283612 hostfs.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:hostfs;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:hostfs;MODULE_LOAD;THREADSAFE; +file 38848 1696283612 hypersim-pattern-matcher.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:hypersim-pattern-matcher;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:hypersim-pattern-matcher;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283611 i210-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:i210-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i210_comp;COMP:i210_comp;MODULE_LOAD;THREADSAFE; +file 1023456 1696283696 i210.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:i210;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i210;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 67832 1696283613 i21150.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i21150;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i21150;MODULE_LOAD;THREADSAFE; +file 67832 1696283614 i21152.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i21152;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i21152;MODULE_LOAD;THREADSAFE; +file 176512 1696283626 i21154.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i21154;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i21154;MODULE_LOAD;THREADSAFE; +file 76000 1696283614 i21554.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i21554;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i21554-prim;CLS:i21554-scnd;THREADSAFE; +file 76000 1696283614 i21555.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i21555;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i21555-prim;CLS:i21555-scnd;THREADSAFE; +file 50280 1696283614 i2c-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i2c-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i2c-bus;CLS:i2c_slave_v2_to_bus_adapter;MODULE_LOAD;THREADSAFE; +file 58280 1696283616 i2c-link-v1.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283610;MOD:i2c-link-v1;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i2c_link_v1;CLS:i2c_link;MODULE_LOAD;THREADSAFE; +file 67704 1696283615 i2c-link-v2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i2c-link-v2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i2c-link-impl;CLS:i2c-link-endpoint;CLS:i2c_wire;CLS:i2c_link_v2;COMP:i2c_link_v2;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 269368 1696283622 i3c-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i3c-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i3c_link_impl;CLS:i3c_link_endpoint;CLS:i3c_cable_impl;CLS:i3c_cable_endpoint;CLS:i3c_bus;CLS:i3c_wire;CLS:i2c_to_i3c_adapter;CLS:i3c_cable;CLS:i3c_link;COMP:i3c_cable;COMP:i3c_link;MODULE_LOAD;THREADSAFE; +file 118736 1696283614 i82543.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82543;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82543;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 118736 1696283614 i82546.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82546;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82546;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 266544 1696283635 i82559.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82559;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82559;MODULE_LOAD;THREADSAFE; +file 15168 1696283612 i82571EB-v2-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82571EB-v2-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82571EB_v2_comp;COMP:i82571EB_v2_comp;MODULE_LOAD;THREADSAFE; +file 931432 1696283688 i82571EB-v2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82571EB-v2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82571EB_v2;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283612 i82574-v2-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82574-v2-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82574_v2_comp;COMP:i82574_v2_comp;MODULE_LOAD;THREADSAFE; +file 997984 1696283695 i82574-v2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:i82574-v2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82574_v2;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283612 i82576EB-v2-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82576EB-v2-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82576EB_v2_comp;COMP:i82576EB_v2_comp;MODULE_LOAD;THREADSAFE; +file 1044472 1696283697 i82576EB-v2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:i82576EB-v2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82576EB_v2;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283612 i82583V-v2-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283611;MOD:i82583V-v2-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82583V_v2_comp;COMP:i82583V_v2_comp;MODULE_LOAD;THREADSAFE; +file 837296 1696283684 i82583V-v2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:i82583V-v2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:i82583V_v2;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15968 1696283613 id-splitter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:id-splitter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:id-splitter;THREADSAFE; +file 101232 1696283616 ide.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:ide;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ide;CLS:ide-disk;CLS:ide-cdrom;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 57792 1696283616 ieee-802-15-4-interfaces.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:ieee-802-15-4-interfaces;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:ieee_802_15_4_link;PYIFACE:ieee_802_15_4_control;PYIFACE:ieee_802_15_4_receiver;PYIFACE:ieee_802_15_4_probe;THREADSAFE; +file 36584 1696283614 ieee-802-15-4-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:ieee-802-15-4-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ieee_802_15_4_link_impl;CLS:ieee_802_15_4_link_endpoint;CLS:ieee_802_15_4_link;COMP:ieee_802_15_4_link;MODULE_LOAD;THREADSAFE; +file 26496 1696283615 ieee-802-15-4-probe.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:ieee-802-15-4-probe;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ieee_802_15_4_probe;MODULE_LOAD;THREADSAFE; +file 16688 1696283613 instruction-count.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:instruction-count;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:instruction_count;CLS:instruction_count_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 46360 1696283614 instruction-histogram.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:instruction-histogram;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:instruction_histogram;CLS:mnemonic_histogram_connection;CLS:size_histogram_connection;CLS:x86_normalized_histogram_connection;CLS:xed_iform_histogram_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 16176 1696283613 instrumentation-filter-aggregator.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:instrumentation-filter-aggregator;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:instrumentation_filter_aggregator;MODULE_LOAD;THREADSAFE; +file 31088 1696283614 instrumentation-tracer-tool.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:instrumentation-tracer-tool;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:tracer_tool;CLS:tracer_tool_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 173736 1696283626 intel-e1000.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:intel-e1000;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:e1000_spi;MODULE_LOAD;THREADSAFE; +file 21960 1696283615 interrupt-to-signal.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:interrupt-to-signal;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:interrupt_to_signal;MODULE_LOAD;THREADSAFE; +file 26648 1696283614 io-apic.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283612;MOD:io-apic;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:io-apic;MODULE_LOAD;THREADSAFE; +file 15168 1696283614 isa-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:isa-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:std-super-io;CLS:ps2-keyboard-mouse;CLS:pc-dual-serial-ports;CLS:pc-quad-serial-ports;CLS:pc-floppy-controller;CLS:pc-single-parallel-port;CLS:isa-vga;CLS:isa-lance;CLS:sio-w83627hf;COMP:std-super-io;COMP:ps2-keyboard-mouse;COMP:pc-dual-serial-ports;COMP:pc-quad-serial-ports;COMP:pc-floppy-controller;COMP:pc-single-parallel-port;COMP:isa-vga;COMP:isa-lance;COMP:sio-w83627hf;MODULE_LOAD;THREADSAFE; +file 17248 1696283614 isa.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:isa;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ISA;MODULE_LOAD;THREADSAFE; +file 478200 1696283923 linux-tracker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283901;MOD:linux-tracker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:linux_analyzer;CLS:linux_mapper;CLS:linux_tracker;CLS:linux_tracker_comp;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17736 1696283615 mac-splitter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:mac-splitter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:mac_splitter;THREADSAFE; +file 96216 1696283617 magic-pipe-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:magic-pipe-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:magic_pipe_reader;PYIFACE:magic_pipe_writer;PYIFACE:magic_pipe_setup;THREADSAFE; +file 41304 1696283615 magic-pipe.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:magic-pipe;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:magic_pipe;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283614 matic.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:matic;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:agent_manager;CLS:agent_handle;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 26448 1696283614 mem-traffic-meter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:mem-traffic-meter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:mem-traffic-meter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283614 memory-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:memory-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple_memory_module;CLS:ddr_memory_module_comp;CLS:ddr2_memory_module_comp;CLS:ddr3_memory_module_comp;CLS:sdram_memory_module_comp;COMP:simple_memory_module;COMP:ddr_memory_module_comp;COMP:ddr2_memory_module_comp;COMP:ddr3_memory_module_comp;COMP:sdram_memory_module_comp;MODULE_LOAD;THREADSAFE; +file 15168 1696283614 memory-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:memory-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ddr-memory-module;CLS:ddr2-memory-module;CLS:ddr3-memory-module;CLS:sdram-memory-module;COMP:ddr-memory-module;COMP:ddr2-memory-module;COMP:ddr3-memory-module;COMP:sdram-memory-module;MODULE_LOAD;THREADSAFE; +file 31032 1696283614 memory-profiler.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:memory-profiler;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:memory_profiler;CLS:memory_profiler_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 25416 1696283614 microwire-eeprom.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:microwire-eeprom;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:microwire-eeprom;THREADSAFE; +file 25856 1696283614 mii-management-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:mii-management-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:mii-management-bus;MODULE_LOAD;THREADSAFE; +file 56776 1696283615 mii-transceiver.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:mii-transceiver;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:mii-transceiver;MODULE_LOAD;THREADSAFE; +file 15168 1696283687 mini_winsome.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283686;MOD:mini_winsome;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;SIMICS_START;THREADSAFE; +file 15168 1696283614 mmc-card-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:mmc-card-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:micron_mtfc4ggqdi_sdhc_card;CLS:micron_mtfc4ggqdi_emmc_card;CLS:micron_mtfc2ggqdi_emmc_card;CLS:micron_mtfc4gacaeam_emmc_card;CLS:micron_mtfc8gacaeam_emmc_card;CLS:micron_mtfc8gam_emmc_card;CLS:micron_mtfc16gap_emmc_card;CLS:micron_mtfc32gap_emmc_card;CLS:micron_mtfc64gap_emmc_card;CLS:micron_mtfc128gap_emmc_card;CLS:micron_mtfc64ggqdi_sdhc_card;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 36016 1696283615 ms1553-link-v2.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:ms1553-link-v2;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ms1553-link-v2-impl;CLS:ms1553-link-v2-endpoint;CLS:ms1553-link-v2-snoop-endpoint;CLS:ms1553_link_v2;COMP:ms1553_link_v2;MODULE_LOAD;THREADSAFE; +file 43128 1696283616 ms1553-snoop-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:ms1553-snoop-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:ms1553_snoop;THREADSAFE; +file 25720 1696283614 mtprof.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:mtprof;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:mtprof;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 129136 1696283617 nfs-server.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:nfs-server;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:nfs_server;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 22528 1696283615 notifier-example.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:notifier-example;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:tcp_server;CLS:connected_device;THREADSAFE; +file 15168 1696283614 old-breakpoint-manager.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:old-breakpoint-manager;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 81248 1696283618 onfi-flash.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283613;MOD:onfi-flash;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:onfi_flash;MODULE_LOAD;THREADSAFE; +file 82432 1696283618 os-awareness-interfaces.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:os-awareness-interfaces;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:osa_linux_software_info;PYIFACE:osa_linux_software_tracker_info;PYIFACE:osa_tracker_parameters;PYIFACE:osa_target_info;THREADSAFE; +file 161768 1696283694 os-awareness.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283688;MOD:os-awareness;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:osa_admin_emulator;CLS:os_awareness;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 67248 1696283907 partition-tracker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283902;MOD:partition-tracker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:partition_tracker;CLS:partition_mapper;CLS:partition_tracker_comp;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283615 pc-config.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pc-config;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pc-config;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 16832 1696283615 pc-shadow.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pc-shadow;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pc-shadow;MODULE_LOAD;THREADSAFE; +file 43880 1696283616 pci-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pci-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pci-bus;MODULE_LOAD;THREADSAFE; +file 15168 1696283615 pci-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pci-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pci_bcm5703c_comp;CLS:pci_bcm5704c_comp;CLS:pci_am79c973_comp;CLS:pci_vga_comp;CLS:pci_accel_vga_comp;CLS:pci_i21152_comp;CLS:pci_i82543gc_comp;CLS:pci_i82546bg_comp;CLS:pci_i82559_comp;CLS:pci_pd6729_comp;CLS:pci_dec21041_comp;CLS:pci_dec21143_comp;CLS:pci_dec21140;CLS:pci_dec21140_panel;CLS:pci_dec21140a_comp;COMP:pci_bcm5703c_comp;COMP:pci_bcm5704c_comp;COMP:pci_am79c973_comp;COMP:pci_vga_comp;COMP:pci_accel_vga_comp;COMP:pci_i21152_comp;COMP:pci_i82543gc_comp;COMP:pci_i82546bg_comp;COMP:pci_i82559_comp;COMP:pci_pd6729_comp;COMP:pci_dec21041_comp;COMP:pci_dec21143_comp;COMP:pci_dec21140;COMP:pci_dec21140_panel;COMP:pci_dec21140a_comp;MODULE_LOAD;THREADSAFE; +file 15168 1696283615 pci-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pci-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pci-bcm5703c;CLS:pci-bcm5704c;CLS:pci-dec21041;CLS:pci-dec21140a;CLS:pci-dec21143;CLS:pci-dec21140a-dml;CLS:pci-am79c973;CLS:pci-vga;CLS:pci-accel-vga;CLS:pci-i21152;CLS:pci-pd6729;CLS:pci-i82543gc;CLS:pci-i82546bg;CLS:pci-i82559;COMP:pci-bcm5703c;COMP:pci-bcm5704c;COMP:pci-dec21041;COMP:pci-dec21140a;COMP:pci-dec21143;COMP:pci-dec21140a-dml;COMP:pci-am79c973;COMP:pci-vga;COMP:pci-accel-vga;COMP:pci-i21152;COMP:pci-pd6729;COMP:pci-i82543gc;COMP:pci-i82546bg;COMP:pci-i82559;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283615 pci-proxy.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pci-proxy;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pci_proxy;CLS:pci_proxy_mf;MODULE_LOAD;THREADSAFE; +file 48680 1696283617 pcie-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pcie-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pcie-bus;CLS:pcie-switch;MODULE_LOAD;THREADSAFE; +file 256504 1696283625 pcie-downstream-port.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:pcie-downstream-port;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pcie-downstream-port;CLS:pcie-downstream-port-legacy;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283615 phy-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:phy-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:phy_comp;COMP:phy_comp;MODULE_LOAD;THREADSAFE; +file 15168 1696283615 phy-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283614;MOD:phy-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:phy-mii-transceiver;COMP:phy-mii-transceiver;MODULE_LOAD;THREADSAFE; +file 21128 1696283616 pipe-manager-example.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:pipe-manager-example;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:pipe_manager;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283616 probe-monitor.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:probe-monitor;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:probe_monitor;CLS:probe_streamer;CLS:probe_system_perfmeter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 29944 1696283616 process-filter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:process-filter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:process_filter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283616 process-histogram.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:process-histogram;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:process_histogram;CLS:process_histogram_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17488 1696283616 ram-tracer.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:ram-tracer;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ram_tracer;CLS:ram_tracer_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 53776 1696283617 real-network.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:real-network;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:rn-eth-bridge-tap;CLS:real-network-host;CLS:real-network-bridge;CLS:real_network_host_comp;CLS:real_network_bridge_comp;COMP:real-network-host;COMP:real-network-bridge;COMP:real_network_host_comp;COMP:real_network_bridge_comp;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 21040 1696283616 realtime.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:realtime;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:realtime;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 35824 1696283616 recorder.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:recorder;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:recorder;MODULE_LOAD;THREADSAFE; +file 16264 1696283616 replace-consoles.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:replace-consoles;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:patch_vga_interfaces;SIMICS_START;THREADSAFE; +file 15168 1696283616 sample-802-15-4-transceiver-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-802-15-4-transceiver-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_802_15_4_transceiver_comp;CLS:sample_802_15_4_panel;COMP:sample_802_15_4_transceiver_comp;COMP:sample_802_15_4_panel;MODULE_LOAD;THREADSAFE; +file 69528 1696283620 sample-802-15-4-transceiver.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-802-15-4-transceiver;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_802_15_4_transceiver;MODULE_LOAD;THREADSAFE; +file 15168 1696283616 sample-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_pci_card;COMP:sample_pci_card;MODULE_LOAD;THREADSAFE; +file 15168 1696283616 sample-cpci-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-cpci-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:cpci_backplane;COMP:cpci_backplane;MODULE_LOAD;THREADSAFE; +file 554424 1696283635 sample-device-c++.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-device-c++;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_device_cpp;CLS:sample_device_cpp_with_register_as_data;MODULE_LOAD;THREADSAFE; +file 16072 1696283616 sample-device-c.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-device-c;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample-device-c;MODULE_LOAD;THREADSAFE; +file 94848 1696283623 sample-device-dml.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-device-dml;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_device_dml;MODULE_LOAD;THREADSAFE; +file 54984 1696283619 sample-device-mixed.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-device-mixed;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_device_mixed;MODULE_LOAD;THREADSAFE; +file 94240 1696283622 sample-device-pkg-prio.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-device-pkg-prio;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_device_pkg_prio;MODULE_LOAD;THREADSAFE; +file 15168 1696283616 sample-device-python.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-device-python;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_device_python;MODULE_LOAD;THREADSAFE; +file 469792 1696283634 sample-dma-device-c++.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-dma-device-c++;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_dma_device_cpp;MODULE_LOAD;THREADSAFE; +file 129528 1696283623 sample-dma-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-dma-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_dma_device;MODULE_LOAD;THREADSAFE; +file 15168 1696283616 sample-dynamic-connectors.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-dynamic-connectors;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_dynamic_connectors;COMP:sample_dynamic_connectors;MODULE_LOAD;THREADSAFE; +file 49632 1696283619 sample-event-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-event-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_event_device;MODULE_LOAD;THREADSAFE; +file 137816 1696283625 sample-firewire-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-firewire-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_firewire_device;MODULE_LOAD;THREADSAFE; +file 31856 1696283619 sample-generic-message-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-generic-message-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_generic_message_device;MODULE_LOAD;THREADSAFE; +file 18248 1696283618 sample-i2c-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-i2c-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_i2c_device;MODULE_LOAD;THREADSAFE; +file 105616 1696283622 sample-i3c-devices.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283615;MOD:sample-i3c-devices;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample-i3c-target;CLS:sample_i3c_master;MODULE_LOAD;THREADSAFE; +file 15168 1696283616 sample-i3c-target-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-i3c-target-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_i3c_target_comp;COMP:sample_i3c_target_comp;MODULE_LOAD;THREADSAFE; +file 42448 1696283619 sample-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:sample;THREADSAFE; +file 68088 1696283620 sample-interrupt-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-interrupt-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_interrupt_device;MODULE_LOAD;THREADSAFE; +file 53808 1696283908 sample-linux-tracker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283903;MOD:sample-linux-tracker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_linux_tracker;CLS:sample_linux_mapper;CLS:sample_linux_tracker_comp;MODULE_LOAD;THREADSAFE; +file 16688 1696283617 sample-memhier.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-memhier;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample-memhier;THREADSAFE; +file 86328 1696283621 sample-notifier-c++.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-notifier-c++;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_notifier_cc;MODULE_LOAD;THREADSAFE; +file 43128 1696283620 sample-notifier-dml.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-notifier-dml;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_notifier_dml;MODULE_LOAD;THREADSAFE; +file 337960 1696283631 sample-pci-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-pci-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_pci_device;MODULE_LOAD;THREADSAFE; +file 120440 1696283627 sample-pcie-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-pcie-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_pcie_device;MODULE_LOAD;THREADSAFE; +file 1401280 1696283661 sample-pcie-sriov-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-pcie-sriov-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_pcie_sriov_device;MODULE_LOAD;THREADSAFE; +file 72960 1696283619 sample-risc.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-risc;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample-risc;CLS:sample-risc-core;MODULE_LOAD;THREADSAFE; +file 64968 1696283620 sample-serial-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-serial-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_serial_device;MODULE_LOAD;THREADSAFE; +file 32016 1696283619 sample-signal-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-signal-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_signal_device_impl;CLS:sample_signal_device;MODULE_LOAD;THREADSAFE; +file 15168 1696283617 sample-system-panel-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-system-panel-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_system_panel_component;CLS:sample_bitmap_panel;COMP:sample_system_panel_component;COMP:sample_bitmap_panel;MODULE_LOAD;THREADSAFE; +file 55616 1696283620 sample-timer-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-timer-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample_timer_device;MODULE_LOAD;THREADSAFE; +file 33264 1696283620 sample-transaction-atoms.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:sample-transaction-atoms;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;THREADSAFE; +file 16544 1696283617 sample-user-decoder.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-user-decoder;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample-user-decoder;THREADSAFE; +file 16512 1696283618 sample-x86-isa-extension.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283616;MOD:sample-x86-isa-extension;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sample-x86-isa-extension;MODULE_LOAD;THREADSAFE; +file 118328 1696283622 sata.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:sata;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sata;MODULE_LOAD;THREADSAFE; +file 156848 1696283620 sdl-console.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:sdl-console;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sdl-console;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 21744 1696283618 selfprof.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:selfprof;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:selfprof;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 31160 1696283618 ser-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:ser-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:ser-link-impl;CLS:ser-link-endpoint;CLS:ser_link;COMP:ser_link;MODULE_LOAD;THREADSAFE; +file 379560 1696283694 service-node.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283685;MOD:service-node;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:service-node;CLS:service-node-device;CLS:port-forward-outgoing-server;CLS:port-forward-incoming-server;CLS:std-service-node;CLS:service_node_comp;COMP:std-service-node;COMP:service_node_comp;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 16256 1696283618 set-memory.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:set-memory;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:set-memory;MODULE_LOAD;THREADSAFE; +file 21816 1696283619 signal-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:signal-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:signal-bus;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 22608 1696283618 signal-link.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:signal-link;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:signal_link_impl;CLS:signal_link_endpoint;CLS:signal_link;COMP:signal_link;MODULE_LOAD;THREADSAFE; +file 17784 1696283619 signal-to-interrupt.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:signal-to-interrupt;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:signal_to_interrupt;MODULE_LOAD;THREADSAFE; +file 25792 1696283619 simics-inspector.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simics-inspector;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sr_histogram;CLS:sr_histogram_connection;CLS:sr_ticks;CLS:sr_ticks_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283618 simics-nvme-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simics-nvme-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simics_nvme_comp;COMP:simics_nvme_comp;MODULE_LOAD;THREADSAFE; +file 749840 1696283642 simics-nvme-controller.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simics-nvme-controller;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simics_nvme_controller;MODULE_LOAD;THREADSAFE; +file 15168 1696283618 simics-telemetry.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simics-telemetry;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:telemetry_manager;MODULE_LOAD;THREADSAFE; +file 258416 1696283631 simics-uefi.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simics-uefi;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simics-uefi;MODULE_LOAD;THREADSAFE; +file 69768 1696283620 simicsfs-server.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simicsfs-server;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simicsfs_server;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 16360 1696283618 simple-byte-dump.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283617;MOD:simple-byte-dump;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple-byte-dump;MODULE_LOAD;THREADSAFE; +file 86808 1696283622 simple-cache-tool.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:simple-cache-tool;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple_cache_tool;CLS:simple_cache_connection;CLS:simple_cache;CLS:simple_directory;PYIFACE:simple_cache;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 27000 1696283621 simple-i2c-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:simple-i2c-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple_i2c_device;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 120640 1696283629 simple-pcie-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:simple-pcie-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple_pcie_device;MODULE_LOAD;THREADSAFE; +file 34192 1696283620 simple-scsi-disk.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:simple-scsi-disk;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple-scsi-disk;MODULE_LOAD;THREADSAFE; +file 43056 1696283621 simple-timing-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:simple-timing-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:simple_timing_v2;THREADSAFE; +file 20784 1696283619 simple-tty.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:simple-tty;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:simple-tty;THREADSAFE; +file 205960 1696283631 sja1000-can.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:sja1000-can;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sja1000_can;MODULE_LOAD;THREADSAFE; +file 33008 1696283622 snooper-helpers.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:snooper-helpers;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;THREADSAFE; +file 15168 1696283619 sparse-memory.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:sparse-memory;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:sparse-memory;MODULE_LOAD;THREADSAFE; +file 15168 1696283619 spi_checker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:spi_checker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:spi_checker;MODULE_LOAD;THREADSAFE; +file 67320 1696283622 state-assertion.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:state-assertion;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:state-assertion;MODULE_LOAD;THREADSAFE; +file 15168 1696283619 std-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283618;MOD:std-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:dummy_comp;CLS:etg_comp;CLS:etg_panel_comp;CLS:graphics_console_comp;CLS:host_serial_console_comp;CLS:ide_cdrom_comp;CLS:ide_disk_comp;CLS:mmc_card_comp;CLS:pcmcia_flash_disk_comp;CLS:sata_disk_comp;CLS:sata_cdrom_comp;CLS:server_console_comp;CLS:telnet_console_comp;CLS:text_console_comp;CLS:text_graphics_console_comp;COMP:dummy_comp;COMP:etg_comp;COMP:etg_panel_comp;COMP:graphics_console_comp;COMP:host_serial_console_comp;COMP:ide_cdrom_comp;COMP:ide_disk_comp;COMP:mmc_card_comp;COMP:pcmcia_flash_disk_comp;COMP:sata_disk_comp;COMP:sata_cdrom_comp;COMP:server_console_comp;COMP:telnet_console_comp;COMP:text_console_comp;COMP:text_graphics_console_comp;MODULE_LOAD;THREADSAFE; +file 51208 1696283622 system-panel-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:system-panel-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:system_panel;PYIFACE:system_panel_object;PYIFACE:system_panel_layout;PYIFACE:system_panel_state_manager;PYIFACE:system_panel_frontend;THREADSAFE; +file 15168 1696283620 system-panel-text.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:system-panel-text;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:text_panel_frontend;MODULE_LOAD;THREADSAFE; +file 60536 1696283623 system-panel.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:system-panel;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:system_panel_bool;CLS:system_panel_number;CLS:system_panel_state_manager;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283620 system-perfmeter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:system-perfmeter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;SIMICS_START;THREADSAFE; +file 15168 1696283676 systemc-commands.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283675;MOD:systemc-commands;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;MODULE_LOAD;THREADSAFE; +file 131552 1696283682 systemc-interfaces.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283677;MOD:systemc-interfaces;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:sc_trace;PYIFACE:sc_object;PYIFACE:sc_module;PYIFACE:sc_process;PYIFACE:sc_initiator_gasket;PYIFACE:sc_export;PYIFACE:sc_port;PYIFACE:sc_process_profiler;PYIFACE:sc_process_profiler_control;PYIFACE:sc_memory_profiler;PYIFACE:sc_memory_profiler_control;PYIFACE:sc_signal_read;PYIFACE:sc_signal_write;PYIFACE:sc_tlm_fw_transport;PYIFACE:sc_tlm_bw_transport;PYIFACE:sc_vector;PYIFACE:sc_event;PYIFACE:sc_register_access;PYIFACE:sc_memory_access;PYIFACE:sc_simcontext;PYIFACE:sc_version;PYIFACE:sc_gasket_info;PYIFACE:sc_provider_controller;PYIFACE:sc_tool_connection;MODULE_LOAD;THREADSAFE; +file 15168 1696283620 systemc-tools.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:systemc-tools;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:systemc_filter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 1852176 1696283990 tcf-agent.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283910;MOD:tcf-agent;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:tcf-agent;CLS:tcf-context-proxy;CLS:tcf-serial-tee;PYIFACE:agent_proxy_finder;PYIFACE:tcf_breakpoints;PYIFACE:tcf_pathmap;PYIFACE:tcf_memorymap;PYIFACE:tcf_elf;PYIFACE:tcf_pe;PYIFACE:tcf_uefi_tracker_inspection;PYIFACE:tcf_trace;PYIFACE:tcf_target_identification;PYIFACE:debug_internal;PYIFACE:tcf_serial_tap;PYIFACE:symdebug;PYIFACE:run_control;PYIFACE:debug_config;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 45568 1696283621 telnet-console.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:telnet-console;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:telnet_console;CLS:server-console;MODULE_LOAD;THREADSAFE; +file 30320 1696283620 telnet-frontend.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:telnet-frontend;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:telnet_frontend;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17936 1696283621 test-cdrom-media-wrapper.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:test-cdrom-media-wrapper;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:test_cdrom_media_wrapper;THREADSAFE; +file 21840 1696283621 test-generic-message-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:test-generic-message-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:test_generic_message_device;THREADSAFE; +file 15720 1696283620 test-probe.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:test-probe;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:c_test_probe;CLS:py_test_probe;MODULE_LOAD;THREADSAFE; +file 22032 1696283621 test-usb-device.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:test-usb-device;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:test_usb_device;THREADSAFE; +file 136288 1696283903 textcon.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283896;MOD:textcon;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:textcon;CLS:text-frontend-winsome;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 35568 1696283620 time-server-c.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:time-server-c;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:time-server;SIMICS_START;THREADSAFE; +file 21120 1696283620 trace-sync.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:trace-sync;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:trace-sync;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 49216 1696283621 trace.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:trace;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:trace-mem-hier;CLS:base-trace-mem-hier;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15832 1696283620 trans-staller.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:trans-staller;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:trans-staller;THREADSAFE; +file 37912 1696283623 tsc-update-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:tsc-update-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:tsc_update;THREADSAFE; +file 229696 1696283917 uefi-fw-tracker.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283903;MOD:uefi-fw-tracker;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:uefi_fw_tracker;CLS:uefi_fw_mapper;CLS:uefi_fw_tracker_comp;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283620 usb-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:usb-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:usb_disk_comp;CLS:usb_tablet_component;COMP:usb_disk_comp;COMP:usb_tablet_component;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283620 usb-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283619;MOD:usb-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:usb-disk;CLS:usb-tablet-comp;COMP:usb-disk;COMP:usb-tablet-comp;MODULE_LOAD;THREADSAFE; +file 45384 1696283623 usb-disk.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:usb-disk;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:usb_disk;THREADSAFE; +file 15168 1696283621 usb-hid-components.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:usb-hid-components;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:usb_mouse_comp;CLS:usb_keyboard_comp;CLS:usb_hs_keyboard_comp;COMP:usb_mouse_comp;COMP:usb_keyboard_comp;COMP:usb_hs_keyboard_comp;MODULE_LOAD;THREADSAFE; +file 90992 1696283624 usb-input-devices.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:usb-input-devices;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:usb_mouse;CLS:usb_keyboard;CLS:usb_hs_keyboard;MODULE_LOAD;THREADSAFE; +file 36304 1696283623 usb-tablet.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:usb-tablet;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:usb_tablet;MODULE_LOAD;THREADSAFE; +file 118664 1696283624 vga-pci.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:vga-pci;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:vga_pci;MODULE_LOAD;THREADSAFE; +file 80280 1696283623 vga.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:vga;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:vga;MODULE_LOAD;THREADSAFE; +file 15168 1696283621 virtio-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:virtio-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:virtio_pcie_net_comp;CLS:virtio_pcie_blk_comp;CLS:virtio_mmio_blk_comp;CLS:virtio_pcie_fs_comp;COMP:virtio_pcie_net_comp;COMP:virtio_pcie_blk_comp;COMP:virtio_mmio_blk_comp;COMP:virtio_pcie_fs_comp;MODULE_LOAD;THREADSAFE; +file 2105224 1696283641 virtio.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:virtio;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:virtio_mmio_blk;CLS:virtio_mmio_net;CLS:virtio_mmio_fs;CLS:virtio-mmio-entropy;CLS:virtio_pcie_blk;CLS:virtio_pcie_net;CLS:virtio_pcie_fs;MODULE_LOAD;THREADSAFE; +file 48040 1696283624 virtiofs-fuse.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283621;MOD:virtiofs-fuse;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:virtiofs_fuse;PYIFACE:virtiofs_fuse;MODULE_LOAD;THREADSAFE; +file 35568 1696283623 vmcom.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:vmcom;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:vmcom;MODULE_LOAD;THREADSAFE; +file 15168 1696283621 vtune-measurement.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:vtune-measurement;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:vtune_measurement;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 148840 1696283623 x11-console.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x11-console;ABI:6247;API:5;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:gfx-console;CLS:x11-console;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 2167008 1696283646 x2apic-c++.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283645;MOD:x2apic-c++;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;CLS:x2apic_v2;CLS:apic_bus_v2;MODULE_LOAD;THREADSAFE; +file 17312 1696283621 x86-branch-profiler.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86-branch-profiler;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86_branch_profiler;CLS:x86_branch_prof_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 15168 1696283622 x86-comp.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86-comp;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86_chassis;CLS:motherboard_x86_simple;CLS:motherboard_x86_simple_no_apic;COMP:x86_chassis;COMP:motherboard_x86_simple;COMP:motherboard_x86_simple_no_apic;MODULE_LOAD;THREADSAFE; +file 15168 1696283621 x86-mode-filter.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86-mode-filter;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86_mode_filter;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 17088 1696283622 x86-mode-histogram.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86-mode-histogram;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86_mode_histogram;CLS:x86_mode_histogram_connection;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 33680 1696283624 x86-rar-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283621;MOD:x86-rar-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_rar_interrupt;THREADSAFE; +file 34096 1696283624 x86-reset-bus-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283621;MOD:x86-reset-bus-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_reset_bus;THREADSAFE; +file 16616 1696283622 x86-reset-bus.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86-reset-bus;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86-reset-bus;MODULE_LOAD;THREADSAFE; +file 33384 1696283624 x86-tsc-cycles-interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283621;MOD:x86-tsc-cycles-interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_tsc_cycles;THREADSAFE; +file 15928 1696283621 x86_broadcast.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86_broadcast;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86_broadcast;MODULE_LOAD;THREADSAFE; +file 30672 1696283622 x86_tlb.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283620;MOD:x86_tlb;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x86-tlb;MODULE_LOAD;SIMICS_START;THREADSAFE; +file 197104 1696283632 x86ex_interface.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283625;MOD:x86ex_interface;ABI:6247;API:6;PY_VERSION:3;PY_MINOR_VERSION:9;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;PYIFACE:x86_txt_chipset;PYIFACE:x86_unplug;PYIFACE:x86_unplug_v2;PYIFACE:x86_external_reset;PYIFACE:x86_smm_notification;PYIFACE:apic_bus_v2;PYIFACE:apic_timer;PYIFACE:x86_sai;PYIFACE:mktme;PYIFACE:apic_to_apic_bus;PYIFACE:apic_bus_to_apic;PYIFACE:x86_cstate_notification_v2;PYIFACE:x86_monitor_notification;PYIFACE:x86_monitor;PYIFACE:x86_vcounters;THREADSAFE; +file 16456 1696283622 x87_exception.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283621;MOD:x87_exception;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:x87_exception;MODULE_LOAD;THREADSAFE; +file 143320 1696283624 xterm-console.so +cap VER:5000;BLD:6247;BLD_NS:simics;BUILDDATE:1696283621;MOD:xterm-console;ABI:6247;API:6;PY_VERSION:0;PY_MINOR_VERSION:0;HOSTTYPE:linux64;USRVER:be6b710740621c16470167a8af78aceb6e22da6b;CLS:xterm-console;CLS:text-console;MODULE_LOAD;SIMICS_START;THREADSAFE; diff --git a/simics-api-sys/Cargo.toml b/modules/tsffs/src/simics/simics-api-sys/Cargo.toml similarity index 61% rename from simics-api-sys/Cargo.toml rename to modules/tsffs/src/simics/simics-api-sys/Cargo.toml index 9a22b5bc..0506e1e5 100644 --- a/simics-api-sys/Cargo.toml +++ b/modules/tsffs/src/simics/simics-api-sys/Cargo.toml @@ -15,18 +15,17 @@ repository.workspace = true version.workspace = true -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] +[build-dependencies] +anyhow.workspace = true +bindgen = { git = "https://github.com/novafacing/rust-bindgen", branch = "f16" } +scraper = "0.18.1" +walkdir = "2.4.0" [features] -"6.0.163" = [] -"6.0.164" = [] -"6.0.165" = [] -"6.0.166" = [] -"6.0.167" = [] -"6.0.168" = [] -"6.0.169" = [] -"6.0.170" = [] -"6.0.171" = [] -"6.0.172" = [] +default = [] +link = [] +auto = [] + +[dev-dependencies] +anyhow.workspace = true +raw-cstr.workspace = true diff --git a/simics-api-sys/README.md b/modules/tsffs/src/simics/simics-api-sys/README.md similarity index 100% rename from simics-api-sys/README.md rename to modules/tsffs/src/simics/simics-api-sys/README.md diff --git a/modules/tsffs/src/simics/simics-api-sys/build.rs b/modules/tsffs/src/simics/simics-api-sys/build.rs new file mode 100644 index 00000000..1c1714c3 --- /dev/null +++ b/modules/tsffs/src/simics/simics-api-sys/build.rs @@ -0,0 +1,752 @@ +//! Build script for the low-level sys bindings crate to the SIMCS API implemented in: +//! +//! - libsimics-common.so +//! - libvtutils.so +//! +//! This build script requires the following environment variables to be set: +//! +//! - `SIMICS_BASE` +//! - `PYTHON3_INCLUDE` +//! - `INCLUDE_PATHS` +//! - `PYTHON3_LDFLAGS` +//! - `LDFLAGS` +//! - `LIBS` +//! +//! For test and development builds (e.g. under rust-analyzer), these values can be manually set +//! in the build environment, e.g. through the workspace's `.vscode/settings.json` file. +//! +//! Given a SIMICS installation directory /home/user/simics/ and a latest SIMICS base +//! version of 6.0.174, the variables would be set like so: +//! +//! - `SIMICS_BASE=/home/user/simics/simics-6.0.174` +//! - `PYTHON3_INCLUDE=-I/home/user/simics/simics-6.0.174/linux64/include/python3.9` +//! - `INCLUDE_PATHS=/home/user/simics/simics-6.0.174/src/include` +//! - `PYTHON3_LDFLAGS=/home/user/simics/simics-6.0.174/linux64/sys/lib/libpython3.so` +//! - NOTE: This is *not* actually the shared object that needs to be linked against, we must +//! link against the versioned shared object in the same directory e.g. libpython3.9.so.1.0. +//! - `LDFLAGS=-L/home/user/simics/simics-6.0.174/linux64/bin -z noexecstack -z relro -z now` +//! - `LIBS=-lsimics-common -lvtutils` + +use anyhow::{anyhow, bail, ensure, Result}; +use bindgen::{ + callbacks::{MacroParsingBehavior, ParseCallbacks}, + AliasVariation, Builder, EnumVariation, FieldVisibilityKind, MacroTypeVariation, + NonCopyUnionStyle, +}; +use scraper::{Html, Selector}; +use std::{ + collections::HashSet, + env::var, + ffi::OsStr, + fs::{read, read_dir, write}, + iter::once, + path::{Path, PathBuf}, +}; +use walkdir::WalkDir; + +// NOTE: The following environment variables are set under the SIMICS package make system +// +// PYTHON: The path to SIMICS's mini-python +// PYTHON3_LDFLAGS: The path to SIMICS's libpython3.so. Starting in 6.0.177, this variable can +// be empty, in which case we use a fallback. +// LIBS: `-lsimics-common -lvtutils` +// CXX_INCLUDE_PATHS: Path to SIMICS_BASE/linux64/api +// PYTHON3: The path to SIMICS's mini-python +// SIMICS_WORKSPACE: The path to the package root +// MOD_MAKEFILE: The makefile being invoked to build the module currently being built +// SIMICS_BASE: The path to the simics base version for the package/project +// DMLC: The path to dml python +// PYTHON3_INCLUDE: -I flag for the path to SIMICS's python3 include directory +// DML_INCLUDE_PATHS: The path to the dml api include directory +// SIMICS_MAJOR_VERSION: The simics major version +// SIMICS_PROJECT: The path to the simics project +// PYTHON_LDFLAGS: The path to SIMICS's libpython3.so +// MODULE_MAKEFILE: The path to the module.mk makefile in simics base +// SRC_BASE: The path to the modules directory for the package +// CCLDFLAGS_DYN: CC/LD flags for dynamic linking +// LDFLAGS: Linker flags to link to libsimics and friends +// SIMICS_PACKAGE_LIST: The path to the .package-list file for this package +// SIMICS_MODEL_BUILDER: The simics used to build models +// PYTHON_INCLUDE: -I flag for the path to SIMICS's python3 include directory +// DMLC_DIR: The path to the simics bin directory containing the dml compiler +// PY2TO3: Path to the py-2to3 tool +// LDFLAGS_PY3: -L flag to include simics base's bin directory +// INCLUDE_PATHS: The path to the SIMICS base include directory + +/// Name for the environment variable set by the SIMICS build system to the path to the +/// simics base package. We actually use SIMICS_MODEL_BUILDER here, because we are indeed +/// building a model. +const SIMICS_BASE_ENV: &str = "SIMICS_BASE"; +/// Name for the environment variable set by the SIMICS build system to the flag to +/// include e.g. -I SIMICS_BASE/linux64/include/python3.9/ +const PYTHON3_INCLUDE_ENV: &str = "PYTHON3_INCLUDE"; +/// Name for the ldflags environment variable, which will point to +/// Name for the environment variable by the SIMICS build system to the path to the +/// simics include directory e.g. SIMICS_BASE/src/include/ +const INCLUDE_PATHS_ENV: &str = "INCLUDE_PATHS"; + +/// Name for the environment variable set by the SIMICS build system to the libpython3.so library +const PYTHON3_LDFLAGS_ENV: &str = "PYTHON3_LDFLAGS"; +/// Name for the LDFLAGS environment variable set by the SIMICS build system containing +/// the link search path for the libsimics library, among other flags. e.g. -LPATH -z noexecstack +const LDFLAGS_ENV: &str = "LDFLAGS"; +/// Name for the environment variable containing shared library link flags for simics common and +/// vtutils +const LIBS_ENV: &str = "LIBS"; + +/// Name for the environment variable set by cargo to the path to the OUT_DIR used for intermediate +/// build results +const OUT_DIR_ENV: &str = "OUT_DIR"; +/// The name of the file generated when generating bindings in auto (package-time) mode. +const AUTO_BINDINGS_FILENAME: &str = "bindings-auto.rs"; +/// The name of the file generated including the automatic simics version declaration when +/// generating bindings in auto (package-time) mode. +const AUTO_BINDINGS_VERSION_FILENAME: &str = "version-auto.rs"; + +#[cfg(not(windows))] +/// The name of the binary/library/object subdirectory on linux systems +const HOST_DIRNAME: &str = "linux64"; +#[cfg(windows)] +/// The name of the binary/library/object subdirectory on windows systems +const HOST_DIRNAME: &str = "win64"; + +/// The path in SIMICS_BASE/HOST_TYPE/ of the HTML file containing HAP documentation required +/// for high level codegen of builtin HAPs +const HAP_DOC_PATH: &str = "doc/html/rm-base/rm-haps.html"; + +// https://github.com/rust-lang/rust-bindgen/issues/687#issuecomment-1312298570 +const IGNORE_MACROS: [&str; 20] = [ + "FE_DIVBYZERO", + "FE_DOWNWARD", + "FE_INEXACT", + "FE_INVALID", + "FE_OVERFLOW", + "FE_TONEAREST", + "FE_TOWARDZERO", + "FE_UNDERFLOW", + "FE_UPWARD", + "FP_INFINITE", + "FP_INT_DOWNWARD", + "FP_INT_TONEAREST", + "FP_INT_TONEARESTFROMZERO", + "FP_INT_TOWARDZERO", + "FP_INT_UPWARD", + "FP_NAN", + "FP_NORMAL", + "FP_SUBNORMAL", + "FP_ZERO", + "IPPORT_RESERVED", +]; + +const HDR_DENYLIST: [&str; 9] = [ + // Most of these are denylisted because they include follower-time.h and it's :/ broken + "global.h", + "vtutils.h", + "libfollower.h", + "follower-time.h", + "follower.h", + "link-endpoint.h", + "data-structs.h", + // slave-time.h/slave.h is also broken (it is the old name for follower) + "slave-time.h", + "slave.h", +]; + +#[derive(Debug)] +struct IgnoreMacros(HashSet); + +impl ParseCallbacks for IgnoreMacros { + fn will_parse_macro(&self, name: &str) -> MacroParsingBehavior { + if self.0.contains(name) { + MacroParsingBehavior::Ignore + } else { + MacroParsingBehavior::Default + } + } +} + +impl IgnoreMacros { + fn new() -> Self { + Self(IGNORE_MACROS.into_iter().map(|s| s.to_string()).collect()) + } +} + +fn generate_include_wrapper(simics_include_path: P, hap_code: S) -> Result +where + P: AsRef, + S: AsRef, +{ + let simics_include_path = simics_include_path.as_ref().to_path_buf().canonicalize()?; + let mut include_paths = WalkDir::new(&simics_include_path) + .into_iter() + .filter_map(|p| p.ok()) + .filter_map(|p| { + let simics_include_path = &simics_include_path; + match p.path().extension() { + Some(e) => { + if e == "h" { + match p.path().canonicalize() { + Ok(p) => p.strip_prefix(simics_include_path).map_or_else( + |e| { + eprintln!( + "cargo:warning=Failed to strip prefix {} from {}: {}", + simics_include_path.display(), + p.display(), + e + ); + None:: + }, + |p| Some(p.to_path_buf()), + ), + Err(e) => { + eprintln!( + "cargo:warning=Failed to canonicalize path {}: {}", + p.path().display(), + e + ); + None + } + } + } else { + eprintln!( + "cargo:warning=Ignoring path {}, no '.h' extension", + p.path().display() + ); + None + } + } + None => { + eprintln!( + "cargo:warning=Ignoring path {}, no extension", + p.path().display() + ); + None + } + } + }) + .collect::>(); + + // We need to move python-header.h to the beginning of the list + if let Some(python_hdr_pos) = include_paths + .iter() + .position(|p| p.file_name() == Some(OsStr::new("python-header.h"))) + { + include_paths.swap(0, python_hdr_pos); + } + + HDR_DENYLIST.iter().for_each(|le| { + if let Some(pos) = include_paths + .iter() + .position(|p| p.file_name() == Some(OsStr::new(le))) + { + include_paths.remove(pos); + } + }); + + let include_stmts = include_paths + .iter() + .map(|p| format!("#include <{}>", p.display())) + .collect::>(); + let wrapper = include_stmts.join("\n") + "\n" + hap_code.as_ref(); + + println!("{wrapper}"); + + Ok(wrapper) +} + +/// Get the only subdirectory of a directory, if only one exists. If zero or more than one subdirectories +/// exist, returns an error +fn subdir

(dir: P) -> Result +where + P: AsRef, +{ + let subdirs = read_dir(dir)? + .filter_map(|p| p.ok()) + .map(|p| p.path()) + .filter(|p| p.is_dir()) + .collect::>(); + ensure!( + subdirs.len() == 1, + "Expected exactly 1 sub-directory, found {}", + subdirs.len() + ); + + subdirs + .first() + .cloned() + .ok_or_else(|| anyhow!("No sub-directories found")) +} + +fn main() -> Result<()> { + println!("cargo:rerun-if-changed=build.rs"); + + let base_dir_path = PathBuf::from( + var(SIMICS_BASE_ENV) + .map_err(|e| anyhow!("No environment variable {SIMICS_BASE_ENV} found: {e}"))?, + ); + + ensure!( + base_dir_path.is_dir(), + "{} is not a directory", + base_dir_path.display() + ); + + let hap_doc_path = base_dir_path.join(HOST_DIRNAME).join(HAP_DOC_PATH); + + let hap_document = + Html::parse_document(&String::from_utf8(read(&hap_doc_path).map_err(|e| { + anyhow!( + "Error reading document path {} to extract HAP definitions: {e}", + hap_doc_path.display() + ) + })?)?); + + let haps_selector = Selector::parse(r#"article"#).unwrap(); + let haps_id_selector = Selector::parse(r#"h2"#).unwrap(); + let section_selector = Selector::parse(r#"section"#).unwrap(); + let hap_code_selector = Selector::parse(r#"pre"#).unwrap(); + let hap_description_selector = Selector::parse(r#"h3"#).unwrap(); + let hap_index_selector = Selector::parse(r#"code"#).unwrap(); + + let haps_article = hap_document.select(&haps_selector).next().unwrap(); + let haps_names = haps_article + .select(&haps_id_selector) + .filter_map(|h| h.value().id()) + .collect::>(); + let haps_sections = haps_article.select(§ion_selector).collect::>(); + let haps_code_indices_descriptions = haps_sections + .iter() + .map(|s| { + let code = s + .select(&hap_code_selector) + .next() + .unwrap() + .inner_html() + .trim() + .to_string(); + let maybe_index = s + .select(&hap_index_selector) + .next() + .map(|i| i.inner_html().trim().to_string()); + let maybe_description = s + .select(&hap_description_selector) + .last() + .and_then(|i| i.next_sibling()) + .and_then(|n| n.value().as_text().map(|t| t.trim().to_string())); + (code, maybe_index, maybe_description) + }) + .collect::>(); + + let hap_code = haps_names + .iter() + .zip(haps_code_indices_descriptions.iter()) + .map(|(name, (code, maybe_index, maybe_description))| { + let mut hap_name_name = name.to_ascii_uppercase(); + hap_name_name += "_HAP_NAME"; + let mut hap_callback_name = name.to_ascii_lowercase(); + hap_callback_name += "_hap_callback"; + let code = code + .replace("(*)", &format!("(*{})", hap_callback_name)) + .replace(['/', '-'], "_"); + let comment = format!( + "/**\n * Index: {}\n * Description: {}\n */", + maybe_index + .as_ref() + .unwrap_or(&"Indices not supported".to_string()), + maybe_description + .as_ref() + .unwrap_or(&"No description".to_string()) + ); + + format!( + "#define {} \"{}\"\n{}\ntypedef {}\n", + hap_name_name, name, comment, code + ) + }) + .collect::(); + + let simics_base_version = base_dir_path + .file_name() + .ok_or_else(|| anyhow!("No file name found in SIMICS base path"))? + .to_str() + .ok_or_else(|| anyhow!("Could not convert file name to string"))? + .split('-') + .last() + .ok_or_else(|| anyhow!("Could not split to obtain version: SIMICS base directory may not be in the format simics-X.X.XXX"))? + .to_string(); + + let simics_base_version_const_declaration = format!( + r#"pub const SIMICS_VERSION: &str = "{}";"#, + simics_base_version + ); + + let out_dir_path = PathBuf::from( + var(OUT_DIR_ENV) + .map_err(|e| anyhow!("No environment variable {OUT_DIR_ENV} found: {e}"))?, + ); + + let bindings_file_path = out_dir_path.join(AUTO_BINDINGS_FILENAME); + let version_file_path = out_dir_path.join(AUTO_BINDINGS_VERSION_FILENAME); + + write(version_file_path, simics_base_version_const_declaration)?; + + let include_paths_env = var(INCLUDE_PATHS_ENV).or_else(|e| { + println!("cargo:warning=No environment variable {INCLUDE_PATHS_ENV} set. Using default include paths: {e}"); + base_dir_path + .join("src") + .join("include") + .to_str() + .map(|s| s.to_string()) + .ok_or_else(|| anyhow!("Could not convert path to string")) + })?; + + let include_paths = PathBuf::from(&include_paths_env); + + let wrapper_contents = generate_include_wrapper(include_paths, hap_code)?; + + let bindings = + Builder::default() + .clang_arg(var(PYTHON3_INCLUDE_ENV).or_else(|e| { + println!("cargo:warning=No environment variable {PYTHON3_INCLUDE_ENV} set. Using default include paths: {e}"); + subdir(base_dir_path + .join(HOST_DIRNAME) + .join("include")) + .and_then(|p| { + p.to_str() + .map(|s| format!("-I{}", s)) + .ok_or_else(|| anyhow!("Could not convert path to string")) + }) + })?) + .clang_arg(format!("-I{}", include_paths_env,)) + .clang_arg("-fretain-comments-from-system-headers") + .clang_arg("-fparse-all-comments") + // We don't care at all what warnings simics has if they aren't errors :) + .clang_arg("-Wno-everything") + .default_visibility(FieldVisibilityKind::Public) + .default_alias_style(AliasVariation::TypeAlias) + .default_enum_style(EnumVariation::Rust { + non_exhaustive: false, + }) + .default_macro_constant_type(MacroTypeVariation::Unsigned) + .default_non_copy_union_style(NonCopyUnionStyle::BindgenWrapper) + .derive_default(true) + .derive_hash(true) + .derive_partialord(true) + .derive_ord(true) + .derive_eq(true) + .derive_partialeq(true) + .generate_comments(true) + .header_contents("wrapper.h", &wrapper_contents) + // NOTE: These callbacks are required to emit `cargo:rerun-if-changed` + // statements, so we do not need to use them in this script. If you want to + // repurpose this script to use in a `build.rs`, you should re-enable this + // line: + // .parse_callbacks(Box::new(CargoCallbacks)) + .parse_callbacks(Box::new(IgnoreMacros::new())) + // These functions and types use (i|u)128 which isn't FFI-safe, we block them because the warnings + // are not important and annoying to parse through + .blocklist_function("qecvt") + .blocklist_function("qfcvt") + .blocklist_function("qgcvt") + .blocklist_function("qecvt_r") + .blocklist_function("qfcvt_r") + .blocklist_function("qgcvt_r") + .blocklist_function("strtold") + .blocklist_function("__acoshl") + .blocklist_function("acoshl") + .blocklist_function("__acosl") + .blocklist_function("acosl") + .blocklist_function("__asinhl") + .blocklist_function("asinhl") + .blocklist_function("__asinl") + .blocklist_function("asinl") + .blocklist_function("__atan2l") + .blocklist_function("atan2l") + .blocklist_function("__atanhl") + .blocklist_function("atanhl") + .blocklist_function("__atanl") + .blocklist_function("atanl") + .blocklist_function("__cbrtl") + .blocklist_function("cbrtl") + .blocklist_function("__ceill") + .blocklist_function("ceill") + .blocklist_function("__copysignl") + .blocklist_function("copysignl") + .blocklist_function("__coshl") + .blocklist_function("coshl") + .blocklist_function("__cosl") + .blocklist_function("cosl") + .blocklist_function("__dreml") + .blocklist_function("dreml") + .blocklist_function("__erfcl") + .blocklist_function("erfcl") + .blocklist_function("__erfl") + .blocklist_function("erfl") + .blocklist_function("__exp2l") + .blocklist_function("exp2l") + .blocklist_function("__expl") + .blocklist_function("expl") + .blocklist_function("__expm1l") + .blocklist_function("expm1l") + .blocklist_function("__fabsl") + .blocklist_function("fabsl") + .blocklist_function("__fdiml") + .blocklist_function("fdiml") + .blocklist_function("__finitel") + .blocklist_function("finitel") + .blocklist_function("__floorl") + .blocklist_function("floorl") + .blocklist_function("__fmal") + .blocklist_function("fmal") + .blocklist_function("__fmaxl") + .blocklist_function("fmaxl") + .blocklist_function("__fminl") + .blocklist_function("fminl") + .blocklist_function("__fmodl") + .blocklist_function("fmodl") + .blocklist_function("__fpclassifyl") + .blocklist_function("__frexpl") + .blocklist_function("frexpl") + .blocklist_function("__gammal") + .blocklist_function("gammal") + .blocklist_function("__hypotl") + .blocklist_function("hypotl") + .blocklist_function("__ilogbl") + .blocklist_function("ilogbl") + .blocklist_function("__iseqsigl") + .blocklist_function("__isinfl") + .blocklist_function("isinfl") + .blocklist_function("__isnanl") + .blocklist_function("isnanl") + .blocklist_function("__issignalingl") + .blocklist_function("__j0l") + .blocklist_function("j0l") + .blocklist_function("__j1l") + .blocklist_function("j1l") + .blocklist_function("__jnl") + .blocklist_function("jnl") + .blocklist_function("__ldexpl") + .blocklist_function("ldexpl") + .blocklist_function("__lgammal") + .blocklist_function("lgammal") + .blocklist_function("__lgammal_r") + .blocklist_function("lgammal_r") + .blocklist_function("__llrintl") + .blocklist_function("llrintl") + .blocklist_function("__llroundl") + .blocklist_function("llroundl") + .blocklist_function("__log10l") + .blocklist_function("log10l") + .blocklist_function("__log1pl") + .blocklist_function("log1pl") + .blocklist_function("__log2l") + .blocklist_function("log2l") + .blocklist_function("__logbl") + .blocklist_function("logbl") + .blocklist_function("__logl") + .blocklist_function("logl") + .blocklist_function("__lrintl") + .blocklist_function("lrintl") + .blocklist_function("__lroundl") + .blocklist_function("lroundl") + .blocklist_function("__modfl") + .blocklist_function("modfl") + .blocklist_function("__nanl") + .blocklist_function("nanl") + .blocklist_function("__nearbyintl") + .blocklist_function("nearbyintl") + .blocklist_function("__nextafterl") + .blocklist_function("nextafterl") + .blocklist_function("__nexttoward") + .blocklist_function("nexttoward") + .blocklist_function("__nexttowardf") + .blocklist_function("nexttowardf") + .blocklist_function("__nexttowardl") + .blocklist_function("nexttowardl") + .blocklist_function("__powl") + .blocklist_function("powl") + .blocklist_function("__remainderl") + .blocklist_function("remainderl") + .blocklist_function("__remquol") + .blocklist_function("remquol") + .blocklist_function("__rintl") + .blocklist_function("rintl") + .blocklist_function("__roundl") + .blocklist_function("roundl") + .blocklist_function("__scalbl") + .blocklist_function("scalbl") + .blocklist_function("__scalblnl") + .blocklist_function("scalblnl") + .blocklist_function("__scalbnl") + .blocklist_function("scalbnl") + .blocklist_function("__signbitl") + .blocklist_function("__significandl") + .blocklist_function("significandl") + .blocklist_function("__sinhl") + .blocklist_function("sinhl") + .blocklist_function("__sinl") + .blocklist_function("sinl") + .blocklist_function("__sqrtl") + .blocklist_function("sqrtl") + .blocklist_function("__tanhl") + .blocklist_function("tanhl") + .blocklist_function("__tanl") + .blocklist_function("tanl") + .blocklist_function("__tgammal") + .blocklist_function("tgammal") + .blocklist_function("__truncl") + .blocklist_function("truncl") + .blocklist_function("wcstold") + .blocklist_function("__y0l") + .blocklist_function("y0l") + .blocklist_function("__y1l") + .blocklist_function("y1l") + .blocklist_function("__ynl") + .blocklist_function("ynl") + .blocklist_item("M_E") + .blocklist_item("M_LOG2E") + .blocklist_item("M_LOG10E") + .blocklist_item("M_LN2") + .blocklist_item("M_LN10") + .blocklist_item("M_PI") + .blocklist_item("M_PI_2") + .blocklist_item("M_PI_4") + .blocklist_item("M_1_PI") + .blocklist_item("M_2_PI") + .blocklist_item("M_2_SQRTPI") + .blocklist_item("M_SQRT2") + .blocklist_item("M_SQRT1_2") + .blocklist_item("Py_MATH_PIl") + .blocklist_item("Py_MATH_PI") + .blocklist_item("Py_MATH_El") + .blocklist_item("Py_MATH_E") + .blocklist_item("Py_MATH_TAU") + // Blocklisted because the doc comments cause doc tests to fail + .blocklist_function("_PyErr_TrySetFromCause") + // Blocklisted because packed and align reprs differ + .blocklist_type("__mingw_ldbl_type_t") + .bitfield_enum("event_class_flag_t") + .bitfield_enum("micro_checkpoint_flags_t") + .bitfield_enum("access_t") + .bitfield_enum("breakpoint_flag") + .bitfield_enum("save_flags_t") + .generate()?; + + bindings.write_to_file(bindings_file_path)?; + + if cfg!(feature = "link") { + let base_dir_path = PathBuf::from( + var(SIMICS_BASE_ENV) + .map_err(|e| anyhow!("No environment variable {SIMICS_BASE_ENV} found: {e}"))?, + ); + + ensure!( + base_dir_path.is_dir(), + "{} is not a directory", + base_dir_path.display() + ); + + let libpython_path = + PathBuf::from(var(PYTHON3_LDFLAGS_ENV).map_err(|e| { + anyhow!("No environment variable {PYTHON3_LDFLAGS_ENV} found: {e}") + }).and_then(|v| if v.is_empty() { bail!("Environment variable {PYTHON3_LDFLAGS_ENV} is empty") } else { Ok(v) }).or_else(|e| { + println!("cargo:warning=No environment variable {INCLUDE_PATHS_ENV} set. Using default include paths: {e}"); + base_dir_path + .join(HOST_DIRNAME) + .join("sys") + .join("lib") + .join("libpython3.so") + .to_str() + .map(|s| s.to_string()) + .ok_or_else(|| anyhow!("Could not convert path to string")) + })?); + + let libpython_dir = libpython_path + .parent() + .ok_or_else(|| anyhow!("libpython path {} has no parent", libpython_path.display()))? + .to_path_buf(); + + let link_search_paths = var(LDFLAGS_ENV) + .or_else(|e| { + println!("cargo:warning=No environment variable {LDFLAGS_ENV} set. Using default include paths: {e}"); + base_dir_path + .join(HOST_DIRNAME) + .join("bin") + .to_str() + .map(|s| format!("-L{}", s)) + .ok_or_else(|| anyhow!("Could not convert path to string")) + })? + .split_whitespace() + .filter_map(|s| s.starts_with("-L").then_some(s.replace("-L", ""))) + .map(PathBuf::from) + .chain(once(libpython_dir)) + .collect::>(); + + #[cfg(not(windows))] + let libs = var(LIBS_ENV) + .unwrap_or_else(|e| { + println!("cargo:warning=No environment variable {LIBS_ENV} set. Using default include paths: {e}"); + "-lsimics-common -lvtutils".to_string() + }) + .split_whitespace() + .filter_map(|s| s.starts_with("-l").then_some(s.replace("-l", ""))) + .collect::>(); + + #[cfg(windows)] + let libs = "-lsimics-common -lvtutils" + .split_whitespace() + .filter_map(|s| s.starts_with("-l").then_some(s.replace("-l", ""))) + .collect::>(); + + link_search_paths.iter().for_each(|p| { + println!("cargo:rustc-link-search=native={}", p.display()); + // NOTE: This is needed for the recursive linking step against libpython from + // libsimics-common.so + println!("cargo:rustc-link-arg=-Wl,-rpath-link,{}", p.display()); + // NOTE: This is needed so we can locate the shared libraries at runtime, because + // unlike the `simics` script in each project, we don't get to write an absolute + // path + // println!("cargo-rustc-link-arg=-Wl,-rpath,{}", p.display()); + // println!("cargo-rustc-cdylib-link-arg=-Wl,-rpath,{}", p.display()); + // println!("cargo-rustc-link-arg=-Wl,-rpath={}", p.display()); + // println!("cargo-rustc-cdylib-link-arg=-Wl,-rpath={}", p.display()); + }); + + libs.iter() + .for_each(|l| println!("cargo:rustc-link-lib=dylib={}", l)); + + let library_search_paths = link_search_paths + .iter() + .map(|p| { + p.to_str() + .ok_or_else(|| anyhow!("Could not convert path {} to string", p.display())) + }) + .collect::>>()? + .join(":"); + + // NOTE: This enables running binaries linked with this one when running with `cargo run` + println!("cargo:rustc-env=LD_LIBRARY_PATH={}", library_search_paths); + + // NOTE: + // EVEN with all of the above, a binary built using `cargo build` will not be able to find + // libsimics-common.so. Instead, when we build a binary that transitively depends on this + // -sys crate, we compile it with `cargo rustc`, passing the `-rpath` link argument like + // so. Note `--disable-new-dtags`, otherwise `libsimics-common.so` cannot find + // `libpython3.9.so.1.0` because it will be missing the recursive rpath lookup. + + // SIMICS_BASE=/home/rhart/simics-public/simics-6.0.174 + // PYTHON3_INCLUDE=-I/home/rhart/simics-public/simics-6.0.174/linux64/include/python3.9 + // INCLUDE_PATHS=/home/rhart/simics-public/simics-6.0.174/src/include + // PYTHON3_LDFLAGS=/home/rhart/simics-public/simics-6.0.174/linux64/sys/lib/libpython3.so + // LDFLAGS="-L/home/rhart/simics-public/simics-6.0.174/linux64/bin -z + // noexecstack -z relro -z now" LIBS="-lsimics-common -lvtutils" cargo rustc + // --features=auto,link --example simple-simics -- -C + // link-args="-Wl,--disable-new-dtags + // -Wl,-rpath,/home/rhart/simics-public/simics-6.0.174/linux64/bin;/home/rhart/simics-public/simics-6.0.174/linux64/sys/lib/" + + // This command (the environment variables can be left out) can be auto-generated in the + // SIMICS makefile build system. + } + + Ok(()) +} diff --git a/modules/tsffs/src/simics/simics-api-sys/examples/simple-simics.rs b/modules/tsffs/src/simics/simics-api-sys/examples/simple-simics.rs new file mode 100644 index 00000000..8b9685a8 --- /dev/null +++ b/modules/tsffs/src/simics/simics-api-sys/examples/simple-simics.rs @@ -0,0 +1,47 @@ +//! The simple-simics example from SIMICS, in (unsafe) Rust + +use anyhow::Result; +use raw_cstr::raw_cstr; +use simics_api_sys::{ + init_arg_t, init_arg_t__bindgen_ty_1, SIM_init_command_line, SIM_init_environment, + SIM_init_simulator2, SIM_main_loop, +}; +use std::{mem::forget, ptr::null}; + +fn main() -> Result<()> { + let mut init_args = vec![ + init_arg_t { + name: raw_cstr("quiet")?, + boolean: true, + u: init_arg_t__bindgen_ty_1 { enabled: false }, + }, + init_arg_t { + name: raw_cstr("project")?, + boolean: false, + u: init_arg_t__bindgen_ty_1 { + string: raw_cstr(".")?, + }, + }, + init_arg_t { + name: raw_cstr("gui-mode")?, + boolean: false, + u: init_arg_t__bindgen_ty_1 { + string: raw_cstr("no-gui")?, + }, + }, + init_arg_t { + name: null(), + boolean: false, + u: init_arg_t__bindgen_ty_1 { string: null() }, + }, + ]; + let mut args = vec![raw_cstr("simple-simics")?]; + let args_ptr = args.as_mut_ptr(); + forget(args); + + unsafe { SIM_init_environment(args_ptr, false, true) }; + unsafe { SIM_init_simulator2(init_args.as_mut_ptr()) }; + unsafe { SIM_init_command_line() }; + unsafe { SIM_main_loop() }; + unreachable!("SIM_main_loop should never return"); +} diff --git a/simics-api-sys/scripts/update-bindings.rs b/modules/tsffs/src/simics/simics-api-sys/scripts/update-bindings.rs similarity index 100% rename from simics-api-sys/scripts/update-bindings.rs rename to modules/tsffs/src/simics/simics-api-sys/scripts/update-bindings.rs diff --git a/modules/tsffs/src/simics/simics-api-sys/src/bindings/mod.rs b/modules/tsffs/src/simics/simics-api-sys/src/bindings/mod.rs new file mode 100644 index 00000000..0647dfb7 --- /dev/null +++ b/modules/tsffs/src/simics/simics-api-sys/src/bindings/mod.rs @@ -0,0 +1,14 @@ +//! Raw bindings to the SIMICS API + +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] +#![allow(clippy::useless_transmute)] +#![allow(clippy::missing_safety_doc)] +#![allow(clippy::type_complexity)] +#![allow(clippy::too_many_arguments)] +#![allow(clippy::unnecessary_cast)] + +include!(concat!(env!("OUT_DIR"), "/bindings-auto.rs")); + +pub const SIMICS_API_BINDINGS: &str = include_str!(concat!(env!("OUT_DIR"), "/bindings-auto.rs")); diff --git a/modules/tsffs/src/simics/simics-api-sys/src/lib.rs b/modules/tsffs/src/simics/simics-api-sys/src/lib.rs new file mode 100644 index 00000000..881c0fea --- /dev/null +++ b/modules/tsffs/src/simics/simics-api-sys/src/lib.rs @@ -0,0 +1,18 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! # SIMICS API SYS +//! +//! Low level bindings to the SIMICS API +//! +//! This crate provides raw bindings to the SIMICS api built directly from the header files of the +//! SIMICS base package using `bindgen`. In general, you should prefer to use the `simics-api` +//! crate over this one, as it provides higher level safe bindings to the SIMICS API. +#![deny(clippy::unwrap_used)] +#![allow(rustdoc::broken_intra_doc_links, rustdoc::bare_urls)] + +mod bindings; + +pub use bindings::*; + +include!(concat!(env!("OUT_DIR"), "/version-auto.rs")); diff --git a/util/artifact-dependency/Cargo.toml b/modules/tsffs/src/simics/simics-codegen/Cargo.toml similarity index 53% rename from util/artifact-dependency/Cargo.toml rename to modules/tsffs/src/simics/simics-codegen/Cargo.toml index 69584448..cfb129ba 100644 --- a/util/artifact-dependency/Cargo.toml +++ b/modules/tsffs/src/simics/simics-codegen/Cargo.toml @@ -2,9 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 [package] -name = "artifact-dependency" +name = "simics-codegen" categories.workspace = true -description = "Bare-bones artifact dependency utility crate for run and build-time Rust artifact dependencies." +description = "Code generation for high level SIMICS API bindings" edition.workspace = true homepage.workspace = true keywords.workspace = true @@ -14,13 +14,15 @@ readme.workspace = true repository.workspace = true version.workspace = true - -[lib] -crate-type = ["lib"] - [dependencies] +quote = "1.0.26" +syn = { version = "2.0.15", features = ["full"] } +proc-macro2 = "1.0.56" +darling = "0.20.3" + +[dev-dependencies] anyhow.workspace = true -cargo_metadata = "0.18.0" -derive_builder = "0.12.0" -serde = { workspace = true, features = ["derive"] } -tracing = "0.1.37" +raw-cstr.workspace = true +trybuild = { version = "1.0.80", features = ["diff"] } + +[features] diff --git a/modules/tsffs/src/simics/simics-codegen/src/lib.rs b/modules/tsffs/src/simics/simics-codegen/src/lib.rs new file mode 100644 index 00000000..31cd9d8d --- /dev/null +++ b/modules/tsffs/src/simics/simics-codegen/src/lib.rs @@ -0,0 +1,843 @@ +use std::{ + collections::HashMap, + env::var, + fs::read_dir, + path::{Path, PathBuf}, +}; + +use darling::Error; +use proc_macro2::TokenStream as TokenStream2; +use quote::{format_ident, quote}; +use syn::{ + parse_file, Expr, Field, GenericArgument, Item, ItemConst, ItemType, Lit, Meta, PathArguments, + ReturnType, Type, +}; + +trait SnakeToCamel { + fn snake_to_camel(&self) -> String; +} + +impl SnakeToCamel for String { + fn snake_to_camel(&self) -> String { + let mut s = String::new(); + let mut upper = false; + for c in self.chars() { + if upper || s.is_empty() { + s.push(c.to_ascii_uppercase()); + upper = false; + } else if c == '_' { + upper = true; + } else { + s.push(c.to_ascii_lowercase()); + } + } + s + } +} + +fn interface_field_to_method(field: &Field) -> Option { + let vis = &field.vis; + if let Some(name) = &field.ident { + let name_string = name.to_string(); + if let Type::Path(ref p) = field.ty { + if let Some(last) = p.path.segments.last() { + if last.ident == "Option" { + if let PathArguments::AngleBracketed(ref args) = last.arguments { + if let Some(GenericArgument::Type(Type::BareFn(proto))) = args.args.first() + { + // NOTE: We `use crate::api::sys::*;` at the top of the module, otherwise + // we would need to rewrite all of the types on `inputs` here. + let inputs = &proto.inputs; + let first_input = inputs.iter().next(); + let has_obj = if let Some(first) = first_input { + quote!(#first).to_string().ends_with("conf_object_t") + } else { + false + }; + let input_names = inputs + .iter() + .skip(if has_obj { 1 } else { 0 }) + .filter_map(|a| a.name.clone().map(|n| n.0)) + .collect::>(); + let wrapper_inputs = inputs + .iter() + .skip(if has_obj { 1 } else { 0 }) + .collect::>(); + let (is_attr_value, output) = match &proto.output { + ReturnType::Default => (false, quote!(())), + ReturnType::Type(_, t) => match &**t { + Type::Path(p) => { + if let Some(last) = p.path.get_ident() { + if last == "attr_value_t" { + (true, quote!(crate::api::AttrValue)) + } else { + (false, quote!(#t)) + } + } else { + (false, quote!(#t)) + } + } + _ => (false, quote!(#t)), + }, + }; + // NOTE: We need to make a new name because in some cases the fn ptr name is the same as one of the parameter + // names + let some_name = format_ident!("{}_fn", name); + let maybe_self_obj = + has_obj.then_some(quote!(self.obj,)).unwrap_or_default(); + + let ok_value = if is_attr_value { + quote!(Ok(unsafe { #some_name(#maybe_self_obj #(#input_names),*) }.into())) + } else { + quote!(Ok(unsafe { #some_name(#maybe_self_obj #(#input_names),*) })) + }; + + return Some(quote! { + #vis fn #name(&mut self, #(#wrapper_inputs),*) -> crate::Result<#output> { + if let Some(#some_name) = unsafe { *self.interface}.#name { + #ok_value + } else { + Err(crate::Error::NoInterfaceMethod { method: #name_string.to_string() }) + } + } + }); + } + } + } + } + } + } + None +} + +fn hap_name_and_type_to_struct( + name_callback_type: (&&&ItemConst, &&ItemType), +) -> Option { + let name = name_callback_type.0; + let name_name = &name.ident; + let callback_type = name_callback_type.1; + let callback_doc = &callback_type.attrs; + let supports_index_callbacks = callback_type.attrs.iter().find_map(|a| { + if let Meta::NameValue(ref meta) = a.meta { + if let Expr::Lit(ref lit) = meta.value { + if let Lit::Str(ref str_lit) = lit.lit { + if !str_lit.value().contains("Index: Indices not supported") { + Some(str_lit.value()) + } else { + None + } + } else { + None + } + } else { + None + } + } else { + None + } + }); + + let struct_name = format_ident!( + "{}Hap", + callback_type + .ident + .to_string() + .trim_end_matches("_hap_callback") + .to_string() + .snake_to_camel() + ); + + let handler_name = format_ident!( + "{}", + "handle_".to_string() + + callback_type + .ident + .to_string() + .trim_end_matches("_hap_callback"), + ); + if let Type::Path(ref p) = &*callback_type.ty { + if let Some(last) = p.path.segments.last() { + if last.ident == "Option" { + if let PathArguments::AngleBracketed(ref args) = last.arguments { + if let Some(GenericArgument::Type(Type::BareFn(proto))) = args.args.first() { + // NOTE: We `use crate::api::sys::*;` at the top of the module, otherwise + // we would need to rewrite all of the types on `inputs` here. + let inputs = &proto.inputs; + let input_names = inputs + .iter() + .filter_map(|a| a.name.clone().map(|n| n.0)) + .collect::>(); + if let Some(userdata_name) = input_names.first() { + let output = match &proto.output { + ReturnType::Default => quote!(()), + ReturnType::Type(_, t) => quote!(#t), + }; + let closure_params = + inputs.iter().skip(1).map(|a| &a.ty).collect::>(); + let closure_param_names = + input_names.iter().skip(1).collect::>(); + let callback_ty = + quote!(FnMut(#(#closure_params),*) -> #output + 'static); + + let add_callback_methods = quote! { + /// Add a callback to be called on each occurrence of this HAP. The callback may capture its environment. + /// + /// # Arguments + /// + /// * `callback` - The closure to fire as a callback. The closure will be doubly boxed. Any program state accessed inside + /// the closure must have the static lifetime. This is not enforced by the compiler, it is up to the programmer to ensure + /// the soundness of their callback code. + pub fn add_callback(callback: F) -> crate::Result + where + F: #callback_ty, + { + let callback = Box::new(callback); + let callback_box = Box::new(callback); + let callback_raw = Box::into_raw(callback_box); + let handler: unsafe extern "C" fn() = unsafe { std::mem::transmute(#handler_name:: as usize) }; + Ok(unsafe { + crate::api::sys::SIM_hap_add_callback( + Self::NAME.as_raw_cstr()?, + Some(handler), + callback_raw as *mut std::ffi::c_void, + ) + }) + } + + /// Add a callback to be called on each occurrence of this HAP for a specific object. The callback may capture its environment. + /// + /// # Arguments + /// + /// * `callback` - The closure to fire as a callback. The closure will be doubly boxed. Any program state accessed inside + /// the closure must have the static lifetime. This is not enforced by the compiler, it is up to the programmer to ensure + /// the soundness of their callback code. + /// * `obj` - The object to fire this callback for. This HAP will not trigger the callback when firing on any object other than + /// this one. + pub fn add_callback_object(callback: F, obj: *mut crate::api::ConfObject) -> crate::Result + where + F: #callback_ty + { + let callback = Box::new(callback); + let callback_box = Box::new(callback); + let callback_raw = Box::into_raw(callback_box); + let handler: unsafe extern "C" fn() = unsafe { std::mem::transmute(#handler_name:: as usize) }; + Ok(unsafe { + crate::api::sys::SIM_hap_add_callback_obj( + Self::NAME.as_raw_cstr()?, + obj, + 0, + Some(handler), + callback_raw as *mut std::ffi::c_void, + ) + }) + } + }; + + let maybe_index_callback_methods = supports_index_callbacks.map(|index| { + let index_doc = format!("* `index` - The index value for this HAP: {}", index); + let range_start_doc = format!("* `start` - The start of the range of index values for this HAP: {}", index); + let range_end_doc = format!("* `end` - The start of the range of index values for this HAP: {}", index); + quote! { + /// Add a callback to be called on each occurrence of this HAP for a specific index value. The callback may capture its environment. + /// + /// Only HAPs which support an index may add a callback in this manner, and the index varies for each HAP. For example, the + /// [`CoreMagicInstructionHap`] supports an index equal to the magic value. + /// + /// # Arguments + /// + /// * `callback` - The closure to fire as a callback. The closure will be doubly boxed. Any program state accessed inside + /// the closure must have the static lifetime. This is not enforced by the compiler, it is up to the programmer to ensure + /// the soundness of their callback code. + #[doc = #index_doc] + pub fn add_callback_index(callback: F, index: i64) -> crate::Result + where + F: #callback_ty + { + let callback = Box::new(callback); + let callback_box = Box::new(callback); + let callback_raw = Box::into_raw(callback_box); + let handler: unsafe extern "C" fn() = unsafe { std::mem::transmute(#handler_name:: as usize) }; + Ok(unsafe { + crate::api::sys::SIM_hap_add_callback_index( + Self::NAME.as_raw_cstr()?, + Some(handler), + callback_raw as *mut std::ffi::c_void, + index + ) + }) + } + + /// Add a callback to be called on each occurrence of this HAP for a specific index value range. The callback may capture its environment. + /// + /// Only HAPs which support an index may add a callback in this manner, and the index varies for each HAP. For example, the + /// [`CoreMagicInstructionHap`] supports an index equal to the magic value. + /// + /// # Arguments + /// + /// * `callback` - The closure to fire as a callback. The closure will be doubly boxed. Any program state accessed inside + /// the closure must have the static lifetime. This is not enforced by the compiler, it is up to the programmer to ensure + /// the soundness of their callback code. + #[doc = #range_start_doc] + #[doc = #range_end_doc] + pub fn add_callback_range(callback: F, start: i64, end: i64) -> crate::Result + where + F: #callback_ty + { + let callback = Box::new(callback); + let callback_box = Box::new(callback); + let callback_raw = Box::into_raw(callback_box); + let handler: unsafe extern "C" fn() = unsafe { std::mem::transmute(#handler_name:: as usize) }; + Ok(unsafe { + crate::api::sys::SIM_hap_add_callback_range( + Self::NAME.as_raw_cstr()?, + Some(handler), + callback_raw as *mut std::ffi::c_void, + start, + end, + ) + }) + } + + /// Add a callback to be called on each occurrence of this HAP on a specific object for a specific index value. The callback may capture its environment. + /// + /// Only HAPs which support an index may add a callback in this manner, and the index varies for each HAP. For example, the + /// [`CoreMagicInstructionHap`] supports an index equal to the magic value. + /// + /// # Arguments + /// + /// * `callback` - The closure to fire as a callback. The closure will be doubly boxed. Any program state accessed inside + /// the closure must have the static lifetime. This is not enforced by the compiler, it is up to the programmer to ensure + /// the soundness of their callback code. + /// * `obj` - The object to fire this callback for. This HAP will not trigger the callback when firing on any object other than + /// this one. + #[doc = #index_doc] + pub fn add_callback_object_index(callback: F, obj: *mut crate::api::ConfObject, index: i64) -> crate::Result + where + F: #callback_ty + { + let callback = Box::new(callback); + let callback_box = Box::new(callback); + let callback_raw = Box::into_raw(callback_box); + let handler: unsafe extern "C" fn() = unsafe { std::mem::transmute(#handler_name:: as usize) }; + Ok(unsafe { + crate::api::sys::SIM_hap_add_callback_obj_index( + Self::NAME.as_raw_cstr()?, + obj, + 0, + Some(handler), + callback_raw as *mut std::ffi::c_void, + index + ) + }) + } + + /// Add a callback to be called on each occurrence of this HAP on a specific object for a specific index value range. The callback may capture its environment. + /// + /// Only HAPs which support an index may add a callback in this manner, and the index varies for each HAP. For example, the + /// [`CoreMagicInstructionHap`] supports an index equal to the magic value. + /// + /// # Arguments + /// + /// * `callback` - The closure to fire as a callback. The closure will be doubly boxed. Any program state accessed inside + /// the closure must have the static lifetime. This is not enforced by the compiler, it is up to the programmer to ensure + /// the soundness of their callback code. + /// * `obj` - The object to fire this callback for. This HAP will not trigger the callback when firing on any object other than + /// this one. + #[doc = #range_start_doc] + #[doc = #range_end_doc] + pub fn add_callback_object_range(callback: F, obj: *mut crate::api::ConfObject, start: i64, end: i64) -> crate::Result + where + F: #callback_ty + { + let callback = Box::new(callback); + let callback_box = Box::new(callback); + let callback_raw = Box::into_raw(callback_box); + let handler: unsafe extern "C" fn() = unsafe { std::mem::transmute(#handler_name:: as usize) }; + Ok(unsafe { + crate::api::sys::SIM_hap_add_callback_obj_range( + Self::NAME.as_raw_cstr()?, + obj, + 0, + Some(handler), + callback_raw as *mut std::ffi::c_void, + start, + end, + ) + }) + } + + + }}).unwrap_or_default(); + + let struct_and_impl = quote! { + #(#callback_doc)* + pub struct #struct_name {} + + impl crate::api::traits::hap::Hap for #struct_name { + type Name = &'static [u8]; + const NAME: Self::Name = crate::api::sys::#name_name; + } + + impl #struct_name { + #add_callback_methods + #maybe_index_callback_methods + } + + /// The handler for HAPs of a specific type. Unboxes a boxed + /// closure and calls it with the correct HAP callback arguments + extern "C" fn #handler_name(#inputs) -> #output + where F: #callback_ty + { + // NOTE: This box must be leaked, because we may call this closure again, we cannot drop it + let closure = Box::leak(unsafe { Box::from_raw(#userdata_name as *mut Box) }); + closure(#(#closure_param_names),*) + } + + }; + + return Some(struct_and_impl); + } + } + } + } + } + } + None +} + +/// Automatically generate high level bindings to all interfaces provided by SIMICS +/// +/// Interfaces are defined by the sys bindings as (for example): +/// +/// ```rust,ignore +/// #[repr(C)] +/// pub struct breakpoint_interface { +/// pub insert_breakpoint: Option, +/// pub remove_breakpoint: Option, +/// pub get_breakpoint: Option breakpoint_info_t>, +/// } +/// ``` +/// +/// Along with the name of the interface: +/// +/// ```rust,ignore +/// pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; +/// ``` +/// +/// Code-generation takes each interface structure and name and creates a Rust-named +/// structure, implements the [`Interface`] trait for it, and implements a safe(ish) +/// wrapper for the interface object. For the above example, the generation would be: +/// +/// ```rust,ignore +/// pub struct BreakpointInterface { +/// interface: *mut crate::api::sys::breakpoint_interface, +/// } +/// impl BreakpointInterface { +/// pub fn insert_breakpoint( +/// &mut self, +/// object: *mut conf_object_t, +/// caller: *mut conf_object_t, +/// handle: breakpoint_handle_t, +/// access: access_t, +/// start: generic_address_t, +/// end: generic_address_t, +/// ) -> crate::Result<()> { +/// if let Some(insert_breakpoint_fn) = unsafe { *self.interface } +/// .insert_breakpoint +/// { +/// Ok(unsafe { +/// insert_breakpoint_fn( +/// object, +/// caller, +/// handle, +/// access, +/// start, +/// end, +/// ) +/// }) +/// } else { +/// Err(crate::Error::NoInterfaceMethod { +/// method: "insert_breakpoint".to_string(), +/// }) +/// } +/// } +/// pub fn remove_breakpoint( +/// &mut self, +/// object: *mut conf_object_t, +/// handle: breakpoint_handle_t, +/// ) -> crate::Result<()> { +/// if let Some(remove_breakpoint_fn) = unsafe { *self.interface } +/// .remove_breakpoint +/// { +/// Ok(unsafe { remove_breakpoint_fn(object, handle) }) +/// } else { +/// Err(crate::Error::NoInterfaceMethod { +/// method: "remove_breakpoint".to_string(), +/// }) +/// } +/// } +/// pub fn get_breakpoint( +/// &mut self, +/// obj: *mut conf_object_t, +/// handle: breakpoint_handle_t, +/// ) -> crate::Result { +/// if let Some(get_breakpoint_fn) = unsafe { *self.interface } +/// .get_breakpoint +/// { +/// Ok(unsafe { get_breakpoint_fn(obj, handle) }) +/// } else { +/// Err(crate::Error::NoInterfaceMethod { +/// method: "get_breakpoint".to_string(), +/// }) +/// } +/// } +/// } +/// impl crate::api::traits::interface::Interface for BreakpointInterface { +/// type InternalInterface = crate::api::sys::breakpoint_interface; +/// type Name = &'static [u8]; +/// const NAME: &'static [u8] = crate::api::sys::BREAKPOINT_INTERFACE; +/// fn new(interface: *mut Self::InternalInterface) -> Self { +/// Self { interface } +/// } +/// fn register(cls: *mut crate::api::ConfClass) -> crate::Result<()> { +/// crate::api::base::conf_object::register_interface::(cls)?; +/// Ok(()) +/// } +/// fn get(obj: *mut crate::api::ConfObject) -> crate::Result { +/// crate::api::base::conf_object::get_interface::(obj) +/// } +/// } +/// ``` +/// +pub fn simics_interface_codegen(bindings: &str) -> TokenStream2 { + let parsed_bindings = match parse_file(bindings) { + Ok(b) => b, + Err(e) => return Error::from(e).write_errors(), + }; + + let interface_name_items = parsed_bindings + .items + .iter() + .filter_map(|i| { + if let Item::Const(c) = i { + if c.ident.to_string().ends_with("_INTERFACE") { + Some((c.ident.to_string(), c)) + } else { + None + } + } else { + None + } + }) + .collect::>(); + + let interfaces = parsed_bindings + .items + .iter() + .filter_map(|i| { + if let Item::Struct(s) = i { + interface_name_items + .get(&s.ident.to_string().to_ascii_uppercase()) + .map(|interface_name_item| (interface_name_item, s)) + } else { + None + } + }) + .collect::>(); + + let interface_structs = interfaces + .iter() + .map(|(name, interface)| { + let camel_name = name.ident.to_string().snake_to_camel(); + let struct_name = format_ident!("{camel_name}",); + let interface_ident = &interface.ident; + let name_ident = &name.ident; + let interface_methods = interface + .fields + .iter() + .filter_map(interface_field_to_method) + .collect::>(); + let q = quote! { + pub struct #struct_name { + obj: *mut crate::api::ConfObject, + interface: *mut crate::api::sys::#interface_ident, + } + + impl #struct_name { + #(#interface_methods)* + } + + impl crate::api::traits::interface::Interface for #struct_name { + type InternalInterface = crate::api::sys::#interface_ident; + type Name = &'static [u8]; + + const NAME: &'static [u8] = crate::api::sys::#name_ident; + + fn new(obj: *mut crate::api::ConfObject, interface: *mut Self::InternalInterface) -> Self { + Self { obj, interface } + } + + fn register(cls: *mut crate::api::ConfClass) -> crate::Result<()> { + crate::api::base::conf_object::register_interface::(cls)?; + Ok(()) + } + + fn get(obj: *mut crate::api::ConfObject) -> crate::Result { + crate::api::base::conf_object::get_interface::(obj) + } + } + }; + q + }) + .collect::>(); + + quote! { + #[allow(dead_code, non_snake_case)] + pub mod interfaces { + use crate::api::sys::*; + + #(#interface_structs)* + } + } +} + +/// Automatically generate high level bindings to all HAPs provided by SIMICS. +/// +/// HAPs are defined as a string name like: +/// +/// ```rust,ignore +/// pub const CORE_EXCEPTION_HAP_NAME: &[u8; 15] = b"Core_Exception\0"; +/// ``` +/// +/// This macro generates a struct with an implementation of [`Hap`]. If the hap is +/// marked as having an index pseudo-parameter, methods to add callbacks receiving an +/// index will be generated. Methods to add callbacks not receiving an index are +/// generated for all haps. +/// +/// ```rust,ignore +/// pub struct CoreExceptionHap {} +/// impl crate::api::traits::hap::Hap for CoreExceptionHap { +/// type Handler = unsafe extern "C" fn( +/// callback_data: *mut lang_void, +/// trigger_obj: *mut conf_object_t, +/// exception_number: int64, +/// ); +/// type Name = &'static [u8]; +/// type Callback = Box< +/// dyn Fn(*mut conf_object_t, int64) -> () + 'static, +/// >; +/// const NAME: Self::Name = crate::api::sys::CORE_EXCEPTION_HAP_NAME; +/// const HANDLER: Self::Handler = handle_core_exception::< +/// Self::Callback, +/// >; +/// fn add_callback( +/// callback: Self::Callback, +/// ) -> crate::Result { +/// let callback_box = Box::new(callback); +/// let callback_raw = Box::into_raw(callback_box); +/// let handler: unsafe extern "C" fn() = unsafe { +/// std::mem::transmute(Self::HANDLER) +/// }; +/// Ok(unsafe { +/// crate::api::sys::SIM_hap_add_callback( +/// Self::NAME.as_raw_cstr()?, +/// Some(handler), +/// callback_raw as *mut std::ffi::c_void, +/// ) +/// }) +/// } +/// fn add_callback_object( +/// callback: Self::Callback, +/// obj: *mut crate::api::ConfObject, +/// ) -> crate::Result { +/// let callback_box = Box::new(callback); +/// let callback_raw = Box::into_raw(callback_box); +/// let handler: unsafe extern "C" fn() = unsafe { +/// std::mem::transmute(Self::HANDLER) +/// }; +/// Ok(unsafe { +/// crate::api::sys::SIM_hap_add_callback_obj( +/// Self::NAME.as_raw_cstr()?, +/// obj, +/// 0, +/// Some(handler), +/// callback_raw as *mut std::ffi::c_void, +/// ) +/// }) +/// } +/// } +/// extern "C" fn handle_core_exception( +/// callback_data: *mut lang_void, +/// trigger_obj: *mut conf_object_t, +/// exception_number: int64, +/// ) -> () +/// where +/// F: Fn(*mut conf_object_t, int64) -> () + 'static, +/// { +/// let closure: Box> = unsafe { +/// Box::from_raw(callback_data as *mut Box) +/// }; +/// closure(trigger_obj, exception_number) +/// } +/// ``` +pub fn simics_hap_codegen(bindings: &str) -> TokenStream2 { + let parsed_bindings = match parse_file(bindings) { + Ok(b) => b, + Err(e) => return Error::from(e).write_errors(), + }; + + let hap_name_items = parsed_bindings + .items + .iter() + .filter_map(|i| { + if let Item::Const(c) = i { + if c.ident.to_string().ends_with("_HAP_NAME") { + Some((c.ident.to_string(), c)) + } else { + None + } + } else { + None + } + }) + .collect::>(); + + // println!("{:?}", hap_name_items); + + let haps = parsed_bindings + .items + .iter() + .filter_map(|i| { + if let Item::Type(ty) = i { + if ty.ident.to_string().ends_with("_hap_callback") { + hap_name_items + .get( + &(ty.ident + .to_string() + .trim_end_matches("_hap_callback") + .to_ascii_uppercase() + + "_HAP_NAME"), + ) + .map(|hap_name_item| (hap_name_item, ty)) + } else { + None + } + } else { + None + } + }) + .collect::>(); + + // println!("{:?}", haps); + + let hap_structs = haps + .iter() + .filter_map(hap_name_and_type_to_struct) + .collect::>(); + + quote! { + #[allow(dead_code, non_snake_case)] + pub mod haps { + use crate::api::sys::*; + use crate::api::traits::hap::Hap; + use raw_cstr::AsRawCstr; + + #(#hap_structs)* + } + } +} + +/// Generate separate test functions for all SIMICS test python scripts (scripts beginning with +/// 's-' inside a directory that contains a SUITEINFO file. +/// +/// The path `package_root` should be a relative path from the test crate root to the package +/// root directory. Tests whose filenames end in "-fail" will expect a failure, not a success. +pub fn simics_tests

(package_root: P) -> TokenStream2 +where + P: AsRef, +{ + let crate_directory_path = PathBuf::from( + var("CARGO_MANIFEST_DIR").expect("No CARGO_MANIFEST_DIR set. This should be impossible."), + ); + + let test_runner_path = crate_directory_path + .join(package_root.as_ref()) + .join("bin/test-runner"); + + if !test_runner_path.is_file() { + panic!( + "Test runner path {} does not exist.", + test_runner_path.display() + ); + } + + let test_runner_path = test_runner_path.to_str().unwrap_or_else(|| { + panic!( + "Could not get string for test runner path {}", + test_runner_path.display() + ) + }); + + let integration_tests_directory = crate_directory_path; + + let tests = read_dir(integration_tests_directory) + .expect("Failed to read integration tests directory") + .filter_map(|e| e.ok()) + .filter_map(|e| { + let p = e.path(); + p.file_stem().and_then(move |f| { + f.to_str() + .map(|f| f.to_string()) + .filter(|f| f.starts_with("s-")) + }) + }) + .map(|test_name| { + let test_name_ident = format_ident!( + "test_simics_{}", + test_name + .to_ascii_lowercase() + .replace("s-", "") + .replace('-', "_") + ); + let try_or_invert_try_and_print = if test_name.ends_with("-fail") { + quote! { + .err() + .ok_or_else(|| anyhow::anyhow!("Expected failure, got success"))?; + + if let command_ext::CommandExtError::Check { code: _, stdout, stderr: _ } = res { + println!("stdout:\n{stdout}"); + } + } + } else { + quote! { + ?; + + let stdout = String::from_utf8_lossy(&res.stdout); + + println!("stdout:\n{stdout}"); + } + }; + quote! { + #[test] + fn #test_name_ident() -> anyhow::Result<()> { + #[allow(unused)] + let res = std::process::Command::new(#test_runner_path) + .arg("-v") + .arg("-n") + .arg(#test_name) + .check() + #try_or_invert_try_and_print + + Ok(()) + } + } + }) + .collect::>(); + + quote! { + #[allow(unused_imports)] + use command_ext::CommandExtCheck; + + #(#tests)* + } +} diff --git a/simics-api-macro/Cargo.toml b/modules/tsffs/src/simics/simics-macro/Cargo.toml similarity index 62% rename from simics-api-macro/Cargo.toml rename to modules/tsffs/src/simics/simics-macro/Cargo.toml index 900902e2..e999c855 100644 --- a/simics-api-macro/Cargo.toml +++ b/modules/tsffs/src/simics/simics-macro/Cargo.toml @@ -2,7 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 [package] -name = "simics-api-macro" +name = "simics-macro" categories.workspace = true description = "High level SIMICS API proc macros" edition.workspace = true @@ -21,27 +21,16 @@ proc-macro = true [dependencies] quote = "1.0.26" syn = { version = "2.0.15", features = ["full"] } -# simics-api = { workspace = true } proc-macro2 = "1.0.56" proc-macro-error = "1.0.4" -tracing = "0.1.37" +darling = "0.20.3" +indoc = "2.0.4" [dev-dependencies] anyhow.workspace = true raw-cstr.workspace = true -simics-api = { workspace = true } trybuild = { version = "1.0.80", features = ["diff"] } [features] -"6.0.163" = ["simics-api/6.0.163"] -"6.0.164" = ["simics-api/6.0.164"] -"6.0.165" = ["simics-api/6.0.165"] -"6.0.166" = ["simics-api/6.0.166"] -"6.0.167" = ["simics-api/6.0.167"] -"6.0.168" = ["simics-api/6.0.168"] -"6.0.169" = ["simics-api/6.0.169"] -"6.0.170" = ["simics-api/6.0.170"] -"6.0.171" = ["simics-api/6.0.171"] -"6.0.172" = ["simics-api/6.0.172"] diff --git a/modules/tsffs/src/simics/simics-macro/src/lib.rs b/modules/tsffs/src/simics/simics-macro/src/lib.rs new file mode 100644 index 00000000..9e751a71 --- /dev/null +++ b/modules/tsffs/src/simics/simics-macro/src/lib.rs @@ -0,0 +1,1543 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Derive/attribute macros for simics-api + +#![deny(clippy::unwrap_used)] +#![forbid(unsafe_code)] + +use std::{ + env::var, + fs::{create_dir_all, read_dir, write}, + path::PathBuf, +}; + +use darling::{ + ast::{Data, NestedMeta}, + util::Flag, + Error, FromDeriveInput, FromField, FromMeta, Result, +}; +use indoc::formatdoc; +use proc_macro::TokenStream; +use proc_macro2::TokenStream as TokenStream2; +use proc_macro_error::{abort, proc_macro_error}; +use quote::{format_ident, quote, ToTokens}; +use syn::{ + parse::Parser, parse_macro_input, parse_str, DeriveInput, Expr, Field, Fields, FnArg, + GenericArgument, Generics, Ident, ImplGenerics, ImplItem, ItemFn, ItemImpl, ItemStruct, Lit, + Meta, Pat, PathArguments, ReturnType, Signature, Type, TypeGenerics, Visibility, WhereClause, +}; + +#[derive(Debug, FromDeriveInput)] +#[darling(attributes(module), supports(struct_named))] +struct ClassDerive { + ident: Ident, + generics: Generics, +} + +impl ToTokens for ClassDerive { + fn to_tokens(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + tokens.extend(quote! { + impl #impl_generics simics::api::traits::class::Class for #ident #ty_generics #where_clause {} + }) + } +} + +#[proc_macro_derive(Class)] +/// Derive macro for the [`Class`] trait. +pub fn class_derive(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let args = match ClassDerive::from_derive_input(&input) { + Ok(opts) => opts, + Err(e) => return e.write_errors().into(), + }; + quote! { + #args + } + .into() +} + +#[derive(Debug, FromDeriveInput)] +#[darling(attributes(module), supports(struct_named))] +struct AsConfObjectDerive { + ident: Ident, + generics: Generics, +} + +impl ToTokens for AsConfObjectDerive { + fn to_tokens(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + tokens.extend(quote! { + impl #impl_generics simics::api::traits::class::AsConfObject for #ident #ty_generics #where_clause {} + }) + } +} + +#[proc_macro_derive(AsConfObject)] +/// Derive macro for the [`Class`] trait. +pub fn as_conf_object_derive(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let args = match AsConfObjectDerive::from_derive_input(&input) { + Ok(opts) => opts, + Err(e) => return e.write_errors().into(), + }; + quote! { + #args + } + .into() +} + +#[derive(Debug, FromMeta)] +struct ClassOpts { + name: Expr, + derive: Flag, + description: Option, + short_description: Option, + kind: Option, +} + +#[proc_macro_error] +#[proc_macro_attribute] +/// Attribute to add boilerplate to a `struct` to enable it to be used as a SIMICS Conf Object. +/// +/// * Generate default implementations for CFFI to call functions defined in the [`Class`] trait +/// impl +/// * Insert a [ConfObject] field to permit instances of the struct to be passed via CFFI to and +/// from SIMICS +/// * Optionally, derive the default implementations of the [`Class`] trait +/// +/// The macro accepts the following arguments: +/// +/// * `name = "name"` (Required) specifies the generated class name the class will be registered with +/// * `derive` (Optional) which allows you to derive the default +/// implementation of [`Class`] alongside automatic implementations of the extern functions +/// required to register the class. +/// * `description = "describe your class"` (Optional) set a custom description for the generated +/// class. Defaults to the struct name. +/// * `short_description = "short desc"` (Optional) set a custom short description for the +/// generated class. Defaults to the struct name. +/// * `kind = ClassKind::Vanilla` (Optional) set a class kind. Most classes are Vanilla, +/// which is the default, but the kind can be set here. +/// +/// # Examples +/// +/// Without deriving [`Class`]: +/// +/// ```rust,ignore +/// use simics::api::{Class, CreateClass}; +/// use simics_macro::class; +/// +/// #[class(name = "test")] +/// struct Test {} +/// ``` +/// +/// Derive [`Class`]: +/// +/// ```rust,ignore +/// use simics::api::{Class, CreateClass}; +/// use simics_macro::class; +/// +/// #[class(derive, name = "test")] +/// struct Test {} +/// ``` +/// Derive [`Class`] and customize the generated class description and kind: +/// +/// ```rust,ignore +/// use simics::api::{Class, CreateClass}; +/// use simics_macro::class; +/// +/// #[module( +/// derive, +/// name = "test_module_4", +/// description = "Test module 4", +/// short_description = "TM4", +/// kind = ClassKind::Session +/// )] +/// struct Test {} +/// ``` +/// +pub fn class(args: TokenStream, input: TokenStream) -> TokenStream { + let attr_args = match NestedMeta::parse_meta_list(args.into()) { + Ok(a) => a, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + let mut input = parse_macro_input!(input as ItemStruct); + + let args = match ClassOpts::from_list(&attr_args) { + Ok(a) => a, + Err(e) => return TokenStream::from(e.write_errors()), + }; + + let name = &input.ident; + let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl(); + let fields = &input.fields; + + let raw_impl = raw_impl(name, fields, &impl_generics, &ty_generics, &where_clause); + + // This needs to be generated first before we add the `ConfObject` field + + if let Fields::Named(ref mut fields) = input.fields { + fields.named.insert( + 0, + Field::parse_named + .parse2(quote!(conf_object: simics::api::ConfObject)) + .expect("Couldn't parse field `conf_object`"), + ); + }; + + // Only derive Module if we get a `derive` argument + let maybe_derive_attribute = args + .derive + .is_present() + .then_some(quote!(#[derive(Class, AsConfObject)])); + + let ffi_impl = ffi_impl(name.to_string()); + let register_impl = create_impl( + name.to_string(), + &args, + &impl_generics, + &ty_generics, + &where_clause, + ); + let from_impl = from_impl(&input); + + quote! { + #maybe_derive_attribute + #[repr(C)] + #input + #ffi_impl + #register_impl + #raw_impl + #from_impl + } + .into() +} + +fn ffi_impl(name: S) -> TokenStream2 +where + S: AsRef, +{ + let name_string = name.as_ref().to_string().to_ascii_lowercase(); + let name = format_ident!("{}", name.as_ref()); + let alloc_fn_name = format_ident!("{}_alloc", &name_string); + let init_fn_name = format_ident!("{}_init", &name_string); + let finalize_fn_name = format_ident!("{}_finalize", &name_string); + let objects_finalized_fn_name = format_ident!("{}_objects_finalized", &name_string); + let deinit_fn_name = format_ident!("{}_deinit", &name_string); + let dealloc_fn_name = format_ident!("{}_dealloc", &name_string); + + quote! { + #[no_mangle] + pub extern "C" fn #alloc_fn_name(cls: *mut simics::api::ConfClass) -> *mut simics::api::ConfObject { + let cls: *mut simics::api::ConfClass = cls.into(); + let obj: *mut simics::api::ConfObject = #name::alloc::<#name>(cls) + .unwrap_or_else(|e| panic!("{}::alloc failed: {}", #name_string, e)) + .into(); + obj + } + + #[no_mangle] + pub extern "C" fn #init_fn_name(obj: *mut simics::api::ConfObject) -> *mut std::ffi::c_void { + let ptr: *mut simics::api::ConfObject = #name::init(obj.into()) + .unwrap_or_else(|e| panic!("{}::init failed: {}", #name_string, e)) + .into(); + ptr as *mut std::ffi::c_void + } + + #[no_mangle] + pub extern "C" fn #finalize_fn_name(obj: *mut simics::api::ConfObject) { + #name::finalize(obj.into()) + .unwrap_or_else(|e| panic!("{}::finalize failed: {}", #name_string, e)); + } + + #[no_mangle] + pub extern "C" fn #objects_finalized_fn_name(obj: *mut simics::api::ConfObject) { + #name::objects_finalized(obj.into()) + .unwrap_or_else(|e| panic!("{}::objects_finalized failed: {}", #name_string, e)); + } + + #[no_mangle] + pub extern "C" fn #deinit_fn_name(obj: *mut simics::api::ConfObject) { + #name::deinit(obj.into()) + .unwrap_or_else(|e| panic!("{}::deinit failed: {}", #name_string, e)); + } + + #[no_mangle] + pub extern "C" fn #dealloc_fn_name(obj: *mut simics::api::ConfObject) { + #name::dealloc(obj.into()) + .unwrap_or_else(|e| panic!("{}::dealloc failed: {}", #name_string, e)); + } + } +} + +fn create_impl( + name: S, + args: &ClassOpts, + impl_generics: &ImplGenerics, + ty_generics: &TypeGenerics, + where_clause: &Option<&WhereClause>, +) -> TokenStream2 +where + S: AsRef, +{ + let name_string = name.as_ref().to_string().to_ascii_lowercase(); + let name = format_ident!("{}", name.as_ref()); + + let alloc_fn_name = format_ident!("{}_alloc", &name_string); + let init_fn_name = format_ident!("{}_init", &name_string); + let finalize_fn_name = format_ident!("{}_finalize", &name_string); + let objects_finalized_fn_name = format_ident!("{}_objects_finalized", &name_string); + let deinit_fn_name = format_ident!("{}_deinit", &name_string); + let dealloc_fn_name = format_ident!("{}_dealloc", &name_string); + + // TODO: Can we clean up the re-quoting of these strings? + let class_name = &args.name; + + let description = args.description.as_ref().unwrap_or(&name_string); + + let short_description = args.short_description.as_ref().unwrap_or(&name_string); + + let kind = args + .kind + .as_ref() + .map(|k| quote!(#k)) + .unwrap_or(quote!(simics::api::ClassKind::Sim_Class_Kind_Vanilla)); + + quote! { + impl #impl_generics #name #ty_generics #where_clause { + const CLASS: simics::api::ClassInfo = simics::api::ClassInfo { + alloc: Some(#alloc_fn_name), + init: Some(#init_fn_name), + finalize: Some(#finalize_fn_name), + objects_finalized: Some(#objects_finalized_fn_name), + deinit: Some(#deinit_fn_name), + dealloc: Some(#dealloc_fn_name), + description: raw_cstr::c_str!(#description).as_ptr(), + short_desc: raw_cstr::c_str!(#short_description).as_ptr(), + kind: #kind, + }; + + } + + impl #impl_generics simics::api::CreateClass for #name #ty_generics #where_clause { + fn create() -> simics::Result<*mut simics::api::ConfClass> { + simics::api::create_class(#class_name, #name::CLASS) + } + } + } +} + +fn raw_impl( + name: &Ident, + fields: &Fields, + impl_generics: &ImplGenerics, + ty_generics: &TypeGenerics, + where_clause: &Option<&WhereClause>, +) -> TokenStream2 { + let mut field_parameters = Vec::new(); + + for field in fields { + let ty = &field.ty; + if let Some(ident) = &field.ident { + field_parameters.push(quote! { + #ident: #ty + }); + } + } + + let mut field_initializers = Vec::new(); + + for field in fields { + if let Some(ident) = &field.ident { + field_initializers.push(quote! { + unsafe { std::ptr::addr_of_mut!((*ptr).#ident).write(#ident) }; + }) + } + } + + quote! { + impl #impl_generics #name #ty_generics #where_clause { + #[allow(clippy::too_many_arguments)] + #[allow(clippy::not_unsafe_ptr_arg_deref)] + fn new( + obj: *mut simics::api::ConfObject, + value: #name #ty_generics + ) -> *mut simics::api::ConfObject { + let ptr: *mut #name #ty_generics = obj as *mut #name #ty_generics; + unsafe { std::ptr::addr_of_mut!(*ptr).write(value) }; + ptr as *mut simics::api::ConfObject + } + + } + } +} + +fn from_impl(input: &ItemStruct) -> TokenStream2 { + let name = &input.ident; + let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl(); + + quote! { + impl #impl_generics From<*mut simics::api::ConfObject> for &'static mut #name #ty_generics + #where_clause + { + fn from(value: *mut simics::api::ConfObject) -> Self { + let ptr: *mut #name #ty_generics = value as *mut #name #ty_generics ; + unsafe { &mut *ptr } + } + } + + impl #impl_generics From<*mut simics::api::ConfObject> for &'static #name #ty_generics + #where_clause + { + fn from(value: *mut simics::api::ConfObject) -> Self { + let ptr: *const #name #ty_generics = value as *const #name #ty_generics ; + unsafe { &*ptr } + } + } + } +} + +#[derive(Debug, FromMeta)] +struct SimicsExceptionOpts {} + +trait IsResultType { + fn is_result_type(&self) -> bool; +} + +impl IsResultType for ReturnType { + fn is_result_type(&self) -> bool { + match self { + ReturnType::Default => false, + ReturnType::Type(_, ty) => match &**ty { + Type::Path(p) => p + .path + .segments + .last() + .map(|l| l.ident == "Result") + .unwrap_or(false), + _ => false, + }, + } + } +} + +#[proc_macro_error] +#[proc_macro_attribute] +/// Marks a function as being a SIMICS API that can throw exceptions. A SIMICS exception +/// can be generated by most APIs. This macro makes the function private, wraps it, and +/// adds the requisite code to check for and report exceptions. `clear_exception` should +/// *not* be called inside the wrapped function. `last_error` may be called, however, as +/// any exceptions will be cleared after the wrapped function returns. +/// +/// # Examples +/// +/// ```rust,ignore +/// #[simics_exception] +/// pub fn write_byte(physical_memory: *mut ConfObject, physical_addr: u64, byte: u8) { +/// unsafe { SIM_write_byte(physical_memory, physical_addr, byte) }; +/// } +/// ``` +/// +/// Expands to: +/// +/// ```rust,ignore +/// fn _write_byte(physical_memory: *mut ConfObject, physical_addr: u64, byte: u8) { +/// unsafe { SIM_write_byte(physical_memory, physical_addr, byte) }; +/// } +/// +/// pub fn write_byte(physical_memory: *mut ConfObject, physical_addr: u64, byte: u8) -> Result<()> { +/// let res = _write_byte(physical_memory, physical_addr, byte); +/// +/// match simics::api::get_pending_exception() { +/// SimException::SimExc_No_Exception => Ok(()), +/// exception => { +/// clear_exception(); +/// Err(Error::from(exception)) +/// } +/// } +/// } +/// ``` +pub fn simics_exception(args: TokenStream, input: TokenStream) -> TokenStream { + let attr_args = match NestedMeta::parse_meta_list(args.into()) { + Ok(a) => a, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + let mut input = parse_macro_input!(input as ItemFn); + + let _args = match SimicsExceptionOpts::from_list(&attr_args) { + Ok(a) => a, + Err(e) => return TokenStream::from(e.write_errors()), + }; + + // Get the original ident and visibility before we change them + let vis = input.vis.clone(); + let mut sig = input.sig.clone(); + let attrs = &input.attrs; + let doc_attrs = attrs + .iter() + .filter(|a| { + if let Meta::NameValue(attr) = &a.meta { + if let Some(first) = attr.path.segments.first() { + first.ident == "doc" + } else { + false + } + } else { + false + } + }) + .collect::>(); + + let inner_ident = format_ident!("_{}", input.sig.ident); + input.sig.ident = inner_ident.clone(); + let input_name = input.sig.ident.to_string(); + input.vis = Visibility::Inherited; + + let ok_return = sig + .output + .is_result_type() + .then_some(quote!(result)) + .unwrap_or(quote!(Ok(result))); + + sig.output = match sig.output.is_result_type().then_some(&sig.output) { + Some(o) => o.clone(), + None => { + let output = match &sig.output { + ReturnType::Default => quote!(()), + ReturnType::Type(_, ty) => quote!(#ty), + }; + + match parse_str("e!(-> crate::error::Result<#output>).to_string()) { + Ok(o) => o, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + } + } + }; + + let maybe_ty_generics = (!&sig.generics.params.is_empty()).then_some({ + let params = &sig.generics.params; + quote!(::<#params>) + }); + + let args = sig + .inputs + .iter() + .map(|i| match i { + syn::FnArg::Receiver(_) => { + abort!(i, "Cannot apply attribute to function with a receiver") + } + syn::FnArg::Typed(t) => { + let pat = &t.pat; + quote!(#pat) + } + }) + .collect::>(); + + let wrapper = quote! { + #(#doc_attrs)* + #vis #sig { + let result = #inner_ident #maybe_ty_generics(#(#args),*); + match crate::api::get_pending_exception() { + crate::api::base::sim_exception::SimException::SimExc_No_Exception => #ok_return, + exception => { + crate::api::base::sim_exception::clear_exception(); + Err(crate::error::Error::SimicsException { + exception, + msg: crate::api::base::sim_exception::last_error() + "(" + #input_name + ")" + }) + } + } + } + + }; + + quote! { + #input + #wrapper + } + .into() +} + +trait SnakeToCamel { + fn snake_to_camel(&self) -> String; +} + +impl SnakeToCamel for String { + fn snake_to_camel(&self) -> String { + let mut s = String::new(); + let mut upper = false; + for c in self.chars() { + if upper || s.is_empty() { + s.push(c.to_ascii_uppercase()); + upper = false; + } else if c == '_' { + upper = true; + } else { + s.push(c.to_ascii_lowercase()); + } + } + s + } +} + +#[derive(Debug, FromMeta)] +struct InterfaceOpts {} + +#[proc_macro_error] +#[proc_macro_attribute] +/// Declare that a struct has an interface which can be registered for use with the SIMICS API. +/// +/// This macro generates an implementation of [`Interface`] and [`HasInterface`] for the +/// struct, as well as a new struct called #original_nameInterface, which wraps the +/// low-level pointer to CFFI compatible struct. The interface will be named the same as +/// the class, converted to ascii lowercase characters. For example a struct named +/// `Tsffs` will have a generated interface name `tsffs`. +/// +/// One implementation of the struct should be annotated with `#[interface_impl]` to +/// generate CFFI compatible functions that can be called through the SIMICS interface for that +/// implementation's methods. +pub fn interface(args: TokenStream, input: TokenStream) -> TokenStream { + let attr_args = match NestedMeta::parse_meta_list(args.into()) { + Ok(a) => a, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + let input = parse_macro_input!(input as ItemStruct); + + let _args = match InterfaceOpts::from_list(&attr_args) { + Ok(a) => a, + Err(e) => return TokenStream::from(e.write_errors()), + }; + + let vis = &input.vis; + let (impl_generics, ty_generics, where_clause) = &input.generics.split_for_impl(); + let ident = &input.ident; + let interface_ident = format_ident!("{}Interface", ident); + let interface_internal_ident = format_ident!("{}InterfaceInternal", ident); + let interface_name_literal: Lit = match parse_str(&format!( + r#"b"{}\0""#, + input.ident.to_string().to_ascii_lowercase() + )) { + Ok(l) => l, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + quote! { + #input + + #vis struct #interface_ident { + obj: *mut simics::api::ConfObject, + interface: *mut #interface_internal_ident, + } + + impl #impl_generics simics::api::traits::interface::HasInterface for #ident #ty_generics + #where_clause + { + type Interface = #interface_ident; + } + + impl simics::api::traits::interface::Interface for #interface_ident { + type InternalInterface = #interface_internal_ident; + type Name = &'static [u8]; + + const NAME: &'static [u8] = #interface_name_literal; + + fn new(obj: *mut simics::api::ConfObject, interface: *mut Self::InternalInterface) -> Self { + Self { obj, interface } + } + + fn register(cls: *mut simics::api::ConfClass) -> simics::Result<()> { + simics::api::base::conf_object::register_interface::(cls)?; + Ok(()) + } + + fn get(obj: *mut simics::api::ConfObject) -> simics::Result where Self: Sized { + simics::api::base::conf_object::get_interface::(obj) + } + } + } + .into() +} + +fn type_name(ty: &Type) -> Result { + if let Type::Path(ref p) = ty { + if let Some(segment) = p.path.segments.last() { + return Ok(segment.ident.clone()); + } + } + + Err(Error::custom("Incorrect type to get ident")) +} + +fn interface_function_type_to_ctype(ty: &Type) -> String { + match &ty { + Type::Paren(i) => interface_function_type_to_ctype(&i.elem), + Type::Tuple(t) => { + if t.elems.is_empty() { + "void".to_string() + } else { + panic!("Non-empty tuple is not a valid C type"); + } + } + Type::Path(p) => { + // First, check if the outer is an option. If it is, we just discard it and take the + // inner type. + if let Some(last) = p.path.segments.last() { + let ty_ident = &last.ident; + match &last.arguments { + syn::PathArguments::None => { + // No angle arguments, we can break down the type now + let tystr = ty_ident.to_string(); + match tystr.as_str() { + "ConfObject" => "conf_object_t", + "AttrValue" => "attr_value_t", + "BreakpointId" => "breakpoint_id_t", + "GenericAddress" => "generic_address_t", + "u8" => "uint8", + "u16" => "uint16", + "u32" => "uint32", + "u64" => "uint64", + "i8" => "int8", + "i16" => "int16", + "i32" => "int32", + "i64" => "int64", + // NOTE: This is not exactly right, but we don't expect anyone to + // run simics on a 32-bit host. + "f32" => "float", + "f64" => "double", + "usize" => "size_t", + "isize" => "ssize_t", + "c_char" => "char", + // Attempt to use the type as-is. This is unlikely to work, but allows + // creative people to be creative + other => other, + } + .to_string() + } + syn::PathArguments::AngleBracketed(a) => { + // Options and results can be extracted directly + if last.ident == "Option" || last.ident == "Result" { + if let Some(GenericArgument::Type(ty)) = a.args.first() { + interface_function_type_to_ctype(ty) + } else { + panic!("Unsupported generic arguments"); + } + } else { + panic!("Unsupported function type with arguments: {ty_ident}"); + } + } + _ => panic!("Unsupported interface function type argument"), + } + } else { + panic!("Unexpected empty path in interface function type"); + } + } + Type::Ptr(p) => { + let ptr_ty = interface_function_type_to_ctype(&p.elem); + let maybe_const = p + .const_token + .is_some() + .then_some("const ".to_string()) + .unwrap_or_default(); + format!("{maybe_const}{ptr_ty} *") + } + _ => panic!("Unsupported type for C interface generation: {ty:?}"), + } +} + +fn generate_interface_function_type(signature: &Signature) -> String { + let name = &signature.ident; + let ty = signature + .inputs + .iter() + .map(|i| match i { + FnArg::Receiver(_) => "conf_object_t * obj".to_string(), + FnArg::Typed(a) => { + let ty = interface_function_type_to_ctype(&a.ty); + let name = match &*a.pat { + Pat::Ident(ref p) => p.ident.to_string(), + _ => panic!("Expected ident pattern type"), + }; + format!("{} {}", ty, name) + } + }) + .collect::>(); + let ty_params = ty.join(", "); + + let output = match &signature.output { + ReturnType::Default => "void".to_string(), + ReturnType::Type(_, t) => interface_function_type_to_ctype(t), + }; + + format!("{output} (*{name})({ty_params});") +} + +fn generate_interface_header(input: &ItemImpl) -> String { + let input_name = type_name(&input.self_ty).expect("Invalid type name"); + let interface_name = input_name.to_string().to_ascii_lowercase(); + let interface_struct_name = format!("{interface_name}_interface"); + let interface_struct_name_define = interface_struct_name.to_ascii_uppercase(); + let include_guard = format!("{}_INTERFACE_H", interface_name.to_ascii_uppercase()); + let interface_functions = input + .items + .iter() + .filter_map(|i| { + if let ImplItem::Fn(ref f) = i { + Some(&f.sig) + } else { + None + } + }) + .map(generate_interface_function_type) + .collect::>(); + let interface_functions_code = interface_functions.join("\n "); + + formatdoc! {r#" + // Copyright (C) 2023 Intel Corporation + // SPDX-License-Identifier: Apache-2.0 + + #ifndef {include_guard} + #define {include_guard} + + #include + #include + + #ifdef __cplusplus + extern "C" {{ + #endif + + SIM_INTERFACE({interface_name}) {{ + {interface_functions_code} + }}; + + #define {interface_struct_name_define} "{interface_name}" + + #ifdef __cplusplus + }} + #endif + + #endif // {include_guard} + + "#} +} + +fn generate_interface_dml(input: &ItemImpl, header_name: S) -> String +where + S: AsRef, +{ + let header_name = header_name.as_ref(); + let input_name = type_name(&input.self_ty).expect("Invalid type name"); + let interface_name = input_name.to_string().to_ascii_lowercase(); + let interface_struct_name = format!("{interface_name}_interface"); + let interface_struct_name_define = interface_struct_name.to_ascii_uppercase(); + let interface_struct_ty_name = format!("{interface_struct_name}_t"); + let interface_functions = input + .items + .iter() + .filter_map(|i| { + if let ImplItem::Fn(ref f) = i { + Some(&f.sig) + } else { + None + } + }) + .map(generate_interface_function_type) + .collect::>(); + let interface_functions_code = interface_functions.join("\n "); + + formatdoc! {r#" + // Copyright (C) 2023 Intel Corporation + // SPDX-License-Identifier: Apache-2.0 + + dml 1.4; + + header %{{ + #include "{header_name}" + %}} + + extern typedef struct {{ + {interface_functions_code} + }} {interface_struct_ty_name}; + + extern const char *const {interface_struct_name_define}; + "#} +} + +fn generate_interface_makefile(header_name: S) -> String +where + S: AsRef, +{ + let header_name = header_name.as_ref(); + + formatdoc! {r#" + IFACE_FILES = {header_name} + THREAD_SAFE = yes + + ifeq ($(MODULE_MAKEFILE),) + $(error Make sure you compile your module from the project directory) + else + include $(MODULE_MAKEFILE) + endif + "#} +} + +#[derive(Debug, FromMeta)] +struct InterfaceImplOpts { + #[darling(rename = "modules_path")] + generate_path: Option, +} + +#[proc_macro_error] +#[proc_macro_attribute] +/// An implementation for an interface on a module. This attribute should be added to an +/// implementation of a struct annotated with `#[interface()]`. It generates an +/// FFI-compatible structure containing CFFI compatible function pointers to call +/// through to this struct's methods. +/// +/// # Arguments +/// +/// - `modules_path`: If set, generate a Makefile, .h, and .dml file for the interface. This +/// path should be to the project's `modules` directory. It can be relative to the crate +/// containing the code using this attribute. For example, if the `tsffs` crate is located in +/// $SIMICS_PROJECT/src/tsffs/, `modules_path = "../../modules/"` would be specified. This is +/// similar to the syntax used by `include!` and `include_str!`. +/// +/// # Notes on C/H generation +/// +/// In the normal build toolchain, an interface called `tsffs` is declared with: +/// +/// ```c +/// #ifndef TSFFS_INTERFACE_H +/// #define TSFFS_INTERFACE_H +/// #include +/// #include +/// +/// #ifdef __cplusplus +/// extern "C" { +/// #endif +/// +/// SIM_INTERFACE(tsffs) { +/// // Python-exportable interface methods... +/// #ifndef PYWRAP +/// // Non python-exportable methods +/// #endif +/// }; +/// #define TSFFS_INTERFACE "tsffs" +/// +/// #ifdef __cplusplus +/// } +/// #endif +/// #endif TSFFS_INTERFACE_H +/// ``` +/// Where `SIM_INTERFACE(tsffs)` expands to: +/// +/// ```c +/// typedef struct tsffs_interface tsffs_interface_t; struct tsffs_interface +/// ``` +/// +/// During code-generation, we do not include `pywrap.h`, and all methods must be exportable to +/// Python. We also do not use the `SIM_INTERFACE` macro. +pub fn interface_impl(args: TokenStream, input: TokenStream) -> TokenStream { + let attr_args = match NestedMeta::parse_meta_list(args.into()) { + Ok(a) => a, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + let input = parse_macro_input!(input as ItemImpl); + + let args = match InterfaceImplOpts::from_list(&attr_args) { + Ok(a) => a, + Err(e) => return TokenStream::from(e.write_errors()), + }; + + let input_name = match type_name(&input.self_ty) { + Ok(n) => n, + Err(e) => return TokenStream::from(e.write_errors()), + }; + let ffi_interface_mod_name = format!( + "{}_interface_ffi", + input_name.to_string().to_ascii_lowercase() + ); + let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl(); + let impl_fns = input + .items + .iter() + .filter_map(|i| { + if let ImplItem::Fn(ref f) = i { + Some(quote! { + #[ffi(arg(self), arg(rest))] + #f + }) + } else { + None + } + }) + .collect::>(); + + let internal_interface_name = format_ident!("{}InterfaceInternal", input_name); + let internal_interface_fields = input + .items + .iter() + .filter_map(|i| { + if let ImplItem::Fn(ref f) = i { + Some(&f.sig) + } else { + None + } + }) + .map(|s| { + let name = &s.ident; + let mut inputs = s + .inputs + .iter() + .skip(1) + .map(|i| quote!(#i)) + .collect::>(); + inputs.insert(0, quote!(obj: *mut simics::api::ConfObject)); + let output = match &s.output { + ReturnType::Default => quote!(()), + ReturnType::Type(_, t) => { + if s.output.is_result_type() { + let Type::Path(ref path) = &**t else { + panic!("Type is result but is not a path"); + }; + let Some(last) = path.path.segments.last() else { + panic!("Path has no last segment"); + }; + let PathArguments::AngleBracketed(args) = &last.arguments else { + panic!("Path does not have angle bracketed arguments"); + }; + let Some(first) = args.args.first() else { + panic!("Path does not have a first angle bracketed argument"); + }; + quote!(#first) + } else { + quote!(#t) + } + } + }; + quote!(pub #name: Option #output>) + }) + .collect::>(); + let internal_interface_default_args = input + .items + .iter() + .filter_map(|i| { + if let ImplItem::Fn(ref f) = i { + Some(&f.sig) + } else { + None + } + }) + .map(|s| { + let name = &s.ident; + let ffi_interface_mod_name = format_ident!("{ffi_interface_mod_name}"); + quote!(#name: Some(#ffi_interface_mod_name::#name)) + }) + .collect::>(); + + let crate_directory_path = PathBuf::from( + var("CARGO_MANIFEST_DIR").expect("No CARGO_MANIFEST_DIR set. This should be impossible."), + ); + + if let Some(generate_path) = args.generate_path { + let generate_path = if generate_path.starts_with('/') { + PathBuf::from(generate_path) + } else { + crate_directory_path.join(generate_path).join(format!( + "{}-interface", + input_name.to_string().to_ascii_lowercase() + )) + }; + + if !generate_path.is_dir() { + if let Err(e) = create_dir_all(&generate_path) { + return TokenStream::from( + Error::custom(format!( + "Failed to create generated interface directory: {e}" + )) + .write_errors(), + ); + } + } + + let header_name = format!( + "{}-interface.h", + input_name.to_string().to_ascii_lowercase() + ); + let dml_name = format!( + "{}-interface.dml", + input_name.to_string().to_ascii_lowercase() + ); + let makefile_name = "Makefile"; + + let header = generate_interface_header(&input); + let dml = generate_interface_dml(&input, &header_name); + let makefile = generate_interface_makefile(&header_name); + + write(generate_path.join(header_name), header).expect("Failed to write header file"); + write(generate_path.join(dml_name), dml).expect("Failed to write dml file"); + write(generate_path.join(makefile_name), makefile).expect("Failed to write makefile"); + } + + let q: TokenStream = quote! { + #[ffi(expect, mod_name = #ffi_interface_mod_name, self_ty = "*mut simics::api::ConfObject")] + impl #impl_generics #input_name #ty_generics #where_clause { + #(#impl_fns)* + } + + #[derive(Debug)] + pub struct #internal_interface_name { + #(#internal_interface_fields),* + } + + impl Default for #internal_interface_name { + fn default() -> Self { + Self { + #(#internal_interface_default_args),* + } + } + } + } + .into(); + + // println!("{q}"); + + q +} + +#[derive(Debug, FromMeta)] +struct SimicsTestsOpts { + package_root: String, +} + +#[proc_macro_error] +#[proc_macro_attribute] +/// Generate separate test functions for all SIMICS test python scripts (scripts beginning with +/// 's-' inside a directory that contains a SUITEINFO file. +/// +/// The path `package_root` should be a relative path from the test crate root to the package +/// root directory. Tests whose filenames end in "-fail" will expect a failure, not a success. +pub fn simics_tests(args: TokenStream, _input: TokenStream) -> TokenStream { + let attr_args = match NestedMeta::parse_meta_list(args.into()) { + Ok(a) => a, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + let args = match SimicsTestsOpts::from_list(&attr_args) { + Ok(a) => a, + Err(e) => return TokenStream::from(e.write_errors()), + }; + + let crate_directory_path = PathBuf::from( + var("CARGO_MANIFEST_DIR").expect("No CARGO_MANIFEST_DIR set. This should be impossible."), + ); + + let test_runner_path = crate_directory_path + .join(args.package_root) + .join("bin/test-runner"); + + if !test_runner_path.is_file() { + panic!( + "Test runner path {} does not exist.", + test_runner_path.display() + ); + } + + let test_runner_path = test_runner_path.to_str().unwrap_or_else(|| { + panic!( + "Could not get string for test runner path {}", + test_runner_path.display() + ) + }); + + let integration_tests_directory = crate_directory_path; + + let tests = read_dir(integration_tests_directory) + .expect("Failed to read integration tests directory") + .filter_map(|e| e.ok()) + .filter_map(|e| { + let p = e.path(); + p.file_stem().and_then(move |f| { + f.to_str() + .map(|f| f.to_string()) + .filter(|f| f.starts_with("s-")) + }) + }) + .map(|test_name| { + let test_name_ident = format_ident!( + "test_simics_{}", + test_name + .to_ascii_lowercase() + .replace("s-", "") + .replace('-', "_") + ); + let try_or_invert_try = if test_name.ends_with("-fail") { + quote!(.err().ok_or_else(|| anyhow::anyhow!("Expected failure, got success"))?) + } else { + quote!(?) + }; + quote! { + #[test] + fn #test_name_ident() -> anyhow::Result<()> { + std::process::Command::new(#test_runner_path) + .arg("-v") + .arg("-n") + .arg(#test_name) + .check()#try_or_invert_try; + + Ok(()) + } + } + }) + .collect::>(); + + quote! { + use command_ext::CommandExtCheck; + + #(#tests)* + } + .into() +} + +#[derive(Debug, FromField)] +#[darling(attributes(try_into_attr_value_type))] +struct TryIntoAttrValueTypeField { + ident: Option, + #[allow(unused)] + ty: Type, + skip: Flag, +} + +#[derive(Debug, FromDeriveInput)] +#[darling(attributes(try_into_attr_value_type), supports(struct_named))] +struct TryIntoAttrValueTypeDictOpts { + ident: Ident, + generics: Generics, + data: Data<(), TryIntoAttrValueTypeField>, +} + +impl TryIntoAttrValueTypeDictOpts { + fn to_tokens_dict(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + let Some(fields) = self.data.as_ref().take_struct() else { + panic!("Fields must be struct fields"); + }; + let dict_fields = fields + .iter() + .filter(|f| !f.skip.is_present()) + .filter_map(|f| { + f.ident.clone().map(|i| { + let ident_name = i.to_string(); + quote!((#ident_name.try_into()?, value.#i().clone().try_into()?)) + }) + }) + .collect::>(); + + tokens.extend(quote! { + impl #impl_generics TryFrom<#ident #ty_generics> for simics::api::AttrValueType #where_clause { + type Error = simics::Error; + fn try_from(value: #ident #ty_generics) -> simics::Result { + Ok(Self::Dict( + std::collections::BTreeMap::from_iter([ + #(#dict_fields),* + ]) + )) + } + } + + impl #impl_generics TryFrom<&#ident #ty_generics> for simics::api::AttrValueType #where_clause { + type Error = simics::Error; + fn try_from(value: &#ident #ty_generics) -> simics::Result { + value.clone().try_into() + } + } + }); + } +} + +impl ToTokens for TryIntoAttrValueTypeDictOpts { + fn to_tokens(&self, tokens: &mut TokenStream2) { + self.to_tokens_dict(tokens) + } +} + +#[proc_macro_derive(TryIntoAttrValueTypeDict)] +/// Derive macro for the [`Class`] trait. +pub fn try_into_attr_value_type_dict(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let args = match TryIntoAttrValueTypeDictOpts::from_derive_input(&input) { + Ok(opts) => opts, + Err(e) => return e.write_errors().into(), + }; + quote! { + #args + } + .into() +} + +#[derive(Debug, FromDeriveInput)] +#[darling(attributes(try_into_attr_value_type), supports(struct_named))] +struct TryIntoAttrValueTypeListOpts { + ident: Ident, + generics: Generics, + data: Data<(), TryIntoAttrValueTypeField>, +} + +impl TryIntoAttrValueTypeListOpts { + fn to_tokens_list(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + let Some(fields) = self.data.as_ref().take_struct() else { + panic!("Fields must be struct fields"); + }; + let dict_fields = fields + .iter() + .filter(|f| !f.skip.is_present()) + .filter_map(|f| { + f.ident + .clone() + .map(|i| quote!(value.#i().clone().try_into()?)) + }) + .collect::>(); + + tokens.extend(quote! { + impl #impl_generics TryFrom<#ident #ty_generics> for simics::api::AttrValueType #where_clause { + type Error = simics::Error; + fn try_from(value: #ident #ty_generics) -> simics::Result { + Ok(Self::List( + [ + #(#dict_fields),* + ] + .iter() + .collect::>() + )) + } + } + + impl #impl_generics TryFrom<&#ident #ty_generics> for simics::api::AttrValueType #where_clause { + type Error = simics::Error; + fn try_from(value: &#ident #ty_generics) -> simics::Result { + value.clone().try_into() + } + } + }); + } +} + +impl ToTokens for TryIntoAttrValueTypeListOpts { + fn to_tokens(&self, tokens: &mut TokenStream2) { + self.to_tokens_list(tokens) + } +} + +#[proc_macro_derive(TryIntoAttrValueTypeList)] +/// Derive macro for the [`Class`] trait. +pub fn try_into_attr_value_type_list(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let args = match TryIntoAttrValueTypeListOpts::from_derive_input(&input) { + Ok(opts) => opts, + Err(e) => return e.write_errors().into(), + }; + quote! { + #args + } + .into() +} + +#[derive(Debug, FromField)] +#[darling(attributes(try_from_attr_value_type))] +struct TryFromAttrValueTypeField { + ident: Option, + #[allow(unused)] + ty: Type, +} + +#[derive(Debug, FromDeriveInput)] +#[darling(attributes(try_from_attr_value_type), supports(struct_named))] +struct TryFromAttrValueTypeListOpts { + ident: Ident, + generics: Generics, + data: Data<(), TryFromAttrValueTypeField>, +} + +impl TryFromAttrValueTypeListOpts { + fn to_tokens_list(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + let Some(fields) = self.data.as_ref().take_struct() else { + panic!("Fields must be struct fields"); + }; + + let dict_fields = fields + .iter() + .enumerate() + .filter_map(|(index, f)| { + f.ident.clone().map(|ident| { + let ident_name = ident.to_string(); + quote! { + #ident: value.get(#index) + .ok_or_else(|| simics::Error::AttrValueDictMissingKey { key: #ident_name.to_string()})? + .clone() + .try_into()? + } + }) + }) + .collect::>(); + + tokens.extend(quote! { + impl #impl_generics TryFrom for #ident #ty_generics #where_clause { + type Error = simics::Error; + + fn try_from(value: simics::api::AttrValueType) -> simics::Result { + let simics::api::AttrValueType::List(value) = value else { + return Err(simics::Error::FromAttrValueTypeConversionError { + ty: std::any::type_name::<#ident #ty_generics>().to_string(), + }); + }; + + Ok(Self { + #(#dict_fields),* + }) + } + } + + impl #impl_generics TryFrom for #ident #ty_generics #where_clause { + type Error = simics::Error; + + fn try_from(value: simics::api::AttrValue) -> simics::Result { + // NOTE: We cannot use AttrValueType here, because we are most likely + // converting from a non-homogeneous list. + let value: Vec = value.as_heterogeneous_list()?.ok_or_else(|| simics::Error::AttrValueType { + actual: value.kind(), + expected: simics::api::AttrKind::Sim_Val_List, + })?; + + Ok(Self { + #(#dict_fields),* + }) + } + } + }); + } +} + +impl ToTokens for TryFromAttrValueTypeListOpts { + fn to_tokens(&self, tokens: &mut TokenStream2) { + self.to_tokens_list(tokens) + } +} + +#[proc_macro_derive(TryFromAttrValueTypeList)] +/// Derive macro that allows deserialization from an attrvalue +pub fn try_from_attr_value_type_list(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let args = match TryFromAttrValueTypeListOpts::from_derive_input(&input) { + Ok(opts) => opts, + Err(e) => return e.write_errors().into(), + }; + let q: TokenStream = quote! { + #args + } + .into(); + + // println!("{}", q); + + q +} + +#[derive(Debug, FromDeriveInput)] +#[darling(attributes(try_from_attr_value_type), supports(struct_named))] +struct TryFromAttrValueTypeDictOpts { + ident: Ident, + generics: Generics, + data: Data<(), TryFromAttrValueTypeField>, +} + +impl TryFromAttrValueTypeDictOpts { + fn to_tokens_dict(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + let Some(fields) = self.data.as_ref().take_struct() else { + panic!("Fields must be struct fields"); + }; + + let dict_fields = fields + .iter() + .filter_map(|f| { + f.ident.clone().map(|i| { + let ident_name = i.to_string(); + quote! { + #i: value.get(&#ident_name.into()) + .ok_or_else(|| simics::Error::AttrValueDictMissingKey { key: #ident_name.to_string()})? + .clone() + .try_into()? + + } + }) + }) + .collect::>(); + + tokens.extend(quote! { + impl #impl_generics TryFrom for #ident #ty_generics #where_clause { + type Error = simics::Error; + + fn try_from(value: simics::api::AttrValueType) -> simics::Result { + let simics::api::AttrValueType::Dict(value) = value else { + return Err(simics::Error::FromAttrValueTypeConversionError { + ty: std::any::type_name::<#ident #ty_generics>().to_string(), + }); + }; + Ok(Self { + #(#dict_fields),* + }) + } + } + + impl #impl_generics TryFrom for #ident #ty_generics #where_clause { + type Error = simics::Error; + + fn try_from(value: simics::api::AttrValue) -> simics::Result { + let value = value.as_heterogeneous_dict()?.ok_or_else(|| simics::Error::AttrValueType { + actual: value.kind(), + expected: simics::api::AttrKind::Sim_Val_Dict, + })?; + + Ok(Self { + #(#dict_fields),* + }) + } + } + }); + } +} + +impl ToTokens for TryFromAttrValueTypeDictOpts { + fn to_tokens(&self, tokens: &mut TokenStream2) { + self.to_tokens_dict(tokens) + } +} + +#[proc_macro_derive(TryFromAttrValueTypeDict)] +/// Derive macro that allows deserialization from an attrvalue +pub fn try_from_attr_value_type_dict(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let args = match TryFromAttrValueTypeDictOpts::from_derive_input(&input) { + Ok(opts) => opts, + Err(e) => return e.write_errors().into(), + }; + let q: TokenStream = quote! { + #args + } + .into(); + + // println!("{}", q); + + q +} diff --git a/modules/tsffs/src/simics/simics/Cargo.toml b/modules/tsffs/src/simics/simics/Cargo.toml new file mode 100644 index 00000000..dd2bbad7 --- /dev/null +++ b/modules/tsffs/src/simics/simics/Cargo.toml @@ -0,0 +1,46 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[package] +name = "simics" +categories.workspace = true +description = "Tools for embedding SIMICS in Rust applications" +edition.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +publish.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + +[dependencies] +raw-cstr = { workspace = true } +simics-macro = { workspace = true, optional = true } +simics-api-sys = { workspace = true } +ispm-wrapper = { workspace = true } +clap = { version = "4.3.0", features = ["derive"] } +num = "0.4.0" +num-traits = "0.2.15" +paste = "1.0.12" +regex = "1.8.3" +tracing = "0.1.37" +walkdir = "2.3.3" +thiserror = "1.0.49" +anyhow.workspace = true +typed-builder = "0.18.0" +ordered-float = "4.1.1" + +[features] +default = ["derive", "link"] +derive = ["simics-macro"] +link = ["simics-api-sys/link"] + +[build-dependencies] +anyhow.workspace = true +prettyplease = "0.2.15" +simics-api-sys.workspace = true +simics-codegen.workspace = true +simics-macro.workspace = true +syn = "2.0.38" +version-tools.workspace = true diff --git a/modules/tsffs/src/simics/simics/build.rs b/modules/tsffs/src/simics/simics/build.rs new file mode 100644 index 00000000..2c1d7e99 --- /dev/null +++ b/modules/tsffs/src/simics/simics/build.rs @@ -0,0 +1,60 @@ +use anyhow::{anyhow, Result}; +use prettyplease::unparse; +use std::{env::var, fs::write, path::PathBuf, str::FromStr}; +use syn::parse_file; +use version_tools::{VersionConstraint, Versioning}; + +/// The name of the environment variable set by cargo containing the path to the out directory +/// for intermediate build results +const OUT_DIR_ENV: &str = "OUT_DIR"; + +use simics_api_sys::{SIMICS_API_BINDINGS, SIMICS_VERSION}; +use simics_codegen::{simics_hap_codegen, simics_interface_codegen}; + +const INTERFACES_FILE: &str = "interfaces.rs"; +const HAPS_FILE: &str = "haps.rs"; + +fn main() -> Result<()> { + let out_dir = PathBuf::from( + var(OUT_DIR_ENV) + .map_err(|e| anyhow!("No environment variable {OUT_DIR_ENV} found: {e}"))?, + ); + + // Write intermediate auto-generated high level bindings for interfaces and haps + + let interfaces_out_file = out_dir.join(INTERFACES_FILE); + let haps_out_file = out_dir.join(HAPS_FILE); + + let interfaces_tokens = simics_interface_codegen(SIMICS_API_BINDINGS); + let haps_tokens = simics_hap_codegen(SIMICS_API_BINDINGS); + + write( + interfaces_out_file, + unparse(&parse_file(&interfaces_tokens.to_string())?), + )?; + write( + haps_out_file, + unparse(&parse_file(&haps_tokens.to_string())?), + )?; + + // Set configurations to conditionally enable experimental features that aren't + // compatible with all supported SIMICS versions, based on the SIMICS version of the + // low level bindings. + + let simics_api_version = Versioning::new(SIMICS_VERSION) + .ok_or_else(|| anyhow!("Invalid version {}", SIMICS_VERSION))?; + + if VersionConstraint::from_str("<6.0.163")?.matches(&simics_api_version) { + // Bail out if we are targeting a version before 6.0.163. We don't test any earlier than + // this. + panic!("Target SIMICS API version is too old. The minimum version supported is 6.0.163."); + } + + if VersionConstraint::from_str(">=6.0.173")?.matches(&simics_api_version) { + // Enable the experimental snapshots api for versions over 6.0.173 (where the API first + // appears) + println!("cargo:rustc-cfg=simics_experimental_api_snapshots"); + } + + Ok(()) +} diff --git a/modules/tsffs/src/simics/simics/src/api/base/attr_value.rs b/modules/tsffs/src/simics/simics/src/api/base/attr_value.rs new file mode 100644 index 00000000..62f3912b --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/base/attr_value.rs @@ -0,0 +1,2564 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Type-safe wrappers for operations on `AttrValue`s + +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use crate::{ + api::{ + sys::{ + attr_kind_t, attr_value__bindgen_ty_1, attr_value_t, SIM_alloc_attr_dict, + SIM_alloc_attr_list, SIM_attr_dict_resize, SIM_attr_dict_set_item, + SIM_attr_list_resize, SIM_attr_list_set_item, SIM_free_attribute, + }, + ConfObject, + }, + Error, Result, +}; +use ordered_float::OrderedFloat; +use simics_macro::simics_exception; +use std::{ + any::type_name, + collections::{BTreeMap, BTreeSet, HashMap, HashSet}, + ffi::{CStr, CString}, + fmt::Debug, + hash::Hash, + mem::size_of, + path::PathBuf, + ptr::null_mut, +}; + +pub type AttrKind = attr_kind_t; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct AttrValue(attr_value_t); + +// NOTE: Safety for AttrValue types must be obeyed +unsafe impl Send for AttrValue {} +unsafe impl Sync for AttrValue {} + +impl Debug for AttrValue { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_tuple("AttrValue") + .field(&self.0.private_kind) + .field(&self.0.private_size) + .finish() + } +} + +impl AttrValue { + /// Construct a nil `AttrValue` + pub fn nil() -> Self { + Self(attr_value_t { + private_kind: AttrKind::Sim_Val_Nil, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { integer: 0 }, + }) + } + + /// Construct an intentionally invalid `AttrValue` + pub fn invalid() -> Self { + Self(attr_value_t { + private_kind: AttrKind::Sim_Val_Invalid, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { integer: 0 }, + }) + } + + /// Construct an empty `AttrValue` list of a certain length. This should typically not be + /// used, a `Vec where T: TryInto` can be converted to an `AttrValue` with + /// `try_into`. + pub fn list(length: usize) -> Result { + alloc_attr_list(length.try_into()?) + } + + /// Construct an empty `AttrValue` dict of a certain size. This should typically not + /// be used, a `BTreeMap where T: TryInto, U: TryInto` + /// can be converted to an `AttrValue` with `try_into`. + pub fn dict(size: usize) -> Result { + alloc_attr_dict(size.try_into()?) + } +} + +impl AttrValue { + /// Get a constant pointer to the inner attr value + pub fn as_ptr(&self) -> *const attr_value_t { + &self.0 as *const attr_value_t + } + + /// Get a mutable pointer to the inner attr value + pub fn as_mut_ptr(&mut self) -> *mut attr_value_t { + &mut self.0 as *mut attr_value_t + } + + /// Get the kind of the attr value + pub fn kind(&self) -> AttrKind { + self.0.private_kind + } + + /// Get the size of the attr value. This is only non-zero in cases where the + /// value is a collection (list, dict) or data type + pub fn size(&self) -> u32 { + self.0.private_size + } + + /// Get whether the value is invalid type + pub fn is_invalid(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Invalid + } + + /// Get whether the value is nil type + pub fn is_nil(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Nil + } + + /// Get whether the value is integer type + pub fn is_integer(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Integer + } + + /// Get whether the value is unsigned integer type + pub fn is_unsigned(&self) -> bool { + self.is_integer() && self.size() == 0 + } + + /// Get whether the value is unsigned integer type + pub fn is_signed(&self) -> bool { + self.is_integer() && self.size() == 1 + } + + /// Get whether the value is boolean type + pub fn is_boolean(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Boolean + } + + /// Get whether the value is string type + pub fn is_string(&self) -> bool { + self.kind() == AttrKind::Sim_Val_String + } + + /// Get whether the value is floating type + pub fn is_floating(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Floating + } + + /// Get whether the value is object type + pub fn is_object(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Object + } + + /// Get whether the value is data type + pub fn is_data(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Data + } + + /// Get whether the value is list type + pub fn is_list(&self) -> bool { + self.kind() == AttrKind::Sim_Val_List + } + + /// Get whether the value is dict type + pub fn is_dict(&self) -> bool { + self.kind() == AttrKind::Sim_Val_Dict + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_integer(&self) -> Option { + self.is_integer() + .then_some(unsafe { self.0.private_u.integer }) + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_unsigned(&self) -> Option { + self.is_unsigned().then_some(u64::from_le_bytes(unsafe { + self.0.private_u.integer.to_le_bytes() + })) + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_signed(&self) -> Option { + self.is_signed() + .then_some(unsafe { self.0.private_u.integer }) + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_boolean(&self) -> Option { + self.is_boolean() + .then_some(unsafe { self.0.private_u.boolean }) + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_string(&self) -> Option { + self.is_string() + .then(|| { + unsafe { CStr::from_ptr(self.0.private_u.string) } + .to_str() + .ok() + .map(|s| s.to_string()) + }) + .flatten() + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_floating(&self) -> Option { + self.is_floating() + .then_some(unsafe { self.0.private_u.floating }) + } + + /// Get the value as an integer, if it is one, or `None` otherwise. + pub fn as_object(&self) -> Option<*mut ConfObject> { + self.is_object() + .then_some(unsafe { self.0.private_u.object }) + } + + /// Get the value as an integer, if it is one, or `None` otherwise. Data is copied, the + /// `AttrValue` maintains ownership. + pub fn as_data(&self) -> Option + where + T: Clone, + { + if self.is_data() { + // NOTE: This is leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + let data = Box::leak(unsafe { Box::from_raw(self.0.private_u.data as *mut T) }); + + Some(data.clone()) + } else { + None + } + } + + /// Get the value as a list, if it is one, or `None` otherwise. Data is copied, the + /// `AttrValue` maintains ownership. + pub fn as_list(&self) -> Result>> + where + T: TryFrom + Clone, + Error: From<>::Error>, + { + if self.is_list() { + let size = self.size() as isize; + + // Rust vectors cannot be heterogeneous + + let items = (0..size) + // NOTE: These are leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + .map(|i| Box::leak(unsafe { Box::from_raw(self.0.private_u.list.offset(i)) })) + .collect::>(); + + if items + .iter() + .all(|i| Some(i.private_kind) == items.first().map(|f| f.private_kind)) + { + Ok(Some( + items + .into_iter() + .map(|i| { + let value = AttrValue(*i); + value.try_into().map_err(|e| { + Error::NestedFromAttrValueConversionError { + value, + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + } + }) + }) + .collect::>>()?, + )) + } else { + Err(Error::NonHomogeneousList) + } + } else { + Ok(None) + } + } + + /// Get the value as a list, if it is one, or `None` otherwise. Data is copied, the + /// `AttrValue` maintains ownership. + pub fn as_heterogeneous_list(&self) -> Result>> { + if self.is_list() { + let size = self.size() as isize; + + // Rust vectors cannot be heterogeneous + + let items = (0..size) + // NOTE: These are leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + .map(|i| Box::leak(unsafe { Box::from_raw(self.0.private_u.list.offset(i)) })) + .collect::>(); + + Ok(Some( + items + .into_iter() + .map(|i| { + let value = AttrValue(*i); + value + .try_into() + .map_err(|e| Error::NestedFromAttrValueConversionError { + value, + ty: type_name::().to_string(), + source: Box::new(e), + }) + }) + .collect::>>()?, + )) + } else { + Ok(None) + } + } + + /// Get the value as a dict, if it is one, or `None` otherwise. Data is copied, the + /// `AttrValue` maintains ownership. + pub fn as_dict(&self) -> Result>> + where + T: TryFrom + Ord, + U: TryFrom, + Error: From<>::Error>, + Error: From<>::Error>, + { + if self.is_dict() { + let size = self.size() as isize; + + let items = (0..size) + .map(|i| { + // NOTE: These are leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + ( + Box::leak(unsafe { Box::from_raw(self.0.private_u.dict.offset(i)) }).key, + Box::leak(unsafe { Box::from_raw(self.0.private_u.dict.offset(i)) }).value, + ) + }) + .collect::>(); + + if items.iter().all(|(k, v)| { + Some(k.private_kind) == items.first().map(|f| f.0.private_kind) + && Some(v.private_kind) == items.first().map(|f| f.1.private_kind) + }) { + Ok(Some( + items + .into_iter() + .map(|(k, v)| { + let key = AttrValue(k); + key.try_into() + .map_err(|e| Error::NestedFromAttrValueConversionError { + value: key, + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + let value = AttrValue(v); + value + .try_into() + .map_err(|e| Error::NestedFromAttrValueConversionError { + value, + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + }) + .collect::>>()? + .into_iter() + .collect::>(), + )) + } else { + Err(Error::NonHomogeneousDict) + } + } else { + Ok(None) + } + } + + /// Get the value as a dict, if it is one, or `None` otherwise. Data is copied, the + /// `AttrValue` maintains ownership. + pub fn as_heterogeneous_dict(&self) -> Result>> { + Ok(if self.is_dict() { + let size = self.size() as isize; + + let items = (0..size) + .map(|i| { + // NOTE: These are leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + ( + Box::leak(unsafe { Box::from_raw(self.0.private_u.dict.offset(i)) }).key, + Box::leak(unsafe { Box::from_raw(self.0.private_u.dict.offset(i)) }).value, + ) + }) + .collect::>(); + + Some( + items + .into_iter() + .map(|(k, v)| { + let key = AttrValue(k); + key.try_into() + .map_err(|e| Error::NestedFromAttrValueConversionError { + value: key, + ty: type_name::().to_string(), + source: Box::new(e), + }) + .and_then(|k| { + let value = AttrValue(v); + value + .try_into() + .map_err(|e| Error::NestedFromAttrValueConversionError { + value, + ty: type_name::().to_string(), + source: Box::new(e), + }) + .map(|v| (k, v)) + }) + }) + .collect::>>()? + .into_iter() + .collect::>(), + ) + } else { + None + }) + } +} + +impl From for AttrValue { + fn from(value: attr_value_t) -> Self { + AttrValue(value) + } +} + +impl From for attr_value_t { + fn from(value: AttrValue) -> Self { + value.0 + } +} + +impl From for AttrValue { + fn from(value: i64) -> Self { + AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_Integer, + private_size: 1, + private_u: attr_value__bindgen_ty_1 { integer: value }, + }) + } +} + +impl From for AttrValue { + fn from(value: u64) -> Self { + AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_Integer, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { + integer: i64::from_le_bytes(value.to_le_bytes()), + }, + }) + } +} + +impl From for AttrValue { + fn from(value: f64) -> Self { + AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_Floating, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { floating: value }, + }) + } +} + +macro_rules! impl_from_signed { + ($t:ty) => { + impl From<$t> for AttrValue { + fn from(value: $t) -> AttrValue { + #[allow(clippy::unnecessary_cast)] + AttrValue::from(value as i64) + } + } + + impl From<&$t> for AttrValue { + fn from(value: &$t) -> AttrValue { + #[allow(clippy::unnecessary_cast)] + AttrValue::from(*value as i64) + } + } + }; +} + +macro_rules! impl_from_unsigned { + ($t:ty) => { + impl From<$t> for AttrValue { + fn from(value: $t) -> AttrValue { + #[allow(clippy::unnecessary_cast)] + AttrValue::from(value as u64) + } + } + + impl From<&$t> for AttrValue { + fn from(value: &$t) -> AttrValue { + #[allow(clippy::unnecessary_cast)] + AttrValue::from(*value as u64) + } + } + }; +} + +macro_rules! impl_from_float { + ($t:ty) => { + impl From<$t> for AttrValue { + fn from(value: $t) -> AttrValue { + #[allow(clippy::unnecessary_cast)] + AttrValue::from(value as f64) + } + } + + impl From<&$t> for AttrValue { + fn from(value: &$t) -> AttrValue { + #[allow(clippy::unnecessary_cast)] + AttrValue::from(*value as f64) + } + } + }; +} + +impl_from_unsigned! { u8 } +impl_from_unsigned! { u16 } +impl_from_unsigned! { u32 } +impl_from_unsigned! { usize } +impl_from_signed! { i8 } +impl_from_signed! { i16 } +impl_from_signed! { i32 } +impl_from_signed! { isize } +impl_from_float! { f32 } + +impl From> for AttrValue { + fn from(value: OrderedFloat) -> Self { + AttrValue::from(value.0 as f64) + } +} + +impl From<&OrderedFloat> for AttrValue { + fn from(value: &OrderedFloat) -> Self { + AttrValue::from(value.0 as f64) + } +} + +impl From> for AttrValue { + fn from(value: OrderedFloat) -> Self { + AttrValue::from(value.0) + } +} + +impl From<&OrderedFloat> for AttrValue { + fn from(value: &OrderedFloat) -> Self { + AttrValue::from(value.0) + } +} + +impl From for AttrValue { + fn from(value: String) -> Self { + AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_String, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { + string: CString::new(value) + .expect("Failed to allocate memory for string") + .into_raw(), + }, + }) + } +} + +impl From<&str> for AttrValue { + fn from(value: &str) -> Self { + AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_String, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { + string: CString::new(value) + .expect("Failed to allocate memory for string") + .into_raw(), + }, + }) + } +} + +impl From for AttrValue { + fn from(value: bool) -> Self { + AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_Boolean, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { boolean: value }, + }) + } +} + +impl From<*mut ConfObject> for AttrValue { + fn from(value: *mut ConfObject) -> Self { + AttrValue(attr_value_t { + private_kind: if value.is_null() { + AttrKind::Sim_Val_Nil + } else { + AttrKind::Sim_Val_Object + }, + private_size: 0, + private_u: attr_value__bindgen_ty_1 { object: value }, + }) + } +} + +// Conversions from types whose conversion to AttrValue is always fallible. These are mostly +// collections. These implementations are split into two parts: collections whose elements are +// infallibly convertible to Attrvalue, and those whose elements are only fallibly convertible +// to AttrValue. For example, if a collection contains collections. +// +// NOTE: From for U implies TryFrom for U, so this is just a more general way to allow +// anything convertible. + +impl TryFrom for AttrValue { + type Error = Error; + + fn try_from(value: PathBuf) -> Result { + value + .to_str() + .ok_or_else(|| Error::ToString) + .map(|s| s.to_string().into()) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: Option) -> Result { + if let Some(value) = value { + value + .try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + } else { + Ok(AttrValue::nil()) + } + } +} + +impl TryFrom<&[T]> for AttrValue +where + T: TryInto + Clone, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: &[T]) -> Result { + let mut list = AttrValue::list(value.len())?; + value.iter().enumerate().try_for_each(|(i, a)| { + a.clone() + .try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|a| attr_list_set_item(&mut list, i as u32, a)) + })?; + Ok(list) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: Vec) -> Result { + let mut list = AttrValue::list(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, a)| { + a.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|a| attr_list_set_item(&mut list, i as u32, a)) + })?; + Ok(list) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: HashSet) -> Result { + let mut list = AttrValue::list(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, a)| { + a.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|a| attr_list_set_item(&mut list, i as u32, a)) + })?; + + Ok(list) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: BTreeSet) -> Result { + let mut list = AttrValue::list(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, a)| { + a.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|a| attr_list_set_item(&mut list, i as u32, a)) + })?; + Ok(list) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + U: TryInto, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: HashMap) -> Result { + let mut dict = AttrValue::dict(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, (k, v))| { + k.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + .and_then(|(k, v)| attr_dict_set_item(&mut dict, i as u32, k, v)) + })?; + Ok(dict) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + U: TryInto, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: BTreeMap) -> Result { + let mut dict = AttrValue::dict(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, (k, v))| { + k.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + .and_then(|(k, v)| attr_dict_set_item(&mut dict, i as u32, k, v)) + })?; + Ok(dict) + } +} + +impl TryFrom<&[(T, U)]> for AttrValue +where + T: TryInto + Clone, + U: TryInto + Clone, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: &[(T, U)]) -> Result { + let mut dict = AttrValue::dict(value.len())?; + value.iter().enumerate().try_for_each(|(i, (k, v))| { + k.clone() + .try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.clone() + .try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + .and_then(|(k, v)| attr_dict_set_item(&mut dict, i as u32, k, v)) + })?; + Ok(dict) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + U: TryInto, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: Vec<(T, U)>) -> Result { + let mut dict = AttrValue::dict(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, (k, v))| { + k.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + .and_then(|(k, v)| attr_dict_set_item(&mut dict, i as u32, k, v)) + })?; + Ok(dict) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + U: TryInto, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: HashSet<(T, U)>) -> Result { + let mut dict = AttrValue::dict(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, (k, v))| { + k.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + .and_then(|(k, v)| attr_dict_set_item(&mut dict, i as u32, k, v)) + })?; + Ok(dict) + } +} + +impl TryFrom> for AttrValue +where + T: TryInto, + U: TryInto, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: BTreeSet<(T, U)>) -> Result { + let mut dict = AttrValue::dict(value.len())?; + value.into_iter().enumerate().try_for_each(|(i, (k, v))| { + k.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedToAttrValueConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + .and_then(|(k, v)| attr_dict_set_item(&mut dict, i as u32, k, v)) + })?; + Ok(dict) + } +} + +// Conversions *from* AttrValue to other types. These are all fallible because the AttrValue may +// not be the type an attempt is being made to convert it to. + +macro_rules! impl_try_into_unsigned { + ($t:ty) => { + impl TryFrom for $t { + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value + .as_unsigned() + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_Integer, + }) + .and_then(|i| { + i.try_into() + .map_err(|_| Error::FromAttrValueConversionError { + value, + ty: type_name::<$t>().to_string(), + }) + }) + } + } + }; +} + +macro_rules! impl_try_into_signed { + ($t:ty) => { + impl TryFrom for $t { + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value + .as_signed() + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_Integer, + }) + .and_then(|i| { + i.try_into() + .map_err(|_| Error::FromAttrValueConversionError { + value, + ty: type_name::<$t>().to_string(), + }) + }) + } + } + }; +} + +macro_rules! impl_try_into_float { + ($t:ty) => { + impl TryFrom for $t { + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value + .as_floating() + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_Floating, + }) + .and_then(|f| { + f.try_into() + .map_err(|_| Error::FromAttrValueConversionError { + value, + ty: type_name::<$t>().to_string(), + }) + }) + } + } + }; +} + +impl_try_into_unsigned! { u8 } +impl_try_into_unsigned! { u16 } +impl_try_into_unsigned! { u32 } +impl_try_into_unsigned! { u64 } +impl_try_into_unsigned! { usize } +impl_try_into_signed! { i8 } +impl_try_into_signed! { i16 } +impl_try_into_signed! { i32 } +impl_try_into_signed! { i64 } +impl_try_into_signed! { isize } +impl_try_into_float! { f64 } + +impl TryFrom for bool { + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value.as_boolean().ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_Boolean, + }) + } +} + +impl TryFrom for String { + type Error = Error; + fn try_from(value: AttrValue) -> Result { + value.as_string().ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_String, + }) + } +} + +impl TryFrom for PathBuf { + type Error = Error; + fn try_from(value: AttrValue) -> Result { + value + .as_string() + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_String, + }) + .map(PathBuf::from) + } +} + +impl TryFrom for Vec +where + T: TryFrom + Clone, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value.as_list()?.ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_List, + }) + } +} + +impl TryFrom for HashSet +where + T: TryFrom + Eq + Hash + Clone, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value + .as_list()? + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_List, + }) + .map(|s| s.into_iter().collect::>()) + } +} + +impl TryFrom for BTreeSet +where + T: TryFrom + Ord + Clone, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value + .as_list()? + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_List, + }) + .map(|s| s.into_iter().collect::>()) + } +} + +impl TryFrom for HashMap +where + T: TryFrom + Eq + Hash + Ord, + U: TryFrom, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value + .as_dict()? + .ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_Dict, + }) + .map(|d| d.into_iter().collect::>()) + } +} + +impl TryFrom for BTreeMap +where + T: TryFrom + Ord, + U: TryFrom, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + value.as_dict()?.ok_or_else(|| Error::AttrValueType { + actual: value.kind(), + expected: AttrKind::Sim_Val_Dict, + }) + } +} + +#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)] +pub enum AttrValueType { + Nil, + Bool(bool), + Signed(i64), + Unsigned(u64), + Float(OrderedFloat), + String(String), + List(Vec), + Dict(BTreeMap), +} + +impl AttrValueType { + pub fn is_nil(&self) -> bool { + matches!(self, Self::Nil) + } + + pub fn is_boolean(&self) -> bool { + matches!(self, Self::Bool(_)) + } + + pub fn is_integer(&self) -> bool { + matches!(self, Self::Signed(_) | Self::Unsigned(_)) + } + + pub fn is_signed(&self) -> bool { + matches!(self, Self::Signed(_)) + } + + pub fn is_unsigned(&self) -> bool { + matches!(self, Self::Unsigned(_)) + } + + pub fn is_floating(&self) -> bool { + matches!(self, Self::Float(_)) + } + + pub fn is_string(&self) -> bool { + matches!(self, Self::String(_)) + } + + pub fn is_list(&self) -> bool { + matches!(self, Self::List(_)) + } + + pub fn is_dict(&self) -> bool { + matches!(self, Self::Dict(_)) + } + + pub fn as_nil(&self) -> Option<()> { + self.is_nil().then_some(()) + } + + pub fn as_boolean(&self) -> Option { + match self { + Self::Bool(b) => Some(*b), + _ => None, + } + } + + pub fn as_unsigned(&self) -> Option { + match self { + Self::Unsigned(u) => Some(*u), + _ => None, + } + } + + pub fn as_signed(&self) -> Option { + match self { + Self::Signed(i) => Some(*i), + _ => None, + } + } + + pub fn as_float(&self) -> Option { + match self { + Self::Float(f) => Some(f.0), + _ => None, + } + } + + pub fn as_string(&self) -> Option { + match self { + Self::String(s) => Some(s.clone()), + _ => None, + } + } + + pub fn as_list(&self) -> Option> { + match self { + Self::List(l) => Some(l.clone()), + _ => None, + } + } + + pub fn as_dict(&self) -> Option> { + match self { + Self::Dict(d) => Some(d.clone()), + _ => None, + } + } +} + +macro_rules! impl_attr_value_type_from { + ($t:ty, $($variant:tt)+) => { + impl From<$t> for AttrValueType { + fn from(value: $t) -> Self { + $($variant)+(value.into()) + } + } + }; +} + +impl_attr_value_type_from! { u8, Self::Unsigned } +impl_attr_value_type_from! { u16, Self::Unsigned } +impl_attr_value_type_from! { u32, Self::Unsigned } +impl_attr_value_type_from! { u64, Self::Unsigned } +impl_attr_value_type_from! { i8, Self::Signed } +impl_attr_value_type_from! { i16, Self::Signed } +impl_attr_value_type_from! { i32, Self::Signed } +impl_attr_value_type_from! { i64, Self::Signed } +impl_attr_value_type_from! { f64, Self::Float } +impl_attr_value_type_from! { bool, Self::Bool} +impl_attr_value_type_from! { String, Self::String } + +impl From for AttrValueType { + fn from(value: usize) -> Self { + // NOTE: This is ok, because SIMICS does not support 128-bit native address machines + Self::Unsigned(value as u64) + } +} + +impl From for AttrValueType { + fn from(value: isize) -> Self { + // NOTE: This is ok, because SIMICS does not support 128-bit native address machines + Self::Signed(value as i64) + } +} + +impl From<&str> for AttrValueType { + fn from(value: &str) -> Self { + Self::String(value.to_string()) + } +} + +impl From for AttrValueType { + fn from(value: PathBuf) -> Self { + value + .to_str() + .ok_or_else(|| Error::ToString) + .map(|s| s.to_string().into()) + // TODO: Do not panic here, update TryIntoAttrValueTypeDict to use try_into() + .expect("Failed to convert pathbuf to string") + } +} + +impl From> for AttrValueType +where + T: Into, +{ + fn from(value: Vec) -> Self { + Self::List(value.into_iter().map(|i| i.into()).collect::>()) + } +} + +impl From> for AttrValueType +where + T: Into, +{ + fn from(value: BTreeSet) -> Self { + Self::List(value.into_iter().map(|i| i.into()).collect::>()) + } +} + +impl From> for AttrValueType +where + T: Into, +{ + fn from(value: HashSet) -> Self { + Self::List(value.into_iter().map(|i| i.into()).collect::>()) + } +} + +impl From> for AttrValueType +where + T: Into, + U: Into, +{ + fn from(value: BTreeMap) -> Self { + Self::Dict( + value + .into_iter() + .map(|(k, v)| (k.into(), v.into())) + .collect::>(), + ) + } +} + +impl From> for AttrValueType +where + T: Into, + U: Into, +{ + fn from(value: HashMap) -> Self { + Self::Dict( + value + .into_iter() + .map(|(k, v)| (k.into(), v.into())) + .collect::>(), + ) + } +} + +impl From> for AttrValueType +where + T: Into, +{ + fn from(value: Option) -> Self { + if let Some(value) = value { + value.into() + } else { + Self::Nil + } + } +} + +impl TryFrom for AttrValueType { + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + if value.is_nil() { + Ok(Self::Nil) + } else if let Some(b) = value.as_boolean() { + Ok(Self::Bool(b)) + } else if let Some(i) = value.as_signed() { + Ok(Self::Signed(i)) + } else if let Some(i) = value.as_unsigned() { + Ok(Self::Unsigned(i)) + } else if let Some(f) = value.as_floating() { + Ok(Self::Float(OrderedFloat(f))) + } else if let Some(s) = value.as_string() { + Ok(Self::String(s)) + } else if let Some(l) = value.as_list()? { + Ok(Self::List(l)) + } else if let Some(d) = value.as_dict()? { + Ok(Self::Dict(d)) + } else { + Err(Error::FromAttrValueConversionError { + value, + ty: type_name::().to_string(), + }) + } + } +} + +impl TryFrom for AttrValue { + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + match value { + AttrValueType::Nil => Ok(AttrValue::nil()), + AttrValueType::Bool(v) => Ok(v.into()), + AttrValueType::Signed(v) => Ok(v.into()), + AttrValueType::Unsigned(v) => Ok(v.into()), + AttrValueType::Float(v) => Ok(v.into()), + AttrValueType::String(v) => Ok(v.into()), + AttrValueType::List(v) => v.try_into(), + AttrValueType::Dict(v) => v.try_into(), + } + } +} + +macro_rules! impl_from_attr_value_type { + ($t:ty, $($variant:tt)+) => { + impl TryFrom for $t { + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + if let $($variant)+(value) = value { + value.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::<$t>().to_string(), + source: Box::new(Error::from(e)) + }) + } else { + Err(Error::AttrValueTypeUnknown) + } + } + } + }; +} + +impl_from_attr_value_type! { u8, AttrValueType::Unsigned } +impl_from_attr_value_type! { u16, AttrValueType::Unsigned } +impl_from_attr_value_type! { u32, AttrValueType::Unsigned } +impl_from_attr_value_type! { u64, AttrValueType::Unsigned } +impl_from_attr_value_type! { i8, AttrValueType::Signed } +impl_from_attr_value_type! { i16, AttrValueType::Signed } +impl_from_attr_value_type! { i32, AttrValueType::Signed } +impl_from_attr_value_type! { i64, AttrValueType::Signed } +impl_from_attr_value_type! { f64, AttrValueType::Float } +impl_from_attr_value_type! { bool, AttrValueType::Bool} +impl_from_attr_value_type! { String, AttrValueType::String } + +impl TryFrom for Vec +where + T: TryFrom, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + value + .as_list() + .ok_or_else(|| Error::FromAttrValueTypeConversionError { + ty: type_name::>().to_string(), + })? + .into_iter() + .map(|a| { + a.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + }) + .collect::>>() + } +} + +impl TryFrom for HashSet +where + T: TryFrom + Eq + Hash, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + Ok(value + .as_list() + .ok_or_else(|| Error::FromAttrValueTypeConversionError { + ty: type_name::>().to_string(), + })? + .into_iter() + .map(|e| { + e.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + }) + .collect::>>()? + .into_iter() + .collect::>()) + } +} + +impl TryFrom for BTreeSet +where + T: TryFrom + Ord, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + Ok(value + .as_list() + .ok_or_else(|| Error::FromAttrValueTypeConversionError { + ty: type_name::>().to_string(), + })? + .into_iter() + .map(|e| { + e.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + }) + .collect::>>()? + .into_iter() + .collect::>()) + } +} + +impl TryFrom for HashMap +where + T: TryFrom + Eq + Hash, + U: TryFrom, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + Ok(value + .as_dict() + .ok_or_else(|| Error::FromAttrValueTypeConversionError { + ty: type_name::>().to_string(), + })? + .into_iter() + .map(|(k, v)| { + k.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + }) + .collect::>>()? + .into_iter() + .collect::>()) + } +} + +impl TryFrom for BTreeMap +where + T: TryFrom + Ord, + U: TryFrom, + Error: From<>::Error>, + Error: From<>::Error>, +{ + type Error = Error; + + fn try_from(value: AttrValueType) -> Result { + Ok(value + .as_dict() + .ok_or_else(|| Error::FromAttrValueTypeConversionError { + ty: type_name::>().to_string(), + })? + .into_iter() + .map(|(k, v)| { + k.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .and_then(|k| { + v.try_into() + .map_err(|e| Error::NestedFromAttrValueTypeConversionError { + ty: type_name::().to_string(), + source: Box::new(Error::from(e)), + }) + .map(|v| (k, v)) + }) + }) + .collect::>>()? + .into_iter() + .collect::>()) + } +} + +/// Create a new invalid [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with invalid value +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_invalid() -> AttrValue { + AttrValue::invalid() +} + +/// Create a new nil [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with nil (Python `None`) value +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_nil() -> AttrValue { + AttrValue::nil() +} + +/// Create a new uint64 [`AttrValue`] +/// +/// # Arguments +/// +/// * `u` - The unsigned value of the [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with unsigned integer (stored as u64) value +/// +/// # Notes +/// +/// `u.into()` may be preferred, and supports all sizes of unsigned integer +/// types. +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_uint64(u: u64) -> AttrValue { + u.into() +} + +/// Create a new int64 [`AttrValue`] +/// +/// # Arguments +/// +/// * `i` - The signed value of the [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with signed integer (stored as i64) value +/// +/// # Notes +/// +/// `i.into()` may be preferred, and supports all sizes of unsigned integer +/// types. +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_int64(i: i64) -> AttrValue { + i.into() +} + +/// Create a new boolean [`AttrValue`] +/// +/// # Arguments +/// +/// * `b` - The boolean value of the [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with boolean value +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_boolean(b: bool) -> AttrValue { + b.into() +} + +/// Create a new string [`AttrValue`]. The string is copied, and the +/// [`AttrValue`] owns the string. +/// +/// # Arguments +/// +/// * `s` - The string value of the [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with string value +/// +/// # Notes +/// +/// `s.into()` may be preferred. +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_string(s: S) -> AttrValue +where + S: AsRef, +{ + s.as_ref().into() +} + +/// Create a new floating point [`AttrValue`] +/// +/// # Arguments +/// +/// * `d` - The floating point value of the [`AttrValue`] +/// +/// # Return Value +/// +/// An owned [`AttrValue`] with floating point (stored as f64) value +/// +/// # Notes +/// +/// `d.into()` may be preferred, and supports all sizes of floating point types. +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_floating(d: f64) -> AttrValue { + d.into() +} + +/// Create a new object [`AttrValue`] +/// +/// # Arguments +/// +/// * `obj` - The object to store a pointer to in the [`AttrValue`]. The pointer must +/// remain valid for the lifetime of the [`AttrValue`]. +/// +/// # Return Value +/// +/// An [`AttrValue`] storing a pointer to the [`ConfObject`] +/// +/// # Notes +/// +/// `obj.into()` may be preferred +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_object(obj: *mut ConfObject) -> AttrValue { + obj.into() +} + +/// Create a new data [`AttrValue`] +/// +/// # Arguments +/// +/// * `data` - A reference to an object to copy into a new [`AttrValue`] +/// +/// # Return Value +/// +/// An [`AttrValue`] storing a raw pointer to a copy of the provided data. The data is +/// owned by the [`AttrValue`] +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_data(data: &T) -> Result +where + T: Clone, +{ + let data = Box::new(data.clone()); + let data_raw = Box::into_raw(data); + + debug_assert!( + std::mem::size_of_val(&data_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), + "Pointer is not convertible to *mut c_void" + ); + + let data_size = u32::try_from(size_of::<*mut T>())?; + + if !data_raw.is_null() || data_size == 0 { + Err(Error::InvalidNullDataSize) + } else { + Ok(AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_Data, + private_size: data_size, + private_u: attr_value__bindgen_ty_1 { + data: data_raw as *mut u8, + }, + })) + } +} + +/// Create a new data [`AttrValue`] +/// +/// # Arguments +/// +/// * `data` - An object to move into a new [`AttrValue`] +/// +/// # Return Value +/// +/// An [`AttrValue`] storing a raw pointer to the provided data. The data is +/// moved and is owned by the [`AttrValue`] +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_data_adopt(data: T) -> Result { + let data = Box::new(data); + let data_raw = Box::into_raw(data); + + debug_assert!( + std::mem::size_of_val(&data_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), + "Pointer is not convertible to *mut c_void" + ); + + let data_size = u32::try_from(size_of::<*mut T>())?; + + if !data_raw.is_null() || data_size == 0 { + Err(Error::InvalidNullDataSize) + } else { + Ok(AttrValue(attr_value_t { + private_kind: AttrKind::Sim_Val_Data, + private_size: data_size, + private_u: attr_value__bindgen_ty_1 { + data: data_raw as *mut u8, + }, + })) + } +} + +/// Create a new list [`AttrValue`]. The items are moved into the new list, which +/// takes ownership of the input data. +/// +/// # Arguments +/// +/// * `attrs` - A vector whose elements can be converted to [`AttrValues`](AttrValue) +/// +/// # Return Value +/// +/// An [`AttrValue`] containing the provided `attrs`. The [`AttrValue`] owns the items +/// in the list. +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_list(attrs: Vec) -> Result +where + T: TryInto, + Error: From<>::Error>, +{ + attrs.try_into() +} + +#[simics_exception] +/// Allocate an [`AttrValue`] list with size `length`. The list elements are initialized +/// to invalid [`AttrValues`](AttrValue) +/// +/// # Arguments +/// +/// * `length` - The length of list to allocate +/// +/// # Return Value +/// +/// A list [`AttrValue`] of the given length, with all uninitialized elements. +/// +/// # Context +/// +/// Cell Context +pub fn alloc_attr_list(length: u32) -> AttrValue { + AttrValue(unsafe { SIM_alloc_attr_list(length) }) +} + +/// Create a new dictionary [`AttrValue`] from key value pairs. +/// +/// # Context +/// +/// Cell Context +pub fn make_attr_dict(attrs: Vec<(AttrValue, AttrValue)>) -> Result { + attrs.try_into() +} + +#[simics_exception] +/// Allocate an [`AttrValue`] dict with size `length`. The dictionary elements are +/// initialized to invalid [`AttrValues`](AttrValue) +/// +/// # Arguments +/// +/// * `length` - The size of dict to allocate +/// +/// # Return Value +/// +/// A dict [`AttrValue`] of the given length, with all uninitialized elements. +/// +/// # Context +/// +/// Cell Context +pub fn alloc_attr_dict(length: u32) -> AttrValue { + AttrValue(unsafe { SIM_alloc_attr_dict(length) }) +} + +#[simics_exception] +/// Set the element numbered index of the list attr to elem. The previous value at that +/// position is freed. The ownership for elem is transferred from the caller to attr. +/// +/// # Arguments +/// +/// * `attr` - The attribute list to set an item in +/// * `index` - The index in the list to set +/// * `elem` - The value to set the item in the list at index `index` to +/// +/// # Context +/// +/// Cell Context +pub fn attr_list_set_item(attr: &mut AttrValue, index: u32, elem: AttrValue) { + unsafe { SIM_attr_list_set_item(attr.as_mut_ptr(), index, elem.into()) } +} + +#[simics_exception] +/// Resize attr, which must be of list type, to newsize elements. New elements are set +/// to invalid value. Dropped elements are freed. +/// +/// # Arguments +/// +/// * `attr` - The attribute list to resize +/// * `newsize` - The size to grow or shrink the list to +/// +/// # Context +/// +/// Cell Context +pub fn attr_list_resize(attr: &mut AttrValue, newsize: u32) { + unsafe { SIM_attr_list_resize(attr.as_mut_ptr(), newsize) }; +} + +#[simics_exception] +/// Set the element numbered index of the dict attr to key and value. The previous key +/// and value at that position are freed. The ownership for key and value is transferred +/// from the caller to attr. The key must be of integer, string or object type. +/// +/// This function should generally not be used. Instead, values should be deserialized from +/// the [`AttrValue`], modified in a type-safe way, and serialized back. +/// +/// # Arguments +/// +/// * `attr` - The attribute dictionary to set an item in +/// * `index` - The numbered index to set. [`AttrValue`](AttrValue) dictionaries are associative arrays +/// * `key` - The value to set the key item of the dict to +/// * `value` - The value to set the value item of the dict to +/// +/// # Context +/// +/// Cell Context +pub fn attr_dict_set_item(attr: &mut AttrValue, index: u32, key: AttrValue, value: AttrValue) { + unsafe { SIM_attr_dict_set_item(attr.as_mut_ptr(), index, key.into(), value.into()) }; +} + +#[simics_exception] +/// Resize attr, which must be of dict type, to newsize elements. New elements are marked invalid. Dropped elements are freed. +/// +/// # Arguments +/// +/// * `attr` - The attribute dictionary to resize +/// * `newsize` - The size to grow or shrink the dict to +/// +/// # Context +/// +/// Cell Context +pub fn attr_dict_resize(attr: &mut AttrValue, newsize: u32) { + unsafe { SIM_attr_dict_resize(attr.as_mut_ptr(), newsize) }; +} + +/// Check whether an [`AttrValue`] is nil +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is nil +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_nil(attr: AttrValue) -> bool { + attr.kind() == AttrKind::Sim_Val_Nil +} + +/// Check whether an [`AttrValue`] is int64 +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a signed integer +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_int64(attr: AttrValue) -> bool { + attr.is_integer() && (attr.size() == 0 || attr.as_integer().is_some_and(|i| i < 0)) +} + +/// Check whether an [`AttrValue`] is uint64 +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is an unsigned integer +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_uint64(attr: AttrValue) -> bool { + attr.is_integer() && (attr.size() != 0 || attr.as_integer().is_some_and(|i| i >= 0)) +} + +/// Check whether an [`AttrValue`] is an integer +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is an integer (signedness checks are not performed) +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_integer(attr: AttrValue) -> bool { + attr.is_integer() +} + +/// Check whether an [`AttrValue`] is a boolean +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a boolean +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_boolean(attr: AttrValue) -> bool { + attr.is_boolean() +} + +/// Check whether an [`AttrValue`] is a String +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a string +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_string(attr: AttrValue) -> bool { + attr.is_string() +} + +/// Check whether an [`AttrValue`] is a [`ConfObject`] pointer +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a [`ConfObject`] pointer +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_object(attr: AttrValue) -> bool { + attr.is_object() +} + +/// Check whether an [`AttrValue`] is invalid +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is invalid +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_invalid(attr: AttrValue) -> bool { + attr.is_invalid() +} + +/// Check whether an [`AttrValue`] is data +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is data +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_data(attr: AttrValue) -> bool { + attr.is_data() +} + +/// Check whether an [`AttrValue`] is a String +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a floating point number +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_floating(attr: AttrValue) -> bool { + attr.is_floating() +} + +/// Check whether an [`AttrValue`] is a dict +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a dictionary +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_dict(attr: AttrValue) -> bool { + attr.is_dict() +} + +/// Check whether an [`AttrValue`] is a list +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to check the type of +/// +/// # Return Value +/// +/// Whether the [`AttrValue`] is a list +/// +/// # Context +/// +/// All Contexts +pub fn attr_is_list(attr: AttrValue) -> bool { + attr.is_list() +} + +/// Get an [`AttrValue`] as an integer if it is one, or return an error. +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to attempt to get as `i64` +/// +/// # Return Value +/// +/// The contained integer value if the [`AttrValue`] is the correct type, +/// or an error otherwise. +/// +/// # Notes +/// +/// Conversion via `TryInto` should be preferred. For example: +/// +/// ```rust,ignore +/// let x: i64 = a.try_into()?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_integer(attr: AttrValue) -> Result { + attr.as_integer().ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Integer, + }) +} + +/// Get an [`AttrValue`] as a boolean if it is one, or return an error +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to attempt to get as `bool` +/// +/// # Return Value +/// +/// The contained boolean value if the [`AttrValue`] is the correct type, +/// or an error otherwise. +/// +/// # Notes +/// +/// Conversion via `TryInto` should be preferred. For example: +/// +/// ```rust,ignore +/// let x: bool = a.try_into()?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_boolean(attr: AttrValue) -> Result { + attr.as_boolean().ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Boolean, + }) +} + +/// Get an [`AttrValue`] as a String +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to attempt to get as a `String` +/// +/// # Return Value +/// +/// The contained string value if the [`AttrValue`] is the correct type, +/// or an error otherwise. +/// +/// # Notes +/// +/// Conversion via `TryInto` should be preferred. For example: +/// +/// ```rust,ignore +/// let x: String = a.try_into()?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_string(attr: AttrValue) -> Result { + attr.as_string().ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_String, + }) +} + +/// Get an [`AttrValue`] as a f64 +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to attempt to get as a `f64` +/// +/// # Return Value +/// +/// The contained floating point value if the [`AttrValue`] is the correct type, or an +/// error otherwise. +/// +/// # Notes +/// +/// Conversion via `TryInto` should be preferred. For example: +/// +/// ```rust,ignore +/// let x: f64 = a.try_into()?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_floating(attr: AttrValue) -> Result { + attr.as_floating().ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Floating, + }) +} + +/// Get an [`AttrValue`] as a [`ConfObject`] pointer +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to attempt to get as a `*mut ConfObject` +/// +/// # Return Value +/// +/// The contained object value if the [`AttrValue`] is the correct type, or an +/// error otherwise. +/// +/// # Notes +/// +/// Conversion via `TryInto` should be preferred. For example: +/// +/// ```rust,ignore +/// let x: *mut ConfObject = a.try_into()?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_object(attr: AttrValue) -> Result<*mut ConfObject> { + attr.as_object().ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Object, + }) +} + +/// Get an [`AttrValue`] as a [`ConfObject`] pointer if it is one, or a null pointer +/// otherwise. This function should typically not be used and is provided for +/// compatibility only. Use [`attr_object`] instead. +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to attempt to get as a `*mut ConfObject` +/// +/// # Return Value +/// +/// The contained [`ConfObject`] value if the [`AttrValue`] is the correct type, or a +/// null pointer otherwise. +/// +/// # Notes +/// +/// Conversion via `TryInto` should be preferred. For example: +/// +/// ```rust,ignore +/// let x: *mut ConfObject = a.try_into()?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_object_or_nil(attr: AttrValue) -> *mut ConfObject { + attr.as_object().unwrap_or(null_mut()) +} + +/// Get the size of an [`AttrValue`]'s data in bytes +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to get the size of +/// +/// # Return Value +/// +/// The size of the [`AttrValue`] if it is the correct type, or an error otherwise +/// +/// # Notes +/// +/// This function should generally not be used. Instead, data should be obtained from +/// the [`AttrValue`] with `TryInto` or with [`attr_data`] for example: +/// +/// ```rust,ignore +/// let x: YourType = a.as_data().ok_or_else(|| /* Error */)?; +/// let x: YourType = attr_data(a)?; +/// ``` +/// +/// # Context +/// +/// All Contexts +pub fn attr_data_size(attr: AttrValue) -> Result { + attr.is_data() + .then(|| attr.size()) + .ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Data, + }) +} + +/// Get the contained data from an [`AttrValue`] if it is a data value, +/// or return an error if it is not. +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to get the data from +/// +/// # Return Value +/// +/// The contained data if the [`AttrValue`] is the correct type, or an error +/// otherwise +/// +/// # Context +/// +/// All Contexts +pub fn attr_data(attr: AttrValue) -> Result +where + T: Clone, +{ + attr.as_data().ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Data, + }) +} + +/// Get the size of an [`AttrValue`] list, in number of items or an error +/// if the [`AttrValue`] is not a list +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to get the list size of +/// +/// # Return Value +/// +/// The size of the list, if the [`AttrValue`] is a list, or an error if it is not +/// +/// # Context +/// +/// All Contexts +pub fn attr_list_size(attr: AttrValue) -> Result { + attr.is_list() + .then(|| attr.size()) + .ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_List, + }) +} + +/// Retrieve a list item from an attr list without converting the item to a specific +/// type +/// +/// # Arguments +/// +/// * `attr` - The list [`AttrValue`] to retrieve an item from +/// * `index` - The index in the list to retrieve +/// +/// # Return Value +/// +/// # Context +/// +/// All Contexts +pub fn attr_list_item(attr: AttrValue, index: usize) -> Result { + let list: Vec = attr.as_list()?.ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_List, + })?; + + list.get(index) + .cloned() + .ok_or(Error::AttrValueListIndexOutOfBounds { + index, + length: list.len(), + }) +} + +/// Get the size of an [`AttrValue`] dict, in number of items or an error +/// if the [`AttrValue`] is not a dict +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] to get the dict size of +/// +/// # Return Value +/// +/// The size of the dict, if the [`AttrValue`] is a dict, or an error if it is not +/// +/// # Context +/// +/// All Contexts +pub fn attr_dict_size(attr: AttrValue) -> Result { + attr.is_dict() + .then(|| attr.size()) + .ok_or(Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Data, + }) +} + +/// Get a key from an [`AttrValue`] dict if it is one, or an error otherwise. +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] dictionary to get the key from +/// * `index` - The index in the [`AttrValue`] associative array dictionary to get the +/// key from +/// +/// # Return Value +/// +/// The key for the requested index in the dictionary, or an error otherwise +/// +/// # Context +/// +/// All Contexts +pub fn attr_dict_key(attr: AttrValue, index: u32) -> Result { + if index < attr.size() { + attr.is_dict() + .then(|| { + AttrValue( + // NOTE: This is leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + Box::leak(unsafe { + Box::from_raw(attr.0.private_u.dict.offset(index as isize)) + }) + .key, + ) + }) + .ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Dict, + }) + } else { + Err(Error::AttrValueDictIndexOutOfBounds { + index: index as usize, + size: attr.size() as usize, + }) + } +} + +/// Get a value for an [`AttrValue`] dictionary +/// +/// # Arguments +/// +/// * `attr` - The [`AttrValue`] dictionary to get the value from +/// * `index` - The index in the [`AttrValue`] associative array dictionary to get the +/// value from +/// +/// # Return Value +/// +/// The value for the requested index in the dictionary, or an error otherwise +/// +/// # Context +/// +/// All Contexts +pub fn attr_dict_value(attr: AttrValue, index: u32) -> Result { + if index < attr.size() { + attr.is_dict() + .then(|| { + AttrValue( + // NOTE: This is leaked because the semantics of data ownership are that + // returned data is owned by the attr and ownership is *not* returned to the + // caller. It must be freed elsewhere. + Box::leak(unsafe { + Box::from_raw(attr.0.private_u.dict.offset(index as isize)) + }) + .value, + ) + }) + .ok_or_else(|| Error::AttrValueType { + actual: attr.kind(), + expected: AttrKind::Sim_Val_Dict, + }) + } else { + Err(Error::AttrValueDictIndexOutOfBounds { + index: index as usize, + size: attr.size() as usize, + }) + } +} + +#[simics_exception] +/// Free an attr value. +/// +/// # Context +/// +/// Cell Context +pub fn free_attribute(attr: AttrValue) { + unsafe { SIM_free_attribute(attr.0) } +} diff --git a/modules/tsffs/src/simics/simics/src/api/base/conf_object.rs b/modules/tsffs/src/simics/simics/src/api/base/conf_object.rs new file mode 100644 index 00000000..d19894f9 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/base/conf_object.rs @@ -0,0 +1,1313 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#![allow(clippy::not_unsafe_ptr_arg_deref, clippy::too_many_arguments)] + +//! Bindings for configuration objects + +use crate::{ + api::{ + last_error, + sys::{ + attr_attr_t, attr_value_t, class_data_t, class_info_t, class_kind_t, conf_class_t, + conf_object_t, get_attr_t, get_class_attr_t, object_iter_t, set_attr_t, + set_class_attr_t, set_error_t, SIM_attribute_error, SIM_copy_class, SIM_create_class, + SIM_extend_class, SIM_extension_data, SIM_get_class_data, SIM_get_class_interface, + SIM_get_class_name, SIM_get_interface, SIM_marked_for_deletion, SIM_object_data, + SIM_object_descendant, SIM_object_id, SIM_object_is_configured, SIM_object_iterator, + SIM_object_iterator_next, SIM_object_name, SIM_object_parent, + SIM_register_attribute_with_user_data, SIM_register_class_alias, + SIM_register_class_attribute_with_user_data, SIM_register_interface, + SIM_register_typed_attribute, SIM_register_typed_class_attribute, SIM_require_object, + SIM_set_class_data, SIM_set_object_configured, SIM_shallow_object_iterator, + }, + Interface, + }, + Error, Result, +}; +use raw_cstr::{raw_cstr, AsRawCstr}; +use simics_macro::simics_exception; +use std::{ + ffi::{c_void, CStr}, + ops::Range, + ptr::null_mut, +}; + +pub type ConfObject = conf_object_t; +pub type ConfClass = conf_class_t; +pub type ClassData = class_data_t; +pub type ClassInfo = class_info_t; +pub type ClassKind = class_kind_t; +pub type AttrAttr = attr_attr_t; +pub type ObjectIter = object_iter_t; +pub type GetAttr = get_attr_t; +pub type SetAttr = set_attr_t; +pub type GetClassAttr = get_class_attr_t; +pub type SetClassAttr = set_class_attr_t; +pub type SetErr = set_error_t; + +/// A type in a [`TypeStringType::List`]. See [`TypeStringType`] for a description of these +/// variants. +pub enum TypeStringListType { + Type(Box), + Range(Range, Box), + Exact(usize, Box), + ZeroOrMore(Box), + OneOrMore(Box), +} + +impl ToString for TypeStringListType { + fn to_string(&self) -> String { + match self { + TypeStringListType::Type(t) => t.to_string(), + TypeStringListType::Range(r, t) => { + format!("{}{{{}:{}}}", t.to_string(), r.start, r.end) + } + TypeStringListType::Exact(c, t) => format!("{}{{{}}}", t.to_string(), c), + TypeStringListType::ZeroOrMore(t) => format!("{}*", t.to_string()), + TypeStringListType::OneOrMore(t) => format!("{}+", t.to_string()), + } + } +} + +/// A type in a python-like type string +/// +/// The enumeration represents a type string +/// +/// Most types are represented by a single letter: +/// +/// | Letter | Type | +/// | ------ | -------------- | +/// | i | integer | +/// | f | floating-point | +/// | s | string | +/// | b | boolean | +/// | o | object | +/// | d | data | +/// | n | nil | +/// | D | dictionary | +/// | a | any type | +/// +/// The | (vertical bar) operator specifies the union of two types; eg, s|o is the type +/// of a string or an object. Lists are defined inside square brackets: []. There are +/// two kinds of list declarations: +/// +/// A heterogeneous list of fixed length is defined by the types of its elements. For +/// example, [ios] specifies a 3-element list consisting of an integer, an object and a +/// string, in that order. +/// +/// A homogeneous list of varying length is defined by a single type followed by a +/// length modifier: +/// +/// | Modifier | Meaning | +/// | -------- | ----------------------------------- | +/// | {N:M} | between N and M elements, inclusive | +/// | {N} | exactly N elements | +/// | * | zero or more elements | +/// | + | one or more elements | +/// +/// For example, [i{3,5}] specifies a list of 3, 4 or 5 integers. +/// +/// Inside heterogeneous lists, | (union) has higher precedence than juxtaposition; ie, +/// [i|so|n] defines a list of two elements, the first being an integer or a string and +/// the second an object or NIL. +pub enum TypeStringType { + Integer, + Float, + String, + Boolean, + Object, + Data, + Nil, + Dictionary, + Any, + List(Vec), + Or(Box, Box), +} + +impl ToString for TypeStringType { + fn to_string(&self) -> String { + match self { + TypeStringType::Integer => "i".to_string(), + TypeStringType::Float => "f".to_string(), + TypeStringType::String => "s".to_string(), + TypeStringType::Boolean => "b".to_string(), + TypeStringType::Object => "o".to_string(), + TypeStringType::Data => "d".to_string(), + TypeStringType::Nil => "n".to_string(), + TypeStringType::Dictionary => "D".to_string(), + TypeStringType::Any => "a".to_string(), + TypeStringType::List(l) => format!( + "[{}]", + l.iter().map(|li| li.to_string()).collect::() + ), + TypeStringType::Or(l, r) => format!("{}|{}", l.to_string(), r.to_string()), + } + } +} + +// NOTE: There is an old class creation method, but it is *actually* deprecated, so we do not +// include it with a #[deprecated] warning. + +#[simics_exception] +/// Register an alias alias for the existing class class_name. Using aliases allows the +/// read-configuration command to read configuration files that define objects of type +/// alias, while the write-configuration command always uses class_name. +/// +/// Aliases are used to support compatibility with old class names if a class is +/// renamed. They can also be used to allow different modules, which define different +/// specific implementations of the same generic base class, to read the same +/// configuration files. +/// +/// # Arguments +/// +/// * `alias` - The name to register as an alias for the class that is already registered for `name` +/// * `name` The name of the class to register an alias for +/// +/// # Return value +/// +/// Ok if the alias was registered successfully, or an error otherwise. +/// +/// # Context +/// +/// Global Context +pub fn register_class_alias(alias: S, name: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_register_class_alias(raw_cstr(alias)?, raw_cstr(name)?) }; + Ok(()) +} + +#[simics_exception] +/// This function creates a new class that can be instantiated by calling the +/// SIM_create_object function. It is a replacement for SIM_register_class and should be +/// used in all new code. +/// +/// The name can contain upper and lower case ASCII letters, hyphens, underscores, and +/// digits. It must not begin with a digit or a hyphen and must not end with a hyphen. +/// +/// # Arguments +/// +/// * `name` - The name to register the class for +/// * `class_info` - The description of the class +/// +/// # Return Value +/// +/// A pointer to the successfully registered class object, or an error if registration +/// is not successful +/// +/// # Context +/// +/// Global Context +pub fn create_class(name: S, class_info: ClassInfo) -> Result<*mut ConfClass> +where + S: AsRef, +{ + let name_raw = raw_cstr(name.as_ref())?; + + // The reference can be dropped after the `SIM_create_class` function returns, + // so this is safe to call this way + let cls = unsafe { SIM_create_class(name_raw, &class_info as *const ClassInfo) }; + + if cls.is_null() { + Err(Error::CreateClass { + name: name.as_ref().to_string(), + message: last_error(), + }) + } else { + Ok(cls) + } +} + +#[simics_exception] +/// The function extends the class cls with attributes, interfaces, port objects and +/// port interfaces defined by the extension class ext. +/// +/// The extension class must be of the type Sim_Class_Kind_Extension and must not define +/// any attributes or interfaces which have already been defined by the class being +/// augmented. +/// +/// Besides normal object initialization, the init_object method for the extension +/// class, will be called when cls is instantiated. The pointer returned by init_object +/// can be retrieved using SIM_extension_data. The init_object method may return NULL if +/// no private data pointer is needed; this does not signify an error condition for +/// extension classes. +/// +/// The finalize_instance method defined by the extension class will be called before +/// the finalize_instance method is called for the class being extended. +/// +/// The SIM_extension_class function is intended to be used to extend a class with +/// generic functionality, common to multiple classes. +/// +/// # Arguments +/// +/// * `cls` - The class to extend +/// * `ext` - The extension class to extend the class with +/// +/// # Context +/// +/// Global Context +pub fn extend_class(cls: *mut ConfClass, ext: *mut ConfClass) { + unsafe { SIM_extend_class(cls, ext) }; +} + +#[simics_exception] +/// This function creates a copy of the class src_class named name. Additional +/// attributes and interfaces can be registered on the newly created class. +/// +/// The new class is described by desc +/// +/// # Arguments +/// +/// * `name` - The name of the new class +/// * `src_cls` - The class to make a copy of +/// * `desc` - The description string of the new class +/// +/// # Return Value +/// +/// The new copied class +/// +/// # Context +/// +/// Global Context +pub fn copy_class(name: S, src_cls: *mut ConfClass, desc: S) -> Result<*mut ConfClass> +where + S: AsRef, +{ + Ok(unsafe { SIM_copy_class(raw_cstr(name)?, src_cls, raw_cstr(desc)?) }) +} + +#[simics_exception] +/// Get the name of a class. The name is copied, which differs from the +/// C API. +/// +/// # Arguments +/// +/// * `cls` - The class to get the name of +/// +/// # Return Value +/// +/// The name of the class +/// +/// # Context +/// +/// Cell Context +pub fn get_class_name(cls: *mut ConfClass) -> Result { + Ok(unsafe { CStr::from_ptr(SIM_get_class_name(cls)) } + .to_str() + .map(|s| s.to_string())?) +} + +#[simics_exception] +/// Set extra data for the specified class. This is particularly useful if the same class +/// methods are used for multiple distinct classes, for instance for generated classes. +/// The class data can be fetched at any time during the object initialisation, using +/// [`get_class_data`]. +/// +/// # Arguments +/// +/// * `cls` - The class to set extra data for +/// * `data` - Extra data to store +/// +/// # Context +/// +/// Global Context +pub fn set_class_data(cls: *mut ConfClass, data: T) { + unsafe { SIM_set_class_data(cls, Box::into_raw(Box::new(data)) as *mut c_void) } +} + +#[simics_exception] +/// Obtain the class data that was set using [`set_class_data`]. This can be called at +/// any time during the object initialisation process. +/// +/// # Arguments +/// +/// * `cls` - The class to retrieve data for. +/// +/// # Return Value +/// +/// The class data. Ownership of the data is not transferred to the caller. If `T` +/// implements `Clone`, clone the data to obtain an owned object. +/// +/// # Context +/// +/// Cell Context +pub fn get_class_data<'a, T>(cls: *mut ConfClass) -> &'a mut T { + unsafe { Box::leak(Box::from_raw(SIM_get_class_data(cls) as *mut T)) } +} + +#[simics_exception] +/// If obj has not yet been set as configured, then that object's finalize method +/// (post_init in DML) is run; otherwise, nothing happens. After completion of that +/// method, obj will be set as configured. +/// +/// Each object will have its finalize method called automatically, usually in +/// hierarchical order, during object creation. Since it is only permitted to call +/// methods on objects that have been configured, [`require_object`] is a way to allow +/// such calls during finalisation by ensuring that those objects are correctly set up. +/// A better way to call methods on other objects during finalization is to defer such +/// calls to the objects_finalized method. +/// +/// [`require_object`] may only be called from the finalize method of another object. +/// +/// Finalisation cycles can occur if two or more objects call [`require_object`] on each +/// other. Such cycles are treated as errors. To avoid them, call +/// [`set_object_configured`] as soon as the object has reached a consistent state. +/// +/// # Arguments +/// +/// * `obj` - The object to require finalization for +/// +/// # Context +/// +/// Global Context +pub fn require_object(obj: *mut ConfObject) { + unsafe { SIM_require_object(obj) }; +} + +#[simics_exception] +/// Returns the name of an object. This name identifies the object uniquely, but may +/// change if the object is moved to another hierarchical location. +/// +/// The return value is a string, owned by obj, that should not be modified or freed by +/// the caller. +/// +/// # Arguments +/// +/// * `obj` - The object to get the name for +/// +/// # Return Value +/// +/// The unique name of the object +/// +/// # Context +/// +/// All Contexts +pub fn object_name(obj: *mut ConfObject) -> Result { + Ok(unsafe { CStr::from_ptr(SIM_object_name(obj)) } + .to_str() + .map(|s| s.to_string())?) +} + +#[simics_exception] +/// Returns the unique identifier for an object. The identifier is a string that is +/// guaranteed to be unique and will never change, even if the object moves to another +/// hierarchical location. +/// +/// The return value is a static string that should not be modified or freed by the +/// caller. +/// +/// # Arguments +/// +/// * `obj` - The object to get the id for +/// +/// # Return Value +/// +/// The unique id of the object +/// +/// # Context +/// +/// All Contexts +pub fn object_id(obj: *mut ConfObject) -> Result { + Ok(unsafe { CStr::from_ptr(SIM_object_id(obj)) } + .to_str() + .map(|s| s.to_string())?) +} + +#[simics_exception] +/// [`object_is_configured`] indicates whether obj is configured. +/// +/// An object is configured once its finalize_instance method (post_init in DML) has +/// completed, or [`set_object_configured`] has been called for it. Being configured +/// indicates that the object is in a consistent state and is ready to be used by other +/// objects. +/// +/// # Arguments +/// +/// * `obj` - The object to retrieve the configured status for +/// +/// # Return Value +/// +/// Whether the object is configured +/// +/// # Context +/// +/// All Contexts +pub fn object_is_configured(obj: *mut ConfObject) -> bool { + unsafe { SIM_object_is_configured(obj) } +} + +#[simics_exception] +/// [`set_object_configured`] sets the object as configured. +/// +/// [`set_object_configured`] is used to avoid circular dependencies between objects. It +/// may only be called from the object's own finalize_instance method, when the object +/// is known to be in a consistent state. +/// +/// # Arguments +/// +/// * `obj` - The object to set as configured +/// +/// # Context +/// +/// Global Context +pub fn set_object_configured(obj: *mut ConfObject) { + unsafe { SIM_set_object_configured(obj) } +} + +#[simics_exception] +/// Returns the private data pointer of an object. This pointer is available to the +/// class for storing instance-specific state. It is initialised to the return value of +/// the init (from class_info_t) method that is called during object creation. For +/// classes created using the legacy [`register_class`], the same functionality is +/// provided by the init_object method . +/// +/// For classes implemented in Python, the data (which is then a Python value) can also +/// be accessed as obj.object_data. +/// +/// For classes written in C, the preferred way to store instance-specific state is by +/// co-allocation with the object's conf_object_t structure instead of using +/// [`object_data`]. Such classes should define the alloc method in the class_info_t +/// passed to [`create_class`] for allocating its instance data. For classes using the +/// legacy [`register_class`] class registration function, they should define the +/// alloc_object method in the class_data_t data structure. +/// +/// # Arguments +/// +/// * `obj` - The object to retrieve extra data for +/// +/// # Return value +/// +/// A reference to the object's inner data +/// +/// # Context +/// +/// All Contexts +pub fn object_data<'a, T>(obj: *mut ConfObject) -> &'a mut T { + unsafe { Box::leak(Box::from_raw(SIM_object_data(obj) as *mut T)) } +} + +#[simics_exception] +/// Returns the private data pointer of an object associated with the extension class +/// ext_cls. The returned pointer is the value returned by the init_object method called +/// for the extension class ext_cls. +/// +/// The object obj must be an instance of a class which has been extended with the +/// extension class ext_cls using the [`extend_class`] function. +/// +/// # Arguments +/// +/// * `obj` - An instance of a class which has been extended with `cls` +/// * `cls` - The class that extends the class `obj` is an instance of +/// +/// # Return value +/// +/// A reference to the object's inner data +/// +/// # Context +/// +/// Cell Context +pub fn extension_data<'a, T>(obj: *mut ConfObject, cls: *mut ConfClass) -> &'a mut T { + unsafe { Box::leak(Box::from_raw(SIM_extension_data(obj, cls) as *mut T)) } +} + +#[simics_exception] +/// Retrieve the parent object if there is one, or None otherwise. +/// +/// # Arguments +/// +/// * `obj` - The object to get a parent object for +/// +/// # Return Value +/// +/// A pointer to the parent object if there is one, or None otherwise +/// +/// # Context +/// +/// Unknown +pub fn object_parent(obj: *mut ConfObject) -> Option<*mut ConfObject> { + let ptr = unsafe { SIM_object_parent(obj) }; + + if ptr.is_null() { + None + } else { + Some(ptr) + } +} + +#[simics_exception] +/// Retrieve an object's descendant with a name, if one exists. +/// +/// # Arguments +/// +/// * `obj` - The object to get descendants for +/// * `relname` - The name of the related descendant +/// +/// # Return Value +/// +/// The descendant of the object with a name, if one exists +/// +/// # Context +/// +/// Unknown +pub fn object_descendant(obj: *mut ConfObject, relname: S) -> Result> +where + S: AsRef, +{ + let ptr = unsafe { SIM_object_descendant(obj, raw_cstr(relname)?) }; + if ptr.is_null() { + Ok(None) + } else { + Ok(Some(ptr)) + } +} + +#[simics_exception] +/// Obtain an iterator over the child objects at all depths of a given object +/// +/// # Argument +/// +/// * `obj` - The object to get an iterator for +/// +/// # Return Value +/// +/// The iterator over the object's children +/// +/// # Context +/// +/// Unknown +pub fn object_iterator(obj: *mut ConfObject) -> ObjectIter { + unsafe { SIM_object_iterator(obj) } +} + +#[simics_exception] +/// Obtain an iterator over the child objects at depth 1 of a given object +/// +/// # Arguments +/// +/// * `obj` - The object to get an iterator for +/// +/// # Return Value +/// +/// An iterator over the object's children, non-recursively +/// +/// # Context +/// +/// Unknown +pub fn shallow_object_iterator(obj: *mut ConfObject) -> ObjectIter { + unsafe { SIM_shallow_object_iterator(obj) } +} + +#[simics_exception] +/// Consume and return the next item of an object iterator, if one exists +/// +/// # Arguments +/// +/// * `iter` - The iterator obtained from [`object_iterator`] or +/// [`shallow_object_iterator`] +/// +/// # Return Value +/// +/// The next element in the iteration, or `None` if the iterator has been exhausted +/// +/// # Context +/// +/// Unknown +pub fn object_iterator_next(iter: *mut ObjectIter) -> Option<*mut ConfObject> { + let obj = unsafe { SIM_object_iterator_next(iter) }; + + if obj.is_null() { + None + } else { + Some(obj) + } +} + +extern "C" fn get_typed_attr_handler( + cb: *mut c_void, + obj: *mut ConfObject, + idx: *mut attr_value_t, +) -> attr_value_t +where + F: FnOnce(*mut ConfObject, *mut attr_value_t) -> attr_value_t + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(obj, idx) +} + +extern "C" fn set_typed_attr_handler( + cb: *mut c_void, + obj: *mut ConfObject, + val: *mut attr_value_t, + idx: *mut attr_value_t, +) -> SetErr +where + F: FnOnce(*mut ConfObject, *mut attr_value_t, *mut attr_value_t) -> SetErr + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(obj, val, idx) +} + +extern "C" fn get_typed_class_attr_handler( + cb: *mut c_void, + cls: *mut ConfClass, + idx: *mut attr_value_t, +) -> attr_value_t +where + F: FnOnce(*mut ConfClass, *mut attr_value_t) -> attr_value_t + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(cls, idx) +} + +extern "C" fn set_typed_class_attr_handler( + cb: *mut c_void, + cls: *mut ConfClass, + val: *mut attr_value_t, + idx: *mut attr_value_t, +) -> SetErr +where + F: FnOnce(*mut ConfClass, *mut attr_value_t, *mut attr_value_t) -> SetErr + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(cls, val, idx) +} + +extern "C" fn get_attr_handler(obj: *mut ConfObject, cb: *mut c_void) -> attr_value_t +where + F: FnOnce(*mut ConfObject) -> attr_value_t + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(obj) +} + +extern "C" fn set_attr_handler( + obj: *mut ConfObject, + val: *mut attr_value_t, + cb: *mut c_void, +) -> SetErr +where + F: FnOnce(*mut ConfObject, *mut attr_value_t) -> SetErr + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(obj, val) +} + +extern "C" fn get_class_attr_handler(cls: *mut ConfClass, cb: *mut c_void) -> attr_value_t +where + F: FnOnce(*mut ConfClass) -> attr_value_t + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(cls) +} + +extern "C" fn set_class_attr_handler( + cls: *mut ConfClass, + val: *mut attr_value_t, + cb: *mut c_void, +) -> SetErr +where + F: FnOnce(*mut ConfClass, *mut attr_value_t) -> SetErr + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + + closure(cls, val) +} + +#[simics_exception] +/// Add the attribute name to the set of attributes of the class cls. This attribute +/// will appear on all instances of the class. +/// +/// The function `getter` is called with the object and the value from user_data_get as +/// arguments, and returns the current value of the attribute. +/// +/// On error, get_attr should call [`attribute_error`]. The return value is then +/// ignored; typically, [`make_attr_invalid`] is used to generate an explicitly invalid +/// value. +/// +/// If `getter` is `None`, the attribute will be write-only. The function `setter` is +/// called with the object and the value from `user_data_set` as arguments when the +/// attribute is initialised or changed. The argument value is owned by the caller, so +/// any data from it must be copied. +/// +/// The set_attr method should return [`SetErr::Sim_Set_Ok`] if the new value could be +/// set. On error, it should return an appropriate error code (usually +/// [`SetErr::Sim_Set_Illegal_Value`]), and optionally call [`attribute_error`] with an +/// explanatory message. +/// +/// If setter is `None`, the attribute will be read-only. The attr parameter +/// is one of [`AttrAttr::Sim_Attr_Required`], [`AttrAttr::Sim_Attr_Optional`], +/// [`AttrAttr::Sim_Attr_Session`] or [`AttrAttr::Sim_Attr_Pseudo`]. Attributes marked +/// [`AttrAttr::Sim_Attr_Required`] or [`AttrAttr::Sim_Attr_Optional`] are saved in +/// checkpoints. Both `setter` and `getter` must be provided for such attributes. All +/// attributes that are marked [`AttrAttr::Sim_Attr_Required`] must be present in all +/// configurations. +/// +/// The set of permitted values is encoded in the `attr_type` type, and in `idx_type` +/// for values during indexed access. A `None` value for either type string means that +/// values of any type are permitted. +/// +/// # Arguments +/// +/// * `cls` - The class to register an attribute on +/// * `name` - The name of the new attribute +/// * `getter` - A closure that takes an instance of the object described by `cls` and +/// the value to get +/// * `setter` - An optional closure that takes an instance of the object described by +/// `cls`, the value to set, and the value to set it to +/// * `attr` - The attributes of the attribute +/// * `attr_type` - The types allowed for the attribute +/// * `idx_type` - The types allowed to index the attribute +/// +/// # Context +/// +/// Global Context +pub fn register_typed_attribute( + cls: *mut ConfClass, + name: S, + getter: Option, + setter: Option, + attr: AttrAttr, + attr_type: Option, + idx_type: Option, + desc: S, +) -> Result<()> +where + S: AsRef, + GF: FnOnce(*mut ConfObject, *mut attr_value_t) -> attr_value_t + 'static, + SF: FnOnce(*mut ConfObject, *mut attr_value_t, *mut attr_value_t) -> SetErr + 'static, +{ + let attr_type = if let Some(attr_type) = attr_type { + raw_cstr(attr_type.to_string())? + } else { + null_mut() + }; + + let idx_type = if let Some(idx_type) = idx_type { + raw_cstr(idx_type.to_string())? + } else { + null_mut() + }; + + let (get_attr, getter_cb_raw) = if let Some(getter) = getter { + let getter_cb = Box::new(getter); + let getter_cb_box = Box::new(getter_cb); + ( + Some(get_typed_attr_handler:: as _), + Box::into_raw(getter_cb_box), + ) + } else { + (None, null_mut()) + }; + + let (set_attr, setter_cb_raw) = if let Some(setter) = setter { + let setter_cb = Box::new(setter); + let setter_cb_box = Box::new(setter_cb); + ( + Some(set_typed_attr_handler:: as _), + Box::into_raw(setter_cb_box), + ) + } else { + (None, null_mut()) + }; + + unsafe { + SIM_register_typed_attribute( + cls, + raw_cstr(name)?, + get_attr, + getter_cb_raw as *mut c_void, + set_attr, + setter_cb_raw as *mut c_void, + attr, + attr_type, + idx_type, + raw_cstr(desc)?, + ) + }; + + Ok(()) +} + +#[simics_exception] +/// Register a typed attribute of a class. This attribute will appear on the class object itself. +/// +/// Add the attribute name to the set of attributes of the class cls. +/// +/// The function `getter` is called with the object and the value from user_data_get as +/// arguments, and returns the current value of the attribute. +/// +/// On error, get_attr should call [`attribute_error`]. The return value is then +/// ignored; typically, [`make_attr_invalid`] is used to generate an explicitly invalid +/// value. +/// +/// If `getter` is `None`, the attribute will be write-only. The function `setter` is +/// called with the object and the value from `user_data_set` as arguments when the +/// attribute is initialised or changed. The argument value is owned by the caller, so +/// any data from it must be copied. +/// +/// The set_attr method should return [`SetErr::Sim_Set_Ok`] if the new value could be +/// set. On error, it should return an appropriate error code (usually +/// [`SetErr::Sim_Set_Illegal_Value`]), and optionally call [`attribute_error`] with an +/// explanatory message. +/// +/// If setter is `None`, the attribute will be read-only. The attr parameter +/// is one of [`AttrAttr::Sim_Attr_Required`], [`AttrAttr::Sim_Attr_Optional`], +/// [`AttrAttr::Sim_Attr_Session`] or [`AttrAttr::Sim_Attr_Pseudo`]. Attributes marked +/// [`AttrAttr::Sim_Attr_Required`] or [`AttrAttr::Sim_Attr_Optional`] are saved in +/// checkpoints. Both `setter` and `getter` must be provided for such attributes. All +/// attributes that are marked [`AttrAttr::Sim_Attr_Required`] must be present in all +/// configurations. +/// +/// The set of permitted values is encoded in the `attr_type` type, and in `idx_type` +/// for values during indexed access. A `None` value for either type string means that +/// values of any type are permitted. +/// +/// # Arguments +/// +/// * `cls` - The class to register an attribute on +/// * `name` - The name of the new attribute +/// * `getter` - A closure that takes an instance of the object described by `cls` and +/// the value to get +/// * `setter` - An optional closure that takes an instance of the object described by +/// `cls`, the value to set, and the value to set it to +/// * `attr` - The attributes of the attribute +/// * `attr_type` - The types allowed for the attribute +/// * `idx_type` - The types allowed to index the attribute +/// +/// # Context +/// +/// Global Context +pub fn register_typed_class_attribute( + cls: *mut ConfClass, + name: S, + getter: Option, + setter: Option, + attr: AttrAttr, + attr_type: Option, + idx_type: Option, + desc: S, +) -> Result<()> +where + S: AsRef, + GF: FnOnce(*mut ConfClass, *mut attr_value_t) -> attr_value_t + 'static, + SF: FnOnce(*mut ConfClass, *mut attr_value_t, *mut attr_value_t) -> SetErr + 'static, +{ + let attr_type = if let Some(attr_type) = attr_type { + raw_cstr(attr_type.to_string())? + } else { + null_mut() + }; + + let idx_type = if let Some(idx_type) = idx_type { + raw_cstr(idx_type.to_string())? + } else { + null_mut() + }; + + let (get_attr, getter_cb_raw) = if let Some(getter) = getter { + let getter_cb = Box::new(getter); + let getter_cb_box = Box::new(getter_cb); + ( + Some(get_typed_class_attr_handler:: as _), + Box::into_raw(getter_cb_box), + ) + } else { + (None, null_mut()) + }; + + let (set_attr, setter_cb_raw) = if let Some(setter) = setter { + let setter_cb = Box::new(setter); + let setter_cb_box = Box::new(setter_cb); + ( + Some(set_typed_class_attr_handler:: as _), + Box::into_raw(setter_cb_box), + ) + } else { + (None, null_mut()) + }; + + unsafe { + SIM_register_typed_class_attribute( + cls, + raw_cstr(name)?, + get_attr, + getter_cb_raw as *mut c_void, + set_attr, + setter_cb_raw as *mut c_void, + attr, + attr_type, + idx_type, + raw_cstr(desc)?, + ) + }; + + Ok(()) +} + +#[simics_exception] +/// Register a pseudo-untyped attribute of the instances of a class. +/// +/// Add the attribute name to the set of attributes of the class cls. +/// +/// The function `getter` is called with the object and the value from user_data_get as +/// arguments, and returns the current value of the attribute. +/// +/// On error, get_attr should call [`attribute_error`]. The return value is then +/// ignored; typically, [`make_attr_invalid`] is used to generate an explicitly invalid +/// value. +/// +/// If `getter` is `None`, the attribute will be write-only. The function `setter` is +/// called with the object and the value from `user_data_set` as arguments when the +/// attribute is initialised or changed. The argument value is owned by the caller, so +/// any data from it must be copied. +/// +/// The set_attr method should return [`SetErr::Sim_Set_Ok`] if the new value could be +/// set. On error, it should return an appropriate error code (usually +/// [`SetErr::Sim_Set_Illegal_Value`]), and optionally call [`attribute_error`] with an +/// explanatory message. +/// +/// If setter is `None`, the attribute will be read-only. The attr parameter +/// is one of [`AttrAttr::Sim_Attr_Required`], [`AttrAttr::Sim_Attr_Optional`], +/// [`AttrAttr::Sim_Attr_Session`] or [`AttrAttr::Sim_Attr_Pseudo`]. Attributes marked +/// [`AttrAttr::Sim_Attr_Required`] or [`AttrAttr::Sim_Attr_Optional`] are saved in +/// checkpoints. Both `setter` and `getter` must be provided for such attributes. All +/// attributes that are marked [`AttrAttr::Sim_Attr_Required`] must be present in all +/// configurations. +/// +/// The set of permitted values is encoded in the `attr_type` type, and in `idx_type` +/// for values during indexed access. A `None` value for either type string means that +/// values of any type are permitted. +/// +/// # Arguments +/// +/// * `cls` - The class to register an attribute on +/// * `name` - The name of the new attribute +/// * `getter` - A closure that takes an instance of the object described by `cls` and +/// the value to get +/// * `setter` - An optional closure that takes an instance of the object described by +/// `cls`, the value to set, and the value to set it to +/// * `attr` - The attributes of the attribute +/// * `attr_type` - The types allowed for the attribute +/// +/// # Context +/// +/// Global Context +pub fn register_attribute( + cls: *mut ConfClass, + name: S, + getter: Option, + setter: Option, + attr: AttrAttr, + attr_type: Option, + desc: S, +) -> Result<()> +where + S: AsRef, + GF: FnOnce(*mut ConfObject) -> attr_value_t + 'static, + SF: FnOnce(*mut ConfObject, *mut attr_value_t) -> SetErr + 'static, +{ + let attr_type = if let Some(attr_type) = attr_type { + raw_cstr(attr_type.to_string())? + } else { + null_mut() + }; + + let (get_attr, getter_cb_raw) = if let Some(getter) = getter { + let getter_cb = Box::new(getter); + let getter_cb_box = Box::new(getter_cb); + ( + Some(get_attr_handler:: as _), + Box::into_raw(getter_cb_box), + ) + } else { + (None, null_mut()) + }; + + let (set_attr, setter_cb_raw) = if let Some(setter) = setter { + let setter_cb = Box::new(setter); + let setter_cb_box = Box::new(setter_cb); + ( + Some(set_attr_handler:: as _), + Box::into_raw(setter_cb_box), + ) + } else { + (None, null_mut()) + }; + + unsafe { + SIM_register_attribute_with_user_data( + cls, + raw_cstr(name)?, + get_attr, + getter_cb_raw as *mut c_void, + set_attr, + setter_cb_raw as *mut c_void, + attr, + attr_type, + raw_cstr(desc)?, + ) + }; + + Ok(()) +} + +#[simics_exception] +/// Register a pseudo-untyped attribute on a class itself. +/// +/// Add the attribute name to the set of attributes of the class cls. +/// +/// The function `getter` is called with the object and the value from user_data_get as +/// arguments, and returns the current value of the attribute. +/// +/// On error, get_attr should call [`attribute_error`]. The return value is then +/// ignored; typically, [`make_attr_invalid`] is used to generate an explicitly invalid +/// value. +/// +/// If `getter` is `None`, the attribute will be write-only. The function `setter` is +/// called with the object and the value from `user_data_set` as arguments when the +/// attribute is initialised or changed. The argument value is owned by the caller, so +/// any data from it must be copied. +/// +/// The set_attr method should return [`SetErr::Sim_Set_Ok`] if the new value could be +/// set. On error, it should return an appropriate error code (usually +/// [`SetErr::Sim_Set_Illegal_Value`]), and optionally call [`attribute_error`] with an +/// explanatory message. +/// +/// If setter is `None`, the attribute will be read-only. The attr parameter +/// is one of [`AttrAttr::Sim_Attr_Required`], [`AttrAttr::Sim_Attr_Optional`], +/// [`AttrAttr::Sim_Attr_Session`] or [`AttrAttr::Sim_Attr_Pseudo`]. Attributes marked +/// [`AttrAttr::Sim_Attr_Required`] or [`AttrAttr::Sim_Attr_Optional`] are saved in +/// checkpoints. Both `setter` and `getter` must be provided for such attributes. All +/// attributes that are marked [`AttrAttr::Sim_Attr_Required`] must be present in all +/// configurations. +/// +/// The set of permitted values is encoded in the `attr_type` type, and in `idx_type` +/// for values during indexed access. A `None` value for either type string means that +/// values of any type are permitted. +/// +/// # Arguments +/// +/// * `cls` - The class to register an attribute on +/// * `name` - The name of the new attribute +/// * `getter` - A closure that takes an instance of the object described by `cls` and +/// the value to get +/// * `setter` - An optional closure that takes an instance of the object described by +/// `cls`, the value to set, and the value to set it to +/// * `attr` - The attributes of the attribute +/// * `attr_type` - The types allowed for the attribute +/// +/// # Context +/// +/// Global Context +pub fn register_class_attribute( + cls: *mut ConfClass, + name: S, + getter: Option, + setter: Option, + attr: AttrAttr, + attr_type: Option, + desc: S, +) -> Result<()> +where + S: AsRef, + GF: FnOnce(*mut ConfClass) -> attr_value_t + 'static, + SF: FnOnce(*mut ConfClass, *mut attr_value_t) -> SetErr + 'static, +{ + let attr_type = if let Some(attr_type) = attr_type { + raw_cstr(attr_type.to_string())? + } else { + null_mut() + }; + + let (get_attr, getter_cb_raw) = if let Some(getter) = getter { + let getter_cb = Box::new(getter); + let getter_cb_box = Box::new(getter_cb); + ( + Some(get_class_attr_handler:: as _), + Box::into_raw(getter_cb_box), + ) + } else { + (None, null_mut()) + }; + + let (set_attr, setter_cb_raw) = if let Some(setter) = setter { + let setter_cb = Box::new(setter); + let setter_cb_box = Box::new(setter_cb); + ( + Some(set_class_attr_handler:: as _), + Box::into_raw(setter_cb_box), + ) + } else { + (None, null_mut()) + }; + + unsafe { + SIM_register_class_attribute_with_user_data( + cls, + raw_cstr(name)?, + get_attr, + getter_cb_raw as *mut c_void, + set_attr, + setter_cb_raw as *mut c_void, + attr, + attr_type, + raw_cstr(desc)?, + ) + }; + + Ok(()) +} + +// NOTE: We do not provide unuserdata untyped registration functions, we only want to register +// typed attributes, and we need userdata for our handlers + +#[simics_exception] +/// When used inside an attribute set_attr/get_attr method, indicates why it failed to +/// set or retrieve the attribute. This function only serves to give an informative +/// message to the user. The object or attribute names need not be mentioned in the msg +/// argument; Simics will supply this automatically. +/// +/// The error message supplied will be attached to any frontend exception generated by +/// the attribute access. +/// +/// # Arguments +/// +/// * `msg` - The message to set on an attribute error +/// +/// # Context +/// +/// Cell Context +pub fn attribute_error(msg: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_attribute_error(raw_cstr(msg)?) }; + Ok(()) +} + +// NOTE: add_configuration not implemented, it is only to be used from Python + +#[simics_exception] +/// Register that cls implements interface `I`. The interface itself should be +/// supplied in the iface argument. +/// +/// The data iface points to must not be deallocated or overwritten by the caller. +/// Simics will use that data to store the interface structure. It will never be freed +/// or written to by Simics. +/// +/// # Arguments +/// +/// * `cls` - The class to register the interface for +/// +/// # Return value +/// +/// Non-zero on failure, 0 on success +/// +/// # Exceptions +/// +/// * [`SimException::SimExc_General`] Thrown if the interface name is illegal, or if +/// this interface has already been registered for this class. +/// +/// # Context +/// +/// Global Context +pub fn register_interface(cls: *mut ConfClass) -> Result +where + I: Interface, +{ + let name_raw = I::NAME.as_raw_cstr()?; + let iface_box = Box::::default(); + // Note: This allocates and never frees. This is *required* by SIMICS and it is an error to + // free this pointer + let iface_raw = Box::into_raw(iface_box); + + debug_assert!( + std::mem::size_of_val(&iface_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), + "Pointer is not convertible to *mut c_void" + ); + + Ok(unsafe { SIM_register_interface(cls, name_raw, iface_raw as *mut _) }) +} + +// TODO: Port & compatible interfaces + +#[simics_exception] +/// Get an interface on an object +/// +/// # Arguments +/// +/// * `obj` - The object to get an interface on +/// +/// # Return Value +/// +/// The interface requested, or an error if invalid. +/// +/// # Performance +/// +/// * `SIM_get_interface` - Calls [`SIM_object_class`] which is extremely cheap ((&obj->sobj)->isa) +/// then canonicalizes (replace - with _) the interface name, then does a hashtable lookup with +/// the interface name. This shouldn't be called in an extreme tight loop (e.g. each instruction) +/// but is OK to call on rarer events (e.g. on magic instructions). +/// +/// # Context +/// +/// All Contexts +pub fn get_interface(obj: *mut ConfObject) -> Result +where + I: Interface, +{ + Ok(I::new(obj, unsafe { + SIM_get_interface(obj as *const ConfObject, I::NAME.as_raw_cstr()?) + as *mut I::InternalInterface + })) +} + +#[simics_exception] +/// Get an interface of a class +/// +/// # Arguments +/// +/// * `obj` - The object to get an interface on +/// +/// # Return Value +/// +/// The interface requested, or an error if invalid. +/// +/// # Context +/// +/// All Contexts +pub fn get_class_interface(cls: *mut ConfClass) -> Result<*mut I::InternalInterface> +where + I: Interface, +{ + Ok(unsafe { + SIM_get_class_interface(cls as *const ConfClass, I::NAME.as_raw_cstr()?) + as *mut I::InternalInterface + }) +} + +// TODO: Add Port Interfaces + +#[simics_exception] +/// Indicates if the given object is being deleted. This information can be useful by +/// other objects that want to clean up their references. +/// +/// # Return Value +/// +/// Whether the object is being deleted +/// +/// # Context +/// +/// Global Context +pub fn marked_for_deletion(obj: *mut ConfObject) -> bool { + unsafe { SIM_marked_for_deletion(obj) } +} diff --git a/modules/tsffs/src/simics/simics/src/api/base/event.rs b/modules/tsffs/src/simics/simics/src/api/base/event.rs new file mode 100644 index 00000000..9dddc354 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/base/event.rs @@ -0,0 +1,941 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS APIs for event management + +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use crate::{ + api::{ + sys::{ + cycles_t, event_class_t, SIM_event_cancel_step, SIM_event_cancel_time, + SIM_event_find_next_cycle, SIM_event_find_next_step, SIM_event_find_next_time, + SIM_event_post_cycle, SIM_event_post_step, SIM_event_post_time, SIM_register_event, + }, + ConfClass, ConfObject, PcStep, + }, + Error, Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::{ffi::c_void, ptr::null_mut}; +use typed_builder::TypedBuilder; + +/// Flags for an event +pub use crate::api::sys::event_class_flag_t as EventClassFlag; +pub type EventClass = event_class_t; +pub type Cycles = cycles_t; + +pub type EventCallbackClosure = Box; +pub type EventFilterClosure = Box i32>; + +extern "C" fn event_callback_handler(obj: *mut ConfObject, cb: *mut c_void) { + let closure = Box::leak(unsafe { Box::from_raw(cb as *mut EventCallbackClosure) }); + closure(obj) +} + +extern "C" fn event_destroy_handler(_: *mut ConfObject, cb: *mut c_void) { + let _ = unsafe { Box::from_raw(cb as *mut EventCallbackClosure) }; + // NOTE: _ dropped +} + +extern "C" fn event_filter_handler(data: *mut c_void, callback: *mut c_void) -> i32 { + let closure = Box::leak(unsafe { Box::from_raw(callback as *mut EventFilterClosure) }); + closure(data) +} +#[derive(TypedBuilder, Debug, Clone)] +/// Simplified event management mechanism using dynamic dispatch to circumvent complex trait +/// requirements due to difference in callback specification and post time when using the +/// canonical SIMICS APIs +pub struct Event { + #[builder(setter(into))] + #[allow(unused)] + /// The name of the event. This should identify the event uniquely. + name: String, + #[allow(unused)] + /// The class the event will be posted for. This should be the class that is *posting* the + /// events, not the class the events are posting on. For example, if you are implementing + /// a module, `cls` should be the main class in your module. + cls: *mut ConfClass, + #[builder(default = EventClassFlag(0), setter(into))] + #[allow(unused)] + /// Flags of the event. Should either be 0 (the default), which indicates the event should not + /// be saved, or [`simics::api::sys::Sim_EC_Notsaved`] which indicates this may not be saved + /// in the configuration. + flags: EventClassFlag, + #[builder(default = register_event(&name, cls, flags).expect("Failed to register event"))] + event_class: *mut EventClass, +} + +impl Event { + pub fn cls(&self) -> *mut ConfClass { + self.cls + } + + pub fn event_class(&self) -> *mut EventClass { + self.event_class + } + + /// Register a new event to be posted for objects of class cl, and + /// returns the event class to be used in other calls. + /// + /// # Arguments + /// + /// * `name` - The name of the event to register for + /// * `cls` - The class events will be posted for objects of + /// * `flags` - Flags describing the events + /// + /// # Context + /// + /// Global Context + pub fn register(name: S, cls: *mut ConfClass, flags: EventClassFlag) -> Result + where + S: AsRef, + { + Ok(Self { + name: name.as_ref().to_string(), + cls, + flags, + event_class: register_event(name, cls, flags)?, + }) + } + + /// An event of evclass for object obj is posted on clock to occur at a given point in + /// the future. The user_data will be associated with the event. The clock is the + /// object that should be used for keeping track of time for the event. It can be a + /// processor or an instance of the clock class. + /// + /// If a configuration class was specified when evclass was registered, then obj must be + /// an instance of that class. + /// + /// The expiration point can be specified in seconds, cycles or steps by using the + /// appropriate call, and these values are relative to the current state. Events that + /// need to run synchronized (Sim_EC_Machine_Sync) can only be posted in seconds or + /// cycles, not steps, since synchronization can only be perform in virtual time. + /// + /// Note: Events posted with SIM_event_post_cycle are posted at a certain point in time + /// based on the clock's current frequency, not at a certain clock cycle. The difference + /// is significant if the frequency of the clock object can change dynamically. + /// + /// # Arguments + /// + /// * `obj` - The object the event is being posted on + /// * `clock` - The clock whose time this event is being posted for + /// * `seconds` - The number of seconds until this event expires + /// * `callback` - Callback to run for this event + /// + /// # Context + /// + /// Cell Context + pub fn post_time( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + seconds: f64, + callback: F, + ) -> Result<()> + where + F: FnMut(*mut ConfObject) + 'static, + { + event_post_time(clock, self.event_class, obj, seconds, callback) + } + + /// All unexpired evclass events posted for obj on clock for which pred returns nonzero + /// will be cancelled and their destructor methods (if any) called. pred will be called + /// with the data associated with the event and the supplied match_data. If pred is null + /// (None in Python), all evclass events for obj on clock will be cancelled. + /// + /// There are separate calls for events posted at a point in time (cycle or seconds) and + /// on a specific step. + /// + /// # Arguments + /// + /// * `obj` - The object the event was posted on + /// * `clock` - The clock the event to cancel was posted on + /// + /// # Context + /// + /// Cell Context + pub fn cancel_time(&self, obj: *mut ConfObject, clock: *mut ConfObject) -> Result<()> { + event_cancel_time:: i32>>(clock, self.event_class, obj, None) + } + + #[deprecated = "Filter function will not be freed. This will lead to memory leaks."] + /// All unexpired evclass events posted for obj on clock for which pred returns nonzero + /// will be cancelled and their destructor methods (if any) called. pred will be called + /// with the data associated with the event and the supplied match_data. If pred is null + /// (None in Python), all evclass events for obj on clock will be cancelled. + /// + /// There are separate calls for events posted at a point in time (cycle or seconds) and + /// on a specific step. + /// + /// # Arguments + /// + /// * `obj` - The object the event was posted on + /// * `clock` - The clock the event to cancel was posted on + /// * `filter` - The filter function. Note that there is a limitation currently + /// which does not allow this filter function to be freed once it is boxed, which can + /// lead to memory leaks, so this method is deprecated as a warning. + /// + /// # Context + /// + /// Cell Context + pub fn cancel_time_filter( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + filter: Option, + ) -> Result<()> + where + F: Fn(*mut c_void) -> i32 + 'static, + { + event_cancel_time(clock, self.event_class, obj, filter) + } + + /// An event of evclass for object obj is posted on clock to occur at a given point in + /// the future. The user_data will be associated with the event. The clock is the + /// object that should be used for keeping track of time for the event. It can be a + /// processor or an instance of the clock class. + /// + /// If a configuration class was specified when evclass was registered, then obj must be + /// an instance of that class. + /// + /// The expiration point can be specified in seconds, cycles or steps by using the + /// appropriate call, and these values are relative to the current state. Events that + /// need to run synchronized (Sim_EC_Machine_Sync) can only be posted in seconds or + /// cycles, not steps, since synchronization can only be perform in virtual time. + /// + /// Note: Events posted with SIM_event_post_cycle are posted at a certain point in time + /// based on the clock's current frequency, not at a certain clock cycle. The difference + /// is significant if the frequency of the clock object can change dynamically. + /// + /// # Arguments + /// + /// * `obj` - The object the event is being posted on + /// * `clock` - The clock whose time this event is being posted for + /// * `steps` - The number of seconds until this event expires + /// * `callback` - Callback to run for this event + /// + /// # Context + /// + /// Cell Context + pub fn post_step( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + steps: PcStep, + callback: F, + ) -> Result<()> + where + F: FnMut(*mut ConfObject) + 'static, + { + event_post_step(clock, self.event_class, obj, steps, callback) + } + + /// All unexpired evclass events posted for obj on clock for which pred returns nonzero + /// will be cancelled and their destructor methods (if any) called. pred will be called + /// with the data associated with the event and the supplied match_data. If pred is null + /// (None in Python), all evclass events for obj on clock will be cancelled. + /// + /// There are separate calls for events posted at a point in time (cycle or seconds) and + /// on a specific step. + /// + /// # Arguments + /// + /// * `obj` - The object the event was posted on + /// * `clock` - The clock the event to cancel was posted on + /// + /// # Context + /// + /// Cell Context + pub fn cancel_step(&self, obj: *mut ConfObject, clock: *mut ConfObject) -> Result<()> { + event_cancel_step:: i32>>(clock, self.event_class, obj, None) + } + + #[deprecated = "Filter function will not be freed. This will lead to memory leaks."] + /// All unexpired evclass events posted for obj on clock for which pred returns nonzero + /// will be cancelled and their destructor methods (if any) called. pred will be called + /// with the data associated with the event and the supplied match_data. If pred is null + /// (None in Python), all evclass events for obj on clock will be cancelled. + /// + /// There are separate calls for events posted at a point in time (cycle or seconds) and + /// on a specific step. + /// + /// # Arguments + /// + /// * `obj` - The object the event was posted on + /// * `clock` - The clock the event to cancel was posted on + /// * `filter` - The filter function. Note that there is a limitation currently + /// which does not allow this filter function to be freed once it is boxed, which can + /// lead to memory leaks, so this method is deprecated as a warning. + /// + /// # Context + /// + /// Cell Context + pub fn cancel_step_filter( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + filter: Option, + ) -> Result<()> + where + F: Fn(*mut c_void) -> i32 + 'static, + { + event_cancel_step(clock, self.event_class, obj, filter) + } + + /// An event of evclass for object obj is posted on clock to occur at a given point in + /// the future. The user_data will be associated with the event. The clock is the + /// object that should be used for keeping track of time for the event. It can be a + /// processor or an instance of the clock class. + /// + /// If a configuration class was specified when evclass was registered, then obj must be + /// an instance of that class. + /// + /// The expiration point can be specified in seconds, cycles or steps by using the + /// appropriate call, and these values are relative to the current state. Events that + /// need to run synchronized (Sim_EC_Machine_Sync) can only be posted in seconds or + /// cycles, not steps, since synchronization can only be perform in virtual time. + /// + /// Note: Events posted with SIM_event_post_cycle are posted at a certain point in time + /// based on the clock's current frequency, not at a certain clock cycle. The difference + /// is significant if the frequency of the clock object can change dynamically. + /// + /// # Arguments + /// + /// * `obj` - The object the event is being posted on + /// * `clock` - The clock whose time this event is being posted for + /// * `cycles` - The number of seconds until this event expires + /// * `callback` - Callback to run for this event + /// + /// # Context + /// + /// Cell Context + pub fn post_cycle( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + cycles: Cycles, + callback: F, + ) -> Result<()> + where + F: FnMut(*mut ConfObject) + 'static, + { + event_post_cycle(clock, self.event_class, obj, cycles, callback) + } + + /// Return the number of cycles/seconds/steps to the first event of evclass of obj posted + /// on clock for which pred is true, or −1 if no event matched. pred will be called with + /// the data associated with the event and the supplied match_data. If pred is null (None + /// in Python), the first evclass event for obj on clock will be used. + /// + /// There are separate calls of events posted at a point in time (cycle or seconds) and + /// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a + /// preliminary estimate; the number of remaining cycles will change if the clock's + /// frequency changes dynamically. To handle dynamically changing clock frequencies + /// correctly, subscribe to the frequency changes via the clock's simple_dispatcher + /// interface. + /// + /// # Arguments + /// + /// * `clock` - The clock for the posted event + /// * `obj` - The object posted on + /// + /// # Return Value + /// + /// If found, the cycle number the event will next trigger on + /// + /// # Context + /// + /// Cell Context + pub fn find_next_time(&self, obj: *mut ConfObject, clock: *mut ConfObject) -> Result { + event_find_next_time:: i32>>(clock, self.event_class, obj, None) + } + + /// Return the number of cycles/seconds/steps to the first event of evclass of obj posted + /// on clock for which pred is true, or −1 if no event matched. pred will be called with + /// the data associated with the event and the supplied match_data. If pred is null (None + /// in Python), the first evclass event for obj on clock will be used. + /// + /// There are separate calls of events posted at a point in time (cycle or seconds) and + /// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a + /// preliminary estimate; the number of remaining cycles will change if the clock's + /// frequency changes dynamically. To handle dynamically changing clock frequencies + /// correctly, subscribe to the frequency changes via the clock's simple_dispatcher + /// interface. + /// + /// # Arguments + /// + /// * `clock` - The clock for the posted event + /// * `obj` - The object posted on + /// * `filter` - A function to filter objects by returning true or false + /// + /// # Return Value + /// + /// If found, the cycle number the event will next trigger on + /// + /// # Context + /// + /// Cell Context + pub fn find_next_time_filter( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + filter: F, + ) -> Result + where + F: Fn(*mut c_void) -> i32 + 'static, + { + event_find_next_time(clock, self.event_class, obj, Some(filter)) + } + + /// Return the number of cycles/seconds/steps to the first event of evclass of obj posted + /// on clock for which pred is true, or −1 if no event matched. pred will be called with + /// the data associated with the event and the supplied match_data. If pred is null (None + /// in Python), the first evclass event for obj on clock will be used. + /// + /// There are separate calls of events posted at a point in time (cycle or seconds) and + /// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a + /// preliminary estimate; the number of remaining cycles will change if the clock's + /// frequency changes dynamically. To handle dynamically changing clock frequencies + /// correctly, subscribe to the frequency changes via the clock's simple_dispatcher + /// interface. + /// + /// # Arguments + /// + /// * `clock` - The clock for the posted event + /// * `obj` - The object posted on + /// + /// # Return Value + /// + /// If found, the cycle number the event will next trigger on + /// + /// # Context + /// + /// Cell Context + pub fn find_next_cycle(&self, obj: *mut ConfObject, clock: *mut ConfObject) -> Result { + event_find_next_cycle:: i32>>(clock, self.event_class, obj, None) + } + + /// Return the number of cycles/seconds/steps to the first event of evclass of obj posted + /// on clock for which pred is true, or −1 if no event matched. pred will be called with + /// the data associated with the event and the supplied match_data. If pred is null (None + /// in Python), the first evclass event for obj on clock will be used. + /// + /// There are separate calls of events posted at a point in time (cycle or seconds) and + /// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a + /// preliminary estimate; the number of remaining cycles will change if the clock's + /// frequency changes dynamically. To handle dynamically changing clock frequencies + /// correctly, subscribe to the frequency changes via the clock's simple_dispatcher + /// interface. + /// + /// # Arguments + /// + /// * `clock` - The clock for the posted event + /// * `obj` - The object posted on + /// * `filter` - A function to filter objects by returning true or false + /// + /// # Return Value + /// + /// If found, the cycle number the event will next trigger on + /// + /// # Context + /// + /// Cell Context + pub fn find_next_cycle_filter( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + filter: F, + ) -> Result + where + F: Fn(*mut c_void) -> i32 + 'static, + { + event_find_next_cycle(clock, self.event_class, obj, Some(filter)) + } + + /// Return the number of cycles/seconds/steps to the first event of evclass of obj posted + /// on clock for which pred is true, or −1 if no event matched. pred will be called with + /// the data associated with the event and the supplied match_data. If pred is null (None + /// in Python), the first evclass event for obj on clock will be used. + /// + /// There are separate calls of events posted at a point in time (cycle or seconds) and + /// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a + /// preliminary estimate; the number of remaining cycles will change if the clock's + /// frequency changes dynamically. To handle dynamically changing clock frequencies + /// correctly, subscribe to the frequency changes via the clock's simple_dispatcher + /// interface. + /// + /// # Arguments + /// + /// * `clock` - The clock for the posted event + /// * `obj` - The object posted on + /// + /// # Return Value + /// + /// If found, the cycle number the event will next trigger on + /// + /// # Context + /// + /// Cell Context + pub fn find_next_step(&self, obj: *mut ConfObject, clock: *mut ConfObject) -> Result { + event_find_next_step:: i32>>(clock, self.event_class, obj, None) + } + + /// Return the number of cycles/seconds/steps to the first event of evclass of obj posted + /// on clock for which pred is true, or −1 if no event matched. pred will be called with + /// the data associated with the event and the supplied match_data. If pred is null (None + /// in Python), the first evclass event for obj on clock will be used. + /// + /// There are separate calls of events posted at a point in time (cycle or seconds) and + /// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a + /// preliminary estimate; the number of remaining cycles will change if the clock's + /// frequency changes dynamically. To handle dynamically changing clock frequencies + /// correctly, subscribe to the frequency changes via the clock's simple_dispatcher + /// interface. + /// + /// # Arguments + /// + /// * `clock` - The clock for the posted event + /// * `obj` - The object posted on + /// * `filter` - A function to filter objects by returning true or false + /// + /// # Return Value + /// + /// If found, the cycle number the event will next trigger on + /// + /// # Context + /// + /// Cell Context + pub fn find_next_step_filter( + &self, + obj: *mut ConfObject, + clock: *mut ConfObject, + filter: F, + ) -> Result + where + F: Fn(*mut c_void) -> i32 + 'static, + { + event_find_next_step(clock, self.event_class, obj, Some(filter)) + } +} + +#[simics_exception] +/// Registers events identified by name and to be posted for objects of class cl, and +/// returns the event class to be used in other calls. Callbacks are provided when +/// posting events individually, this function registers a FFI callback compatible with the +/// closure parameters for posting events. +/// +/// The supplied methods are: +/// +/// * `callback` - Called when the event expires. +/// * `destroy` - Called when the event is removed from the queue without being called. +/// The method is not allowed to use any event API calls; it is mainly intended for +/// freeing event data. May be null. +/// * `describe` - Called to generate a human-readable description of the event to be +/// used in the print-event-queue command. +/// +/// Null function pointers correspond to the value None when invoked from Python. +/// +/// The flags is typically either zero or [`EventFlags::Sim_EC_Notsaved`], where +/// [`EventFlags::Sim_EC_Notsaved`] indicates that the event should not be saved as part +/// of the configuration. +/// +/// # Arguments +/// +/// * `name` - The name of the event to register for +/// * `cls` - The class events will be posted for objects of +/// * `flags` - Flags describing the events +/// +/// # Context +/// +/// Global Context +fn register_event(name: S, cls: *mut ConfClass, flags: EventClassFlag) -> Result<*mut EventClass> +where + S: AsRef, +{ + let event = unsafe { + SIM_register_event( + raw_cstr(name.as_ref())?, + cls, + flags, + Some(event_callback_handler), + // NOTE: Destroy callback frees the callback itself + Some(event_destroy_handler), + None, + None, + None, + ) + }; + + Ok(event) +} + +#[simics_exception] +/// An event of evclass for object obj is posted on clock to occur at a given point in +/// the future. The user_data will be associated with the event. The clock is the +/// object that should be used for keeping track of time for the event. It can be a +/// processor or an instance of the clock class. +/// +/// If a configuration class was specified when evclass was registered, then obj must be +/// an instance of that class. +/// +/// The expiration point can be specified in seconds, cycles or steps by using the +/// appropriate call, and these values are relative to the current state. Events that +/// need to run synchronized (Sim_EC_Machine_Sync) can only be posted in seconds or +/// cycles, not steps, since synchronization can only be perform in virtual time. +/// +/// Note: Events posted with SIM_event_post_cycle are posted at a certain point in time +/// based on the clock's current frequency, not at a certain clock cycle. The difference +/// is significant if the frequency of the clock object can change dynamically. +/// +/// # Arguments +/// +/// * `clock` - The clock whose time this event is being posted for +/// * `event` - The event class registered with [`register_event`] being posted +/// * `obj` - The object the event is being posted on +/// * `seconds` - The number of seconds until this event expires +/// * `callbacks` - Callbacks to run for this event +/// +/// # Context +/// +/// Cell Context +pub fn event_post_time( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + seconds: f64, + callback: F, +) where + F: FnMut(*mut ConfObject) + 'static, +{ + let callbacks: EventCallbackClosure = Box::new(callback); + let callbacks_box = Box::new(callbacks); + let callbacks_raw = Box::into_raw(callbacks_box); + + unsafe { SIM_event_post_time(clock, event, obj, seconds, callbacks_raw as *mut c_void) }; +} + +#[simics_exception] +/// An event of evclass for object obj is posted on clock to occur at a given point in +/// the future. The user_data will be associated with the event. The clock is the +/// object that should be used for keeping track of time for the event. It can be a +/// processor or an instance of the clock class. +/// +/// If a configuration class was specified when evclass was registered, then obj must be +/// an instance of that class. +/// +/// The expiration point can be specified in seconds, cycles or steps by using the +/// appropriate call, and these values are relative to the current state. Events that +/// need to run synchronized (Sim_EC_Machine_Sync) can only be posted in seconds or +/// cycles, not steps, since synchronization can only be perform in virtual time. +/// +/// Note: Events posted with SIM_event_post_cycle are posted at a certain point in time +/// based on the clock's current frequency, not at a certain clock cycle. The difference +/// is significant if the frequency of the clock object can change dynamically. +/// +/// # Arguments +/// +/// * `clock` - The clock whose time this event is being posted for +/// * `event` - The event class registered with [`register_event`] being posted +/// * `obj` - The object the event is being posted on +/// * `cycles` - The number of seconds until this event expires +/// * `callbacks` - Callbacks to run for this event +/// +/// # Context +/// +/// Cell Context +pub fn event_post_cycle( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + cycles: Cycles, + callback: F, +) where + F: FnMut(*mut ConfObject) + 'static, +{ + let callbacks: EventCallbackClosure = Box::new(callback); + let callbacks_box = Box::new(callbacks); + let callbacks_raw = Box::into_raw(callbacks_box); + + unsafe { SIM_event_post_cycle(clock, event, obj, cycles, callbacks_raw as *mut c_void) }; +} + +#[simics_exception] +/// An event of evclass for object obj is posted on clock to occur at a given point in +/// the future. The user_data will be associated with the event. The clock is the +/// object that should be used for keeping track of time for the event. It can be a +/// processor or an instance of the clock class. +/// +/// If a configuration class was specified when evclass was registered, then obj must be +/// an instance of that class. +/// +/// The expiration point can be specified in seconds, cycles or steps by using the +/// appropriate call, and these values are relative to the current state. Events that +/// need to run synchronized (Sim_EC_Machine_Sync) can only be posted in seconds or +/// cycles, not steps, since synchronization can only be perform in virtual time. +/// +/// Note: Events posted with SIM_event_post_cycle are posted at a certain point in time +/// based on the clock's current frequency, not at a certain clock cycle. The difference +/// is significant if the frequency of the clock object can change dynamically. +/// +/// # Arguments +/// +/// * `clock` - The clock whose time this event is being posted for +/// * `event` - The event class registered with [`register_event`] being posted +/// * `obj` - The object the event is being posted on +/// * `steps` - The number of seconds until this event expires +/// * `callback` - Callback to run for this event +/// +/// # Context +/// +/// Cell Context +pub fn event_post_step( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + steps: PcStep, + callback: F, +) where + F: FnMut(*mut ConfObject) + 'static, +{ + let callbacks: EventCallbackClosure = Box::new(callback); + let callbacks_box = Box::new(callbacks); + let callbacks_raw = Box::into_raw(callbacks_box); + + unsafe { SIM_event_post_step(clock, event, obj, steps, callbacks_raw as *mut c_void) }; +} + +#[simics_exception] +/// All unexpired evclass events posted for obj on clock for which pred returns nonzero +/// will be cancelled and their destructor methods (if any) called. pred will be called +/// with the data associated with the event and the supplied match_data. If pred is null +/// (None in Python), all evclass events for obj on clock will be cancelled. +/// +/// There are separate calls for events posted at a point in time (cycle or seconds) and +/// on a specific step. +/// +/// # Arguments +/// +/// * `clock` - The clock the event to cancel was posted on +/// * `event` - The event to cancel +/// * `obj` - The object the event was posted on +/// +/// # Context +/// +/// Cell Context +pub fn event_cancel_time( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + filter: Option, +) where + F: Fn(*mut c_void) -> i32 + 'static, +{ + let (callback, callback_data) = if let Some(filter) = filter { + let filter: EventFilterClosure = Box::new(filter); + let filter_box = Box::new(filter); + (Some(event_filter_handler as _), Box::into_raw(filter_box)) + } else { + (None, null_mut()) + }; + unsafe { SIM_event_cancel_time(clock, event, obj, callback, callback_data as *mut c_void) } +} + +#[simics_exception] +/// All unexpired evclass events posted for obj on clock for which pred returns nonzero +/// will be cancelled and their destructor methods (if any) called. pred will be called +/// with the data associated with the event and the supplied match_data. If pred is null +/// (None in Python), all evclass events for obj on clock will be cancelled. +/// +/// There are separate calls for events posted at a point in time (cycle or seconds) and +/// on a specific step. +/// +/// # Arguments +/// +/// * `clock` - The clock the event to cancel was posted on +/// * `event` - The event to cancel +/// * `obj` - The object the event was posted on +/// * `filter` - An optional closure to filter events that returns nonzero if an event +/// should be canceled or zero if it should not be canceled. If not provided, all events for class +/// `event` will be canceled. +/// +/// # Context +/// +/// Cell Context +pub fn event_cancel_step( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + filter: Option, +) where + F: Fn(*mut c_void) -> i32 + 'static, +{ + let (callback, callback_data) = if let Some(filter) = filter { + let filter: EventFilterClosure = Box::new(filter); + let filter_box = Box::new(filter); + (Some(event_filter_handler as _), Box::into_raw(filter_box)) + } else { + (None, null_mut()) + }; + unsafe { SIM_event_cancel_step(clock, event, obj, callback, callback_data as *mut c_void) } +} + +// NOTE: There is no such function event_cancel_cycle + +#[simics_exception] +/// Return the number of cycles/seconds/steps to the first event of evclass of obj posted +/// on clock for which pred is true, or −1 if no event matched. pred will be called with +/// the data associated with the event and the supplied match_data. If pred is null (None +/// in Python), the first evclass event for obj on clock will be used. +/// +/// There are separate calls of events posted at a point in time (cycle or seconds) and +/// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a +/// preliminary estimate; the number of remaining cycles will change if the clock's +/// frequency changes dynamically. To handle dynamically changing clock frequencies +/// correctly, subscribe to the frequency changes via the clock's simple_dispatcher +/// interface. +/// +/// # Arguments +/// +/// * `clock` - The clock for the posted event +/// * `event` - The posted event class +/// * `obj` - The object posted on +/// +/// # Return Value +/// +/// If found, the cycle number the event will next trigger on +/// +/// # Context +/// +/// Cell Context +pub fn event_find_next_cycle( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + filter: Option, +) -> Result +where + F: Fn(*mut c_void) -> i32 + 'static, +{ + let (callback, callback_data) = if let Some(filter) = filter { + let filter: EventFilterClosure = Box::new(filter); + let filter_box = Box::new(filter); + (Some(event_filter_handler as _), Box::into_raw(filter_box)) + } else { + (None, null_mut()) + }; + + let time = + unsafe { SIM_event_find_next_cycle(clock, event, obj, callback, callback_data as _) }; + + if time == -1 { + Err(Error::NoEventFound) + } else { + Ok(time) + } +} + +#[simics_exception] +/// Return the number of cycles/seconds/steps to the first event of evclass of obj posted +/// on clock for which pred is true, or −1 if no event matched. pred will be called with +/// the data associated with the event and the supplied match_data. If pred is null (None +/// in Python), the first evclass event for obj on clock will be used. +/// +/// There are separate calls of events posted at a point in time (cycle or seconds) and +/// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a +/// preliminary estimate; the number of remaining cycles will change if the clock's +/// frequency changes dynamically. To handle dynamically changing clock frequencies +/// correctly, subscribe to the frequency changes via the clock's simple_dispatcher +/// interface. +/// +/// # Arguments +/// +/// * `clock` - The clock for the posted event +/// * `event` - The posted event class +/// * `obj` - The object posted on +/// +/// # Return Value +/// +/// If found, the cycle number the event will next trigger on +/// +/// # Context +/// +/// Cell Context +pub fn event_find_next_time( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + filter: Option, +) -> Result +where + F: Fn(*mut c_void) -> i32 + 'static, +{ + let (callback, callback_data) = if let Some(filter) = filter { + let filter: EventFilterClosure = Box::new(filter); + let filter_box = Box::new(filter); + (Some(event_filter_handler as _), Box::into_raw(filter_box)) + } else { + (None, null_mut()) + }; + + let time = unsafe { SIM_event_find_next_time(clock, event, obj, callback, callback_data as _) }; + + if time == -1.0 { + Err(Error::NoEventFound) + } else { + Ok(time) + } +} + +#[simics_exception] +/// Return the number of cycles/seconds/steps to the first event of evclass of obj posted +/// on clock for which pred is true, or −1 if no event matched. pred will be called with +/// the data associated with the event and the supplied match_data. If pred is null (None +/// in Python), the first evclass event for obj on clock will be used. +/// +/// There are separate calls of events posted at a point in time (cycle or seconds) and +/// on a specific step. Note that the return value of SIM_event_find_next_cycle is only a +/// preliminary estimate; the number of remaining cycles will change if the clock's +/// frequency changes dynamically. To handle dynamically changing clock frequencies +/// correctly, subscribe to the frequency changes via the clock's simple_dispatcher +/// interface. +/// +/// # Arguments +/// +/// * `clock` - The clock for the posted event +/// * `event` - The posted event class +/// * `obj` - The object posted on +/// +/// # Return Value +/// +/// If found, the cycle number the event will next trigger on +/// +/// # Context +/// +/// Cell Context +pub fn event_find_next_step( + clock: *mut ConfObject, + event: *mut EventClass, + obj: *mut ConfObject, + filter: Option, +) -> Result +where + F: Fn(*mut c_void) -> i32 + 'static, +{ + let (callback, callback_data) = if let Some(filter) = filter { + let filter: EventFilterClosure = Box::new(filter); + let filter_box = Box::new(filter); + (Some(event_filter_handler as _), Box::into_raw(filter_box)) + } else { + (None, null_mut()) + }; + + let time = unsafe { SIM_event_find_next_step(clock, event, obj, callback, callback_data as _) }; + + if time == -1 { + Err(Error::NoEventFound) + } else { + Ok(time) + } +} diff --git a/simics-api/src/safe/base/memory_transaction.rs b/modules/tsffs/src/simics/simics/src/api/base/memory_transaction.rs similarity index 75% rename from simics-api/src/safe/base/memory_transaction.rs rename to modules/tsffs/src/simics/simics/src/api/base/memory_transaction.rs index faf853c2..d17d3a1f 100644 --- a/simics-api/src/safe/base/memory_transaction.rs +++ b/modules/tsffs/src/simics/simics/src/api/base/memory_transaction.rs @@ -1,6 +1,6 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -use simics_api_sys::generic_transaction_t; +use crate::api::sys::generic_transaction_t; pub type GenericTransaction = generic_transaction_t; diff --git a/simics-api/src/safe/base/mod.rs b/modules/tsffs/src/simics/simics/src/api/base/mod.rs similarity index 63% rename from simics-api/src/safe/base/mod.rs rename to modules/tsffs/src/simics/simics/src/api/base/mod.rs index e18791e5..c8389b68 100644 --- a/simics-api/src/safe/base/mod.rs +++ b/modules/tsffs/src/simics/simics/src/api/base/mod.rs @@ -1,6 +1,9 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 +//! The high level SIMICS API bindings. This module provides high-level bindings to almost all +//! SIMICS APIs, including attributes, objects, simulator APIs, interfaces, and HAPs. + pub mod attr_value; pub mod conf_object; pub mod event; @@ -8,6 +11,7 @@ pub mod memory_transaction; pub mod sim_exception; pub mod sobject; pub mod time; +pub mod version; pub use attr_value::*; pub use conf_object::*; @@ -16,3 +20,4 @@ pub use memory_transaction::*; pub use sim_exception::*; pub use sobject::*; pub use time::*; +pub use version::*; diff --git a/modules/tsffs/src/simics/simics/src/api/base/sim_exception.rs b/modules/tsffs/src/simics/simics/src/api/base/sim_exception.rs new file mode 100644 index 00000000..6124900f --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/base/sim_exception.rs @@ -0,0 +1,56 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS exception handling APIs. These should typically not be used directly, most SIMICS +//! api functions provided by this crate use the `#[simics_exception]` attribute to automatically +//! convert thrown exceptions into a [`Result`]. This allows more idiomatic error handling +//! via `Result`s. + +use crate::api::sys::{ + sim_exception, SIM_clear_exception, SIM_get_pending_exception, SIM_last_error, +}; +use std::ffi::CStr; + +pub type SimException = sim_exception; + +/// Returns the error message associated with the most recently raised frontend +/// exception, even if that exception has been cleared. +/// +/// The returned string is only valid until the next use of the Simics API in the same +/// thread. +/// +/// # Context +/// +/// Cell Context +pub fn last_error() -> String { + let error_str = unsafe { CStr::from_ptr(SIM_last_error()) }; + error_str.to_string_lossy().to_string() +} + +/// Clears the currently pending frontend exception and returns the value of it. +/// +/// # Return Value +/// +/// Returns the exception that was pending before the call, or SimExc_No_Exception. +/// +/// # Context +/// +/// Cell Context +pub fn clear_exception() -> SimException { + unsafe { SIM_clear_exception() } +} + +/// This function returns the exception type of the current pending exception, or +/// SimExc_No_Exception if none available. +/// +/// # Return Value +/// +/// The pending exception. This value is [`SimException::SimExc_No_Exception`] if there was +/// none. +/// +/// # Context +/// +/// Cell Context +pub fn get_pending_exception() -> SimException { + unsafe { SIM_get_pending_exception() } +} diff --git a/simics-api/src/safe/base/sobject.rs b/modules/tsffs/src/simics/simics/src/api/base/sobject.rs similarity index 75% rename from simics-api/src/safe/base/sobject.rs rename to modules/tsffs/src/simics/simics/src/api/base/sobject.rs index 2d121736..d53d821b 100644 --- a/simics-api/src/safe/base/sobject.rs +++ b/modules/tsffs/src/simics/simics/src/api/base/sobject.rs @@ -1,7 +1,7 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -use simics_api_sys::{sclass_t, sobject_t}; +use crate::api::sys::{sclass_t, sobject_t}; pub type SObject = sobject_t; pub type SClass = sclass_t; diff --git a/modules/tsffs/src/simics/simics/src/api/base/time.rs b/modules/tsffs/src/simics/simics/src/api/base/time.rs new file mode 100644 index 00000000..2cb5ef48 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/base/time.rs @@ -0,0 +1,132 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Time management APIs + +use crate::api::{ + sys::{ + SIM_cycle_count, SIM_object_clock, SIM_picosecond_clock, SIM_stall, SIM_stall_count, + SIM_stall_cycle, SIM_stalled_until, SIM_time, + }, + ConfObject, Cycles, +}; +use simics_macro::simics_exception; + +#[simics_exception] +/// [`cycle_count`] returns the current simulated clock cycle count at obj. +/// +/// If `obj` is a cycle counter implementing either the cycle_event interface or the cycle +/// interface, then the returned count is the number of elapsed cycles according to that +/// object. If obj is not a cycle counter, then the default clock associated with the +/// object is queried for its cycle count. +/// +/// # Arguments +/// +/// * `obj` - The object to get a cycle count for +/// +/// # Return Value +/// +/// The number of cycles for the object +/// +/// # Context +/// +/// Cell Context +pub fn cycle_count(obj: *mut ConfObject) -> Cycles { + unsafe { SIM_cycle_count(obj) } +} + +#[simics_exception] +/// Get the current time of an object. +/// +/// # Arguments +/// +/// * `obj` - The object to get a time for +/// +/// # Return Value +/// +/// The current time of the object +/// +/// # Context +/// +/// Unknown +pub fn current_time(obj: *mut ConfObject) -> f64 { + unsafe { SIM_time(obj) } +} + +#[simics_exception] +/// Stall an object's execution for a number of cycles. `obj` must implement the cycle and +/// stall interfaces +/// +/// # Cycle +/// +/// Unknown +pub fn stall_cycle(obj: *mut ConfObject, cycles: Cycles) { + unsafe { SIM_stall_cycle(obj, cycles) } +} + +#[simics_exception] +/// Stall an object's execution for a number of seconds. Must implement stall and cycle interfaces +/// +/// # Cycle +/// +/// Unknown +pub fn stall(obj: *mut ConfObject, seconds: f64) { + unsafe { SIM_stall(obj, seconds) } +} + +#[simics_exception] +/// Return the cycle number an object is stalled until +/// +/// # Context +/// +/// Cell Context +pub fn stalled_until(obj: *mut ConfObject) -> Cycles { + unsafe { SIM_stalled_until(obj) } +} + +#[simics_exception] +/// Return the number of cycles an object has been stalled +/// +/// # Context +/// +/// Cell Context +pub fn stall_count(obj: *mut ConfObject) -> Cycles { + unsafe { SIM_stall_count(obj) } +} + +#[simics_exception] +/// Retrieve the default clock used by an object. This is set by the queue attribute and +/// is used as time reference for the object. +/// +/// # Arguments +/// +/// * `obj` - The object to get the clock for +/// +/// # Context +/// +/// All Contexts +pub fn object_clock(obj: *const ConfObject) -> *mut ConfObject { + unsafe { SIM_object_clock(obj as *const ConfObject) } +} + +#[simics_exception] +/// Retrieve the picosecond clock used by an object. +/// +/// The returned clock uses a cycle period of exactly 1 ps. It has full picosecond +/// resolution even if the processor (or clock) driving the simulation uses a lower +/// resolution. An event posted at a particular picosecond triggers always at that +/// precise time, without any rounding issues. +/// +/// The returned object is the vtime.ps port object of the default clock for the object, +/// and it implements the cycle_event interface. +/// +/// # Arguments +/// +/// * `obj` - The object to get the clock for +/// +/// # Context +/// +/// All Contexts +pub fn picosecond_clock(obj: *mut ConfObject) -> *mut ConfObject { + unsafe { SIM_picosecond_clock(obj) } +} diff --git a/modules/tsffs/src/simics/simics/src/api/base/version.rs b/modules/tsffs/src/simics/simics/src/api/base/version.rs new file mode 100644 index 00000000..b8bc631f --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/base/version.rs @@ -0,0 +1,82 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS version access and management APIs + +use crate::{ + api::sys::{ + SIM_copyright, SIM_register_copyright, SIM_version, SIM_version_base, SIM_version_major, + SIM_vmxmon_version, + }, + Result, +}; +use raw_cstr::raw_cstr; +use std::ffi::CStr; + +/// Get the current SIMICS version +/// +/// # Contex +/// +/// Global Context +pub fn version() -> Result { + Ok(unsafe { CStr::from_ptr(SIM_version()) } + .to_str()? + .to_string()) +} + +/// Get the current SIMICS version base +/// +/// # Contex +/// +/// Global Context +pub fn version_base() -> Result { + Ok(unsafe { CStr::from_ptr(SIM_version_base()) } + .to_str()? + .to_string()) +} + +/// Get the current SIMICS major version +/// +/// # Contex +/// +/// Global Context +pub fn version_major() -> Result { + Ok(unsafe { CStr::from_ptr(SIM_version_major()) } + .to_str()? + .to_string()) +} + +/// Get the current SIMICS vmxmon version +/// +/// # Contex +/// +/// Global Context +pub fn vmxmon_version() -> Result { + Ok(unsafe { CStr::from_ptr(SIM_vmxmon_version()) } + .to_str()? + .to_string()) +} + +/// Get the current copyright string +/// +/// # Contex +/// +/// Global Context +pub fn copyright() -> Result { + Ok(unsafe { CStr::from_ptr(SIM_copyright()) } + .to_str()? + .to_string()) +} + +/// Set the current copyright string +/// +/// # Contex +/// +/// Global Context +pub fn register_copyright(str: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_register_copyright(raw_cstr(str)?) }; + Ok(()) +} diff --git a/modules/tsffs/src/simics/simics/src/api/interface/mod.rs b/modules/tsffs/src/simics/simics/src/api/interface/mod.rs new file mode 100644 index 00000000..684a814a --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/interface/mod.rs @@ -0,0 +1,15 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#![allow( + clippy::not_unsafe_ptr_arg_deref, + clippy::too_many_arguments, + clippy::unit_arg, + clippy::should_implement_trait +)] + +//! High level bindings for API-provided SIMICS interfaces + +pub use self::interfaces::*; + +include!(concat!(env!("OUT_DIR"), "/interfaces.rs")); diff --git a/simics-api/src/safe/internal/core.rs b/modules/tsffs/src/simics/simics/src/api/internal/core.rs similarity index 71% rename from simics-api/src/safe/internal/core.rs rename to modules/tsffs/src/simics/simics/src/api/internal/core.rs index 71065f69..122e5827 100644 --- a/simics-api/src/safe/internal/core.rs +++ b/modules/tsffs/src/simics/simics/src/api/internal/core.rs @@ -1,14 +1,23 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 +//! Not officially exported CORE APIs + +use simics_macro::simics_exception; + extern "C" { /// Discard recorded future events and forget them pub fn CORE_discard_future(); } +#[simics_exception] /// Discard future events that are scheduled /// /// This will clear recorded events and logs +/// +/// # Context +/// +/// Global Context pub fn discard_future() { unsafe { CORE_discard_future() }; } diff --git a/simics-api/src/safe/internal/mod.rs b/modules/tsffs/src/simics/simics/src/api/internal/mod.rs similarity index 52% rename from simics-api/src/safe/internal/mod.rs rename to modules/tsffs/src/simics/simics/src/api/internal/mod.rs index 322bd34e..6b7b1ef9 100644 --- a/simics-api/src/safe/internal/mod.rs +++ b/modules/tsffs/src/simics/simics/src/api/internal/mod.rs @@ -1,5 +1,8 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 +//! Internal SIMICS APIs that are not exported through the API but can be useful for various +//! purposes + pub mod core; pub use self::core::*; diff --git a/modules/tsffs/src/simics/simics/src/api/logging/mod.rs b/modules/tsffs/src/simics/simics/src/api/logging/mod.rs new file mode 100644 index 00000000..fdd93c91 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/logging/mod.rs @@ -0,0 +1,202 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS logging APIs + +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use crate::{ + api::{ + sys::{ + SIM_log_critical, SIM_log_error, SIM_log_info, SIM_log_level, SIM_log_register_groups, + SIM_log_spec_violation, SIM_log_unimplemented, SIM_set_log_level, + }, + ConfObject, + }, + Error, Result, +}; +use simics_macro::simics_exception; +use std::{ffi::CString, ptr::null}; + +use super::ConfClass; + +const LOG_GROUP: i32 = 0; + +#[repr(i32)] +/// A SIMICS logging level +pub enum LogLevel { + Error = 0, + Warn = 1, + Info = 2, + Debug = 3, + Trace = 4, +} + +#[simics_exception] +/// Log an info-level message through the SIMICS logging functions +/// +/// # Arguments +/// +/// * `level` - The level to emit this log message at +/// * `device` - The device to emit this log message through +/// * `msg` - The message to log +/// +/// # Notes +/// +/// The macros [`simics::error`], [`simics::warn`], [`simics::info`], [`simics::debug`], +/// and [`simics::trace`] are more flexible and user friendly. They should be used instead. +/// +/// # Context +/// +/// All Contexts +pub fn log_info(level: LogLevel, device: *mut ConfObject, msg: S) -> Result<()> +where + S: AsRef, +{ + let msg_cstring = CString::new(msg.as_ref())?; + + unsafe { + SIM_log_info(level as i32, device, LOG_GROUP, msg_cstring.as_ptr()); + }; + + Ok(()) +} + +#[simics_exception] +/// Log an info-level message through the SIMICS logging functions +/// +/// # Arguments +/// +/// * `device` - The device to emit this log message through +/// * `msg` - The message to log +/// +/// # Notes +/// +/// The macros [`simics::error`], [`simics::warn`], [`simics::info`], [`simics::debug`], +/// and [`simics::trace`] are more flexible and user friendly. They should be used instead. +/// +/// # Context +/// +/// All Contexts +pub fn log_error(device: *mut ConfObject, msg: S) -> Result<()> +where + S: AsRef, +{ + let msg_cstring = CString::new(msg.as_ref())?; + + unsafe { + SIM_log_error(device, LOG_GROUP, msg_cstring.as_ptr()); + }; + + Ok(()) +} + +#[simics_exception] +/// Log an info-level message through the SIMICS logging functions +/// +/// # Arguments +/// +/// * `device` - The device to emit this log message through +/// * `msg` - The message to log +/// +/// # Notes +/// +/// This function causes a frontend exception. Only use it if the error is truly critical. +/// +/// # Context +/// +/// All Contexts +pub fn log_critical(device: *mut ConfObject, msg: S) -> Result<()> +where + S: AsRef, +{ + let msg_cstring = CString::new(msg.as_ref())?; + + unsafe { + SIM_log_critical(device, LOG_GROUP, msg_cstring.as_ptr()); + }; + + Ok(()) +} + +#[simics_exception] +/// Log an error-level message through the SIMICS logging functions +/// +/// # Context +/// +/// All Contexts +pub fn log_spec_violation(level: LogLevel, device: *mut ConfObject, msg: String) -> Result<()> { + let msg_cstring = CString::new(msg)?; + + unsafe { + SIM_log_spec_violation(level as i32, device, LOG_GROUP, msg_cstring.as_ptr()); + }; + + Ok(()) +} + +#[simics_exception] +/// Log an error-level message through the SIMICS logging functions +/// +/// # Context +/// +/// All Contexts +pub fn log_unimplemented(level: LogLevel, device: *mut ConfObject, msg: String) -> Result<()> { + let msg_cstring = CString::new(msg)?; + + unsafe { + SIM_log_unimplemented(level as i32, device, LOG_GROUP, msg_cstring.as_ptr()); + }; + + Ok(()) +} + +#[simics_exception] +/// Get the current log level of an object +/// +/// # Arguments +/// +/// * `obj` - The object to get the log level for +/// +/// # Context +/// +/// Cell Context +pub fn log_level(obj: *mut ConfObject) -> u32 { + unsafe { SIM_log_level(obj as *const ConfObject) } +} + +#[simics_exception] +/// Set the SIMICS log level for an object +/// +/// # Arguments +/// +/// * `obj` - The object to set the log level for +/// * `level` - The level to set the log level to +/// +/// # Context +/// +/// Cell Context +pub fn set_log_level(obj: *mut ConfObject, level: LogLevel) { + unsafe { SIM_set_log_level(obj, level as u32) }; +} + +#[simics_exception] +/// Register one or more groups for the class +/// +/// # Context +/// +/// Global Context +pub fn log_register_groups(cls: *mut ConfClass, names: &[S]) -> Result<()> +where + S: AsRef, +{ + let name_cstrs = names + .iter() + .map(|n| CString::new(n.as_ref()).map_err(Error::from)) + .collect::>>()?; + let mut name_ptrs = name_cstrs.iter().map(|n| n.as_ptr()).collect::>(); + name_ptrs.push(null()); + unsafe { SIM_log_register_groups(cls, name_ptrs.as_ptr()) }; + + Ok(()) +} diff --git a/simics-api/src/safe/mod.rs b/modules/tsffs/src/simics/simics/src/api/mod.rs similarity index 66% rename from simics-api/src/safe/mod.rs rename to modules/tsffs/src/simics/simics/src/api/mod.rs index ad534c11..306f1a3a 100644 --- a/simics-api/src/safe/mod.rs +++ b/modules/tsffs/src/simics/simics/src/api/mod.rs @@ -1,28 +1,28 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -pub mod arch; +//! Safe bindings to the SIMICS API +//! +//! In most cases, the SIMICS API is wrapped lightly to provide an experience familiar to SIMICS +//! model developers. + pub mod base; -pub mod devs; pub mod interface; pub mod internal; pub mod logging; -pub mod model_interface; pub mod processor; pub mod simulator; -pub mod simulator_interface; pub mod traits; pub mod util; pub use self::logging::*; -pub use arch::*; + pub use base::*; -pub use devs::*; pub use interface::*; pub use internal::*; -pub use model_interface::*; pub use processor::*; pub use simulator::*; -pub use simulator_interface::*; pub use traits::*; pub use util::*; + +pub use simics_api_sys as sys; diff --git a/modules/tsffs/src/simics/simics/src/api/processor/context.rs b/modules/tsffs/src/simics/simics/src/api/processor/context.rs new file mode 100644 index 00000000..f0cf6657 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/processor/context.rs @@ -0,0 +1,16 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use simics_macro::simics_exception; + +use crate::api::{sys::SIM_register_context_handler, ConfClass, ContextHandlerInterface}; + +#[simics_exception] +/// Register `cls` as a class for context handler objects +/// +/// # Context +/// +/// Unknown +pub fn register_context_handler(cls: *mut ConfClass, iface: *const ContextHandlerInterface) -> i32 { + unsafe { SIM_register_context_handler(cls, iface as *const _) } +} diff --git a/simics-api/src/safe/processor/mod.rs b/modules/tsffs/src/simics/simics/src/api/processor/mod.rs similarity index 55% rename from simics-api/src/safe/processor/mod.rs rename to modules/tsffs/src/simics/simics/src/api/processor/mod.rs index 74387f50..3f47d991 100644 --- a/simics-api/src/safe/processor/mod.rs +++ b/modules/tsffs/src/simics/simics/src/api/processor/mod.rs @@ -1,6 +1,12 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 +//! SIMICS processor APIs + +pub mod context; +pub mod stc; pub mod types; +pub use context::*; +pub use stc::*; pub use types::*; diff --git a/modules/tsffs/src/simics/simics/src/api/processor/stc.rs b/modules/tsffs/src/simics/simics/src/api/processor/stc.rs new file mode 100644 index 00000000..80f7d9d9 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/processor/stc.rs @@ -0,0 +1,41 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::api::{ + sys::{ + SIM_STC_flush_cache, SIM_flush_D_STC_logical, SIM_flush_D_STC_physical, + SIM_flush_I_STC_logical, + }, + ConfObject, LogicalAddress, PhysicalAddress, ReadOrWrite, +}; +use simics_macro::simics_exception; + +#[simics_exception] +pub fn flush_i_stc_logical(cpu: *mut ConfObject, vaddr: LogicalAddress, length: LogicalAddress) { + unsafe { SIM_flush_I_STC_logical(cpu, vaddr, length) }; +} + +#[simics_exception] +pub fn flush_d_stc_logical(cpu: *mut ConfObject, vaddr: LogicalAddress, length: LogicalAddress) { + unsafe { SIM_flush_D_STC_logical(cpu, vaddr, length) }; +} + +#[simics_exception] +pub fn flush_i_stc_physical(cpu: *mut ConfObject, paddr: PhysicalAddress, length: PhysicalAddress) { + unsafe { SIM_flush_I_STC_logical(cpu, paddr, length) }; +} + +#[simics_exception] +pub fn flush_d_stc_physical( + cpu: *mut ConfObject, + paddr: PhysicalAddress, + length: PhysicalAddress, + read_or_write: ReadOrWrite, +) { + unsafe { SIM_flush_D_STC_physical(cpu, paddr, length, read_or_write) }; +} + +#[simics_exception] +pub fn stc_flush_cache(cpu: *mut ConfObject) { + unsafe { SIM_STC_flush_cache(cpu) }; +} diff --git a/modules/tsffs/src/simics/simics/src/api/processor/types.rs b/modules/tsffs/src/simics/simics/src/api/processor/types.rs new file mode 100644 index 00000000..f575eea4 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/processor/types.rs @@ -0,0 +1,14 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::api::sys::{ + generic_address_t, logical_address_t, physical_address_t, physical_block_t, read_or_write_t, + x86_access_type, +}; + +pub type PhysicalBlock = physical_block_t; +pub type PhysicalAddress = physical_address_t; +pub type X86AccessType = x86_access_type; +pub type LogicalAddress = logical_address_t; +pub type ReadOrWrite = read_or_write_t; +pub type GenericAddress = generic_address_t; diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/breakpoints.rs b/modules/tsffs/src/simics/simics/src/api/simulator/breakpoints.rs new file mode 100644 index 00000000..9613663b --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/breakpoints.rs @@ -0,0 +1,158 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Breakpoint APIs + +use crate::api::{ + sys::{ + access_t, breakpoint_flag, breakpoint_id_t, breakpoint_kind_t, SIM_breakpoint, + SIM_breakpoint_remove, SIM_delete_breakpoint, SIM_disable_breakpoint, + SIM_enable_breakpoint, + }, + ConfObject, GenericAddress, +}; +use simics_macro::simics_exception; + +pub type BreakpointKind = breakpoint_kind_t; +pub type Access = access_t; +pub type BreakpointFlag = breakpoint_flag; +pub type BreakpointId = breakpoint_id_t; + +#[simics_exception] +/// Add breakpoint on an object implementing the breakpoint interface. This is typically +/// a memory space object such as physical memory. +/// +/// The default action for a triggered breakpoint is to return to the frontend (this can +/// be changed by using haps). On execution breakpoints Simics will return to the +/// frontend before the instructions is executed, while instructions triggering read or +/// write breakpoints will complete before control is returned to the frontend. +/// +/// Several breakpoints can be set on the same address and Simics will break on them in +/// turn. If hap handlers are connected to the breakpoints they will also be executed in +/// turn. Hap handlers are called before the access is performed, allowing the user to +/// read a memory value that may be overwritten by the access. See the Simics Reference +/// Manual for a description of hap handlers. +/// +/// Several attributes can be set for a breakpoint for breaking only when some +/// conditions are true. See the breakpoints attribute in the sim class. +/// +/// This function returns the breakpoint id which is used for further reference to the +/// breakpoin +/// +/// # Arguments +/// +/// - `kind`: The kind argument sets what type of address to break on +/// - `access`: The access argument is a bit-field setting the type of access. Any +/// combination of the three alternatives can be given (added together). +/// - `address`: The address is the start of the breakpoint range +/// - `length` is its length in bytes. This range will be truncated as necessary to fit +/// in the address space. An access intersecting the given range will trigger the +/// breakpoint. If length is zero, the breakpoint range will be the entire address +/// space. +/// - `flags`: If the Sim_Breakpoint_Temporary bit is set, the breakpoint is +/// automatically disabled when triggered the first time. If the +/// Sim_Breakpoint_Simulation bit is set, the breakpoint will not show up in the +/// .list command, nor can it be removed by the .delete command. +/// Also, there will be no message printed on the Simics console when this breakpoint is +/// triggered. This bit should be set when using breakpoints to simulate the target +/// system; it will prevent Simics from temporarily disabling the breakpoint as an +/// optimization measure. This could otherwise happen during certain reverse execution +/// operations. If the Sim_Breakpoint_Private bit is set, the breakpoint will not show +/// up in the .list command, nor can it be removed by the +/// .delete command. +/// +/// # Exceptions +/// +/// - SimExc_General Thrown if the type or access arguments are illegal. Also thrown if +/// obj cannot handle breakpoints of the given kind. +/// +/// # Context +/// +/// Cell Context +pub fn breakpoint( + obj: *mut ConfObject, + kind: BreakpointKind, + access: Access, + address: u64, + length: u64, + flags: BreakpointFlag, +) -> BreakpointId { + unsafe { SIM_breakpoint(obj, kind, access, address, length, flags) } +} + +#[simics_exception] +/// Deletes breakpoint id as returned by SIM_breakpoint. A value of zero will delete all +/// breakpoints that were set without the Sim_Breakpoint_Simulation flag. +/// +/// # Arguments +/// +/// - `id`: The breakpoint ID to delete, or 0 to delete all breakpoints set without the +/// `Sim_Breakpoint_Simulation` flag +/// +/// # Exceptions +/// +/// - SimExc_Index Thrown if no breakpoint with the id is found. +/// +/// # Context +/// +/// Cell Context +pub fn delete_breakpoint(id: BreakpointId) { + unsafe { SIM_delete_breakpoint(id) }; +} + +#[simics_exception] +/// Enable a breakpoint +/// +/// # Context +/// +/// Cell Context +pub fn enable_breakpoint(id: BreakpointId) { + unsafe { SIM_enable_breakpoint(id) }; +} + +#[simics_exception] +/// Disable a breakpoint with id `id` as returned by `breakpoint` +/// +/// # Arguments +/// +/// - `id`: The breakpoint ID returned by `breakpoint`. +/// +/// # Exceptions +/// +/// - SimExc_Index Thrown if no breakpoint with the id is found. +/// +/// # Context +/// +/// Cell Context +pub fn disable_breakpoint(id: BreakpointId) { + unsafe { SIM_disable_breakpoint(id) }; +} + +#[simics_exception] +/// Deletes a breakpoint range from an existing breakpoint. Can thus be used to create +/// holes in the breakpoint range. id is the breakpoint to operate on, as returned by +/// SIM_breakpoint. A value of zero will operate on all breakpoints that were not set +/// using the Sim_Breakpoint_Simulation flag. +/// +/// # Arguments +/// +/// - `access`: A bitfield describing the type of breakpoint to remove using the +/// enumeration constants of the access_t enum. +/// - `address`: The start address of the range +/// - `length`: The length of the range in bytes. +/// +/// # Exceptions +/// +/// - SimExc_Index Thrown if illegal breakpoint +/// +/// # Context +/// +/// Cell Context +pub fn breakpoint_remove( + id: BreakpointId, + access: Access, + address: GenericAddress, + length: GenericAddress, +) { + unsafe { SIM_breakpoint_remove(id, access, address, length) }; +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/callbacks.rs b/modules/tsffs/src/simics/simics/src/api/simulator/callbacks.rs new file mode 100644 index 00000000..46beb09c --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/callbacks.rs @@ -0,0 +1,395 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Callbacks from the simulator to user code + +#[cfg(not(windows))] +use crate::api::sys::SIM_notify_on_descriptor; +use crate::{ + api::sys::{ + notify_mode_t, socket_t, SIM_cancel_realtime_event, SIM_notify_on_socket, + SIM_process_pending_work, SIM_process_work, SIM_realtime_event, SIM_register_work, + SIM_run_alone, SIM_run_in_thread, SIM_thread_safe_callback, + }, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::{ffi::c_void, ptr::null_mut}; + +pub type NotifyMode = notify_mode_t; +pub type Socket = socket_t; + +extern "C" fn handle_notify_on_descriptor_callback(cb: *mut c_void) +where + F: Fn() + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure() +} + +#[cfg(not(windows))] +#[simics_exception] +/// Set a callback whenever a specific IO event occurs on the host on a given file descriptor. +/// If `callback` is `None`, the callback is removed. +/// +/// # Context +/// +/// Cell Context +/// Callback: Threaded Context if `run_in_thread`, Global Context otherwise +pub fn notify_on_descriptor(fd: i32, mode: NotifyMode, run_in_thread: bool, callback: Option) +where + C: Fn() + 'static, +{ + let callback = if callback.is_none() { + None + } else { + Some(handle_notify_on_descriptor_callback::) + }; + unsafe { + SIM_notify_on_descriptor( + fd, + mode, + run_in_thread as i32, + callback + .is_some() + .then_some(handle_notify_on_descriptor_callback::), + callback + .map(|c| { + let callback = Box::new(c); + let callback_box = Box::new(callback); + Box::into_raw(callback_box) as *mut c_void + }) + .unwrap_or(null_mut()), + ) + } +} + +#[simics_exception] +/// Set a callback whenever a specific IO event occurs on the host on a given file descriptor. +/// If `callback` is `None`, the callback is removed. +/// +/// # Context +/// +/// Cell Context +/// Callback: Threaded Context if `run_in_thread`, Global Context otherwise +pub fn notify_on_socket(sock: Socket, mode: NotifyMode, run_in_thread: bool, callback: Option) +where + C: Fn() + 'static, +{ + let callback = if callback.is_none() { + None + } else { + Some(handle_notify_on_descriptor_callback::) + }; + unsafe { + SIM_notify_on_socket( + sock, + mode, + run_in_thread as i32, + callback + .is_some() + .then_some(handle_notify_on_descriptor_callback::), + callback + .map(|c| { + let callback = Box::new(c); + let callback_box = Box::new(callback); + Box::into_raw(callback_box) as *mut c_void + }) + .unwrap_or(null_mut()), + ) + } +} + +extern "C" fn handle_work_callback(cb: *mut c_void) +where + F: FnOnce() + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure() +} + +#[simics_exception] +/// Register a callback to be run in the simics thread +/// +/// # Context +/// +/// Cell Context +/// Callback: Global Context +pub fn register_work(work: F) +where + F: FnOnce() + 'static, +{ + let work = Box::new(work); + let work_box = Box::new(work); + unsafe { + SIM_register_work( + Some(handle_work_callback::), + Box::into_raw(work_box) as *mut c_void, + ) + }; +} + +extern "C" fn handle_process_work_callback(cb: *mut c_void) -> i32 +where + F: FnOnce() -> i32 + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure() +} + +#[simics_exception] +/// process_work and process_pending_work processes work posted by +/// thread_safe_callback and realtime_event. These process work functions are +/// typically called when embedding Simics in another application to allow periodic and +/// asynchronous Simics work to run while the simulation is not advancing. +/// process_pending_work runs all work that has been queued up since the last call +/// and returns immediately after. +/// +/// process_work is similar but waits for new work to arrive. Each time some work +/// has been processed, the supplied done callback is called with done_data as its only +/// argument. A return value of 1 tells process_work to stop processing work and +/// return control to the caller again while 0 tells it to continue. +/// +/// The done predicate is only evaluated between callbacks that are run in Global +/// Context, that is, not registered with the run_in_thread parameter set). +/// +/// The process work functions return -1 if the user has pressed the interrupt key +/// before or while they were running, provided that the simulator core was initialized +/// to catch signals. Otherwise the return value is 0. +/// +/// # Context +/// +/// Global Context +pub fn process_work(work: F) +where + F: FnOnce() -> i32 + 'static, +{ + let work = Box::new(work); + let work_box = Box::new(work); + unsafe { + SIM_process_work( + Some(handle_process_work_callback::), + Box::into_raw(work_box) as *mut c_void, + ) + }; +} + +#[simics_exception] +/// process_work and process_pending_work processes work posted by +/// thread_safe_callback and realtime_event. These process work functions are +/// typically called when embedding Simics in another application to allow periodic and +/// asynchronous Simics work to run while the simulation is not advancing. +/// process_pending_work runs all work that has been queued up since the last call +/// and returns immediately after. +/// +/// process_work is similar but waits for new work to arrive. Each time some work +/// has been processed, the supplied done callback is called with done_data as its only +/// argument. A return value of 1 tells process_work to stop processing work and +/// return control to the caller again while 0 tells it to continue. +/// +/// The done predicate is only evaluated between callbacks that are run in Global +/// Context, that is, not registered with the run_in_thread parameter set). +/// +/// The process work functions return -1 if the user has pressed the interrupt key +/// before or while they were running, provided that the simulator core was initialized +/// to catch signals. Otherwise the return value is 0. +/// +/// # Context +/// +/// Global Context +pub fn process_pending_work() { + unsafe { SIM_process_pending_work() }; +} + +extern "C" fn handle_realtime_event_callback(cb: *mut c_void) +where + F: FnOnce() + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure() +} + +#[simics_exception] +/// # Context +/// +/// Cell Context +pub fn realtime_event( + delay_ms: u32, + callback: F, + run_in_thread: bool, + description: S, +) -> Result +where + S: AsRef, + F: FnOnce() + 'static, +{ + let callback = Box::new(callback); + let callback_box = Box::new(callback); + Ok(unsafe { + SIM_realtime_event( + delay_ms, + Some(handle_realtime_event_callback::), + Box::into_raw(callback_box) as *mut c_void, + run_in_thread as i32, + raw_cstr(description)?, + ) + }) +} + +#[simics_exception] +/// # Context +/// +/// Cell Context +pub fn cancel_realtime_event(id: i64) { + unsafe { SIM_cancel_realtime_event(id) }; +} + +// NOTE: No binding for SIM_register_work, it is not consistent and basically deprecated + +extern "C" fn handle_run_alone_callback(cb: *mut c_void) +where + F: FnOnce() -> Result<()> + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure().expect("Failed while running run_alone callback"); +} + +#[simics_exception] +/// Schedule a callback to be run with all execution stopped (global context) +/// +/// If posted while an instruction is being executed, the callback will be invoked after the +/// current instruction has completed. +/// +/// will make sure that the callback f, passed as argument, will be run in a context +/// where all execution threads are stopped and the full Simics API is available (Global +/// Context). This is useful for temporarily stopping the simulation to run API +/// functions not allowed in Cell Context. +/// +/// If the callback is posted while an instruction is being emulated then the callback +/// be invoked when the current instruction has completed and before the next +/// instruction is dispatched. +/// +/// Although no other execution threads are running when the callback is invoked, their +/// exact position in simulated time may vary between runs. If the callback accesses +/// objects in cells other than the one that run_alone was called from, then care +/// must be taken to preserve determinism. +/// +/// # Context +/// +/// All Contexts +/// Callback: Global Context +pub fn run_alone(cb: F) +where + F: FnOnce() -> Result<()> + 'static, +{ + let cb = Box::new(cb); + let cb_box = Box::new(cb); + let cb_raw = Box::into_raw(cb_box); + + debug_assert!( + std::mem::size_of_val(&cb_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), + "Pointer is not convertible to *mut c_void" + ); + + unsafe { + SIM_run_alone( + Some(handle_run_alone_callback::), + cb_raw as *mut _ as *mut c_void, + ) + } +} + +extern "C" fn handle_thread_safe_callback(cb: *mut c_void) +where + F: FnOnce() + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure() +} + +#[simics_exception] +/// Schedule a callback to be run with all execution stopped (global context) +/// +/// If posted while an instruction is being executed, the callback will be invoked after the +/// current instruction has completed. +/// +/// This is the function in the Simics API that can be called from threads that are not +/// created by Simics (i.e., from Threaded context). +/// +/// When the callback is run, it is executed in Global Context, which means that it is +/// safe to call any API functions from it. Another thread in the module may at this +/// time also call API functions, if it synchronizes correctly with the callback +/// function. For example, the callback function might just signal to the foreign thread +/// to do its Simics API calls, wait for the thread to signal that it has finished, and +/// then return. +/// +/// # Context +/// +/// Threaded Context +/// Callback: Global Context +pub fn thread_safe_callback(cb: F) +where + F: FnOnce() + 'static, +{ + let cb = Box::new(cb); + let cb_box = Box::new(cb); + let cb_raw = Box::into_raw(cb_box); + + debug_assert!( + std::mem::size_of_val(&cb_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), + "Pointer is not convertible to *mut c_void" + ); + + unsafe { + SIM_thread_safe_callback( + Some(handle_thread_safe_callback::), + cb_raw as *mut _ as *mut c_void, + ) + } +} + +extern "C" fn handle_in_thread_callback(cb: *mut c_void) +where + F: FnOnce() -> anyhow::Result<()> + 'static, +{ + let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; + closure().expect("Error running in thread callback") +} + +#[simics_exception] +/// Run a closure in a new thread. +/// +/// run_in_thread schedules the callback f to run on a separate thread. The callback +/// will run in Threaded Context and must observe the associated restrictions. Simics +/// maintains a pool of worker threads used by this function, and hence the callback can +/// typically be started quickly. +/// +/// The callback is allowed to block or otherwise run for a long time. +/// +/// The user supplied arg parameter is passed unmodified to the callback. +/// +/// # Context +/// +/// Any Context +/// Callback: Threaded Context +pub fn run_in_thread(cb: F) +where + F: FnOnce() -> anyhow::Result<()> + 'static, +{ + let cb = Box::new(cb); + let cb_box = Box::new(cb); + let cb_raw = Box::into_raw(cb_box); + + debug_assert!( + std::mem::size_of_val(&cb_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), + "Pointer is not convertible to *mut c_void" + ); + + unsafe { + SIM_run_in_thread( + Some(handle_in_thread_callback::), + cb_raw as *mut _ as *mut c_void, + ) + } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/configuration.rs b/modules/tsffs/src/simics/simics/src/api/simulator/configuration.rs new file mode 100644 index 00000000..cc97767e --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/configuration.rs @@ -0,0 +1,208 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Configuration APIs + +use crate::{ + api::{ + last_error, + sys::{ + pre_conf_object_set_t, save_flags_t, SIM_add_configuration, SIM_current_checkpoint_dir, + SIM_read_configuration, SIM_set_configuration, SIM_write_configuration_to_file, + }, + AttrValue, + }, + Error, Result, +}; +use anyhow::anyhow; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::{ + ffi::CStr, + path::{Path, PathBuf}, +}; + +pub type PreConfObjectSet = pre_conf_object_set_t; +pub type SaveFlags = save_flags_t; + +#[simics_exception] +/// Read a configuration file into the simulator state +/// +/// # Context +/// +/// Global Context +pub fn read_configuration

(file: P) -> Result<()> +where + P: AsRef, +{ + unsafe { + SIM_read_configuration(raw_cstr(file.as_ref().to_str().ok_or_else(|| { + anyhow!( + "Could not convert file path {} to string", + file.as_ref().display() + ) + })?)?) + }; + Ok(()) +} + +#[simics_exception] +/// Set the current configuration from a value +/// Note: It is recommended that the add_configuration function is used instead of +/// set_configuration. This function is an alternative to reading the configuration +/// from a file. A configuration is an attr_value_t which should have the following +/// structure. +/// +/// `(("name", "class", ("attr_name", attr_val) ... ), ... )` +/// +/// That is a list of object specifiers containing name, class, and a list of attribute +/// specifiers. An attribute specifier is a list of length 2 containing the attribute +/// name and its value. set_configuration allows an easy way of parameterizing the +/// configuration, especially if called from Python. +/// +/// The argument value may be modified, but the caller is still responsible for freeing +/// it. Neither point applies when the function is called from Python. +/// +/// EXAMPLE +/// +/// ```python,ignore +/// The following is a Python example: +/// +/// from configuration import OBJ +/// from simics import SIM_set_configuration +/// +/// SIM_set_configuration([ +/// ["cpu0", "x86", +/// ["queue", OBJ("cpu0")], +/// ["freq_mhz", 20], +/// ["physical_memory", OBJ("phys_mem0")]], +/// +/// ["phys_mem0", "memory-space", +/// ["map", [[0xa0000, OBJ("vga0"), 1, 0, 0x20000], +/// [0x00000, OBJ("mem0"), 0, 0x00000, 0xA0000], +/// [0xc0000, OBJ("mem0"), 0, 0xc0000, 0x8000], +/// [0xc8000, OBJ("setmem0"), 0, 0, 0x28000], +/// [0xf0000, OBJ("mem0"), 0, 0xf0000, 0x10000], +/// [0x100000, OBJ("mem0"), 0, 0x100000, 0x3ff00000], +/// [0xfee00000, OBJ("apic0"), 0, 0, 0x4000]]]], +/// ... ]) +/// ``` +/// +/// # Context +/// +/// Global Context +pub fn set_configuration(conf: AttrValue) { + unsafe { SIM_set_configuration(conf.into()) } +} + +#[simics_exception] +/// Add a configuration +/// +/// This function creates objects from the parse objects in set and adds the initialized +/// objects to the current configuration (creating one if necessary). When called from +/// Python (which is the intended usage), the configuration set is a sequence (list or +/// tuple) of pre_conf_object Python objects, or a dictionary of the form {name : +/// pre_conf_object}. +/// +/// The file argument is the name of the file that a configuration was read from, and +/// should be set to None/NULL if not used. +/// +/// The following examples are written in Python. As they do not map any devices in +/// phys_mem, they will not work as stand-alone simulations. +/// +/// Example when set is a sequence: +/// +/// ```python,ignore +/// clock = pre_conf_object('timer', 'clock') +/// clock.freq_mhz = 20 +/// space = pre_conf_object('phys_mem', 'memory-space') +/// space.queue = clock +/// +/// SIM_add_configuration([clock, space], None) +/// ``` +/// Example when set is a dictionary: +/// ```python,ignore +/// objects = {} +/// objects['clock'] = pre_conf_object('timer', 'clock') +/// objects['clock'].freq_mhz = 20 +/// objects['space'] = pre_conf_object('phys_mem', 'memory-space') +/// objects['space'].queue = objects['clock'] +/// +/// SIM_add_configuration(objects, None) +/// ``` +/// +/// # Context +/// +/// Global Context +pub fn add_configuration

(object_list: *mut PreConfObjectSet, file: P) -> Result<()> +where + P: AsRef, +{ + unsafe { + SIM_add_configuration( + object_list, + raw_cstr(file.as_ref().to_str().ok_or_else(|| { + anyhow!( + "Could not convert file path {} to string", + file.as_ref().display() + ) + })?)?, + ) + }; + Ok(()) +} + +#[simics_exception] +/// Get the current checkpoint (bundle) directory if called during loading of a checkpoint. +/// May be absolute or relative. +/// +/// # Context +/// +/// Global Context +pub fn current_checkpoint_dir() -> Result { + let res = unsafe { SIM_current_checkpoint_dir() }; + + if res.is_null() { + Err(Error::CurrentCheckpointDir { + message: last_error(), + }) + } else { + let mut dir = unsafe { CStr::from_ptr(res) }.to_str()?; + + if dir.is_empty() { + dir = "."; + } + + Ok(PathBuf::from(dir)) + } +} + +#[simics_exception] +/// Save the current configuration to a file +/// +/// Saves all objects to filename. Objects whose class_kind_t is equal to +/// Sim_Class_Kind_Session or Sim_Class_Kind_Pseudo are not saved. This also holds for +/// attributes (in all objects) of types Sim_Attr_Session and Sim_Attr_Pseudo. +/// +/// The flags argument should be 0. +/// +/// # Context +/// +/// Global Context +pub fn write_configuration_to_file

(file: P, flags: SaveFlags) -> Result<()> +where + P: AsRef, +{ + unsafe { + SIM_write_configuration_to_file( + raw_cstr(file.as_ref().to_str().ok_or_else(|| { + anyhow!( + "Could not convert file path {} to string", + file.as_ref().display() + ) + })?)?, + flags, + ) + }; + Ok(()) +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/control.rs b/modules/tsffs/src/simics/simics/src/api/simulator/control.rs new file mode 100644 index 00000000..a35e42ec --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/control.rs @@ -0,0 +1,175 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Control of the base simulator + +use crate::{ + api::{ + sys::{ + pc_step_t, SIM_break_cycle, SIM_break_message, SIM_break_simulation, SIM_break_step, + SIM_continue, SIM_quit, SIM_shutdown, SIM_simics_is_running, + }, + ConfObject, + }, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; + +pub type PcStep = pc_step_t; + +#[simics_exception] +/// Continue the simulation. +/// +/// Run the simulation. In typical usage with steps being 0, the simulation will run +/// forward until it is stopped, either by a breakpoint, internal event, or through the +/// user interface. +/// +/// With a non-zero steps, Simics will make sure that at least one processor runs steps +/// steps and then stop the simulation. As with steps being 0, the function can also +/// return early if other break criteria are met. +/// +/// In order to properly control when simulation stops in time, it is advisable to use +/// step or cycle breakpoints on one or more objects. +/// +/// The function returns non-zero if the simulation was started, and 0 otherwise. +/// +/// This typically needs to be run in global scope using: +/// +/// ```rust,ignore +/// use simics::api::{continue_simulation, run_alone}; +/// +/// run_alone(|| { continue_simulation(); }); +/// ``` +/// +/// # Arguments +/// +/// * `steps` - Zero to run until stopped, or a number of steps to cintinue for +/// +/// # Context +/// +/// Global Context +pub fn continue_simulation(steps: i64) -> PcStep { + unsafe { SIM_continue(steps) } +} + +#[simics_exception] +/// Check whether SIMICS is currently running +/// +/// Returns true if the simulation is running, e.g. if it has been started using +/// continue_simulation, or false otherwise. It also returns true when the simulation is +/// reversing. +/// +/// # Context +/// +/// Cell Context +pub fn simics_is_running() -> bool { + unsafe { SIM_simics_is_running() } +} + +#[simics_exception] +/// Stop the simulation with a message +/// +/// Ask Simics to stop the simulation as soon as possible, displaying the supplied +/// message. +/// +/// Simics will normally stop before the next instruction is executed. If this function +/// is called when an instruction has started executing, and the instruction can be +/// aborted, it will rewind to before the instruction. This might leave the simulation +/// in a state where some repeatable part of the instruction is already executed. +/// +/// # Context +/// +/// Cell Context +pub fn break_simulation(msg: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_break_simulation(raw_cstr(msg.as_ref())?) }; + Ok(()) +} + +#[simics_exception] +/// Set the message whhen SIMICs next breaks execution +/// +/// Display the reason why Simics will stop simulation. This is similar to +/// break_simulation, with the difference that it doesn't actually break the +/// simulation. It can be used by code that wants to display a break message and stop +/// the simulation by some other means. +/// +/// # Context +/// +/// Cell Context +pub fn break_message(msg: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_break_message(raw_cstr(msg)?) }; + Ok(()) +} + +#[simics_exception] +/// Shutdown simics gracefully without exiting the process. +/// +/// Perform the same clean up as quit, but do not exit the process. After having +/// called this function, no Simics API function can be called. +/// +/// # Context +/// +/// Cell Context +pub fn shutdown() { + unsafe { SIM_shutdown() }; +} + +#[simics_exception] +/// Quit simics and exit with a code +/// +/// Quit Simics in an orderly fashion. The Simics process will return the value +/// exit_code. See the Core_Clean_At_Exit and Core_At_Exit haps for ways to run user +/// code when Simics exits. Callbacks for the Core_Clean_At_Exit hap will only run if +/// quit is called from Global Context, while Core_At_Exit is always called. +/// +/// # Context +/// +/// Cell Context +pub fn quit(exit_code: i32) { + unsafe { + SIM_quit(exit_code); + } +} + +#[simics_exception] +/// Insert a breakpoint event at cycles clock cycles from now, causing simulation to +/// stop when reached by obj. +/// +/// # Arguments +/// +/// * `obj` - The object whose cycles will be monitored to break on +/// * `cycles` - The number of cycles until the break occurs +/// +/// # Context +/// +/// _Cell Context_ +pub fn break_cycle(obj: *mut ConfObject, cycles: i64) { + unsafe { SIM_break_cycle(obj, cycles) }; +} + +#[simics_exception] +/// Sets a step breakpoint on a processor. +/// +/// # Arguments +/// +/// * `obj` - The object whose steps will be monitored to break on +/// * `steps` - The number of instructions until the break occurs +/// +/// # Exceptions +/// +/// * [`SimException::SimExc_InterfaceNotFound`] - Thrown if the obj object doesn't implement the step +/// interface. +/// +/// # Context +/// +/// _Cell Context_ +pub fn break_step(obj: *mut ConfObject, steps: i64) { + unsafe { SIM_break_step(obj, steps) }; +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/debugger.rs b/modules/tsffs/src/simics/simics/src/api/simulator/debugger.rs new file mode 100644 index 00000000..496761af --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/debugger.rs @@ -0,0 +1,10 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::api::{sys::SIM_get_debugger, ConfObject}; +use simics_macro::simics_exception; + +#[simics_exception] +pub fn get_debugger() -> *mut ConfObject { + unsafe { SIM_get_debugger() } +} diff --git a/simics-api/src/safe/simulator/embed.rs b/modules/tsffs/src/simics/simics/src/api/simulator/embed.rs similarity index 81% rename from simics-api/src/safe/simulator/embed.rs rename to modules/tsffs/src/simics/simics/src/api/simulator/embed.rs index a53148b0..6178f353 100644 --- a/simics-api/src/safe/simulator/embed.rs +++ b/modules/tsffs/src/simics/simics/src/api/simulator/embed.rs @@ -1,47 +1,40 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -use anyhow::Result; +//! Functionality for embedding SIMICS into a program or library. These functions are useful for +//! creating alternate SIMICS frontends + +use crate::{ + api::sys::{ + cpu_variant_t, gui_mode_t, init_arg_t, init_arg_t__bindgen_ty_1, SIM_init_command_line, + SIM_init_environment, SIM_init_simulator2, SIM_main_loop, + }, + Result, +}; use clap::ValueEnum; use paste::paste; use raw_cstr::raw_cstr; -use simics_api_sys::{ - cpu_variant_t_Cpu_Any, cpu_variant_t_Cpu_Fast, cpu_variant_t_Cpu_None, cpu_variant_t_Cpu_Stall, - gui_mode_t_GUI_Mode_Default, gui_mode_t_GUI_Mode_Mixed, gui_mode_t_GUI_Mode_None, - gui_mode_t_GUI_Mode_Only, init_arg_t, init_arg_t__bindgen_ty_1, SIM_init_command_line, - SIM_init_environment, SIM_init_simulator2, SIM_main_loop, -}; +use simics_macro::simics_exception; use std::{mem::forget, ptr::null}; -#[derive(Copy, Clone, Debug, ValueEnum)] -#[repr(u32)] -pub enum GuiMode { - None = gui_mode_t_GUI_Mode_None, - Mixed = gui_mode_t_GUI_Mode_Mixed, - Only = gui_mode_t_GUI_Mode_Only, - Default = gui_mode_t_GUI_Mode_Default, -} +#[derive(Debug, Clone)] +pub struct GuiMode(gui_mode_t); + +#[derive(Debug, Clone)] +pub struct CpuVariant(cpu_variant_t); impl ToString for GuiMode { fn to_string(&self) -> String { - match self { - GuiMode::None => "no-gui", - GuiMode::Mixed => "mixed", - GuiMode::Only => "gui", - GuiMode::Default => "default", + match self.0 { + gui_mode_t::GUI_Mode_None => "no-gui", + gui_mode_t::GUI_Mode_Mixed => "mixed", + gui_mode_t::GUI_Mode_Only => "gui", + gui_mode_t::GUI_Mode_Default => "default", } .to_string() } } -#[repr(u32)] -pub enum CpuVariant { - None = cpu_variant_t_Cpu_None, - Any = cpu_variant_t_Cpu_Any, - Fast = cpu_variant_t_Cpu_Fast, - Stall = cpu_variant_t_Cpu_Stall, -} - #[derive(Copy, Clone, Debug, ValueEnum)] #[repr(u32)] /// Level of warning that will be printed when deprecated APIs are used @@ -189,6 +182,8 @@ impl InitArgs { } } +#[simics_exception] +/// Initialize the environment (for SIMICS frontends) pub fn init_environment(argv: I, handle_signals: bool, allow_core_dumps: bool) -> Result<()> where I: IntoIterator, @@ -209,14 +204,21 @@ where Ok(()) } +#[simics_exception] +/// Initialize the simulator with arguments. pub fn init_simulator(args: &mut InitArgs) { unsafe { SIM_init_simulator2(args.as_mut_ptr()) }; } +#[simics_exception] +/// Initialize the SIMICS command line. [`main_loop`] needs to be called next otherwise the +/// command line will exit immediately. pub fn init_command_line() { unsafe { SIM_init_command_line() }; } +/// Pass control to SIMICS and block until SIMICS exits. This is typically called after +/// [`init_command_line`]. pub fn main_loop() -> ! { unsafe { SIM_main_loop() }; unreachable!("Something went wrong initializing the SIMICS main loop") diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/hap_consumer.rs b/modules/tsffs/src/simics/simics/src/api/simulator/hap_consumer.rs new file mode 100644 index 00000000..5d14e508 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/hap_consumer.rs @@ -0,0 +1,111 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! HAP APIs and HAP definitions + +#![allow(clippy::unused_unit)] +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use crate::{ + api::{ + sys::{ + hap_handle_t, hap_type_t, SIM_get_all_hap_types, SIM_hap_add_type, SIM_hap_get_name, + SIM_hap_get_number, SIM_hap_is_active, SIM_hap_is_active_obj, + SIM_hap_is_active_obj_idx, SIM_hap_occurred_always, SIM_hap_remove_type, + }, + AttrValue, ConfObject, + }, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::{ffi::CStr, ptr::null_mut}; + +pub use self::haps::*; + +pub type HapHandle = hap_handle_t; +pub type HapType = hap_type_t; + +#[simics_exception] +/// Return an attribute list of all hap types. +pub fn get_all_hap_types() -> AttrValue { + unsafe { SIM_get_all_hap_types() }.into() +} + +#[simics_exception] +/// Add a new hap type +pub fn hap_add_type(hap: S, params: S, param_desc: S, index: S, desc: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { + SIM_hap_add_type( + raw_cstr(hap)?, + raw_cstr(params)?, + raw_cstr(param_desc)?, + raw_cstr(index)?, + raw_cstr(desc)?, + 0, + ) + }) +} + +#[simics_exception] +/// Get the name from a hap number +pub fn hap_get_name(hap: HapType) -> Result { + Ok(unsafe { CStr::from_ptr(SIM_hap_get_name(hap)) } + .to_str()? + .to_string()) +} + +#[simics_exception] +/// Get the number from a hap name +pub fn hap_get_number(hap: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_hap_get_number(raw_cstr(hap)?) }) +} + +#[simics_exception] +/// Check if a hap is active (i.e. it has 1 or more registered handlers) +pub fn hap_is_active(hap: HapType) -> bool { + unsafe { SIM_hap_is_active(hap) } +} + +#[simics_exception] +/// Check if a hap is active for a given object +pub fn hap_is_active_obj(hap: HapType, obj: *mut ConfObject) -> bool { + unsafe { SIM_hap_is_active_obj(hap, obj) } +} + +#[simics_exception] +/// check if a hap is active for a given object and index +pub fn hap_is_active_obj_idx(hap: HapType, obj: *mut ConfObject, index: i64) -> bool { + unsafe { SIM_hap_is_active_obj_idx(hap, obj, index) } +} + +#[simics_exception] +/// Trigger a hap occurrence +pub fn hap_occurred_always( + hap: HapType, + obj: Option<*mut ConfObject>, + value: i64, + list: &mut AttrValue, +) -> i32 { + unsafe { SIM_hap_occurred_always(hap, obj.unwrap_or(null_mut()), value, list.as_mut_ptr()) } +} + +#[simics_exception] +/// Remove a custom hap type registered with [`hap_add_type`] +pub fn hap_remove_type(hap: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_hap_remove_type(raw_cstr(hap)?) }; + Ok(()) +} + +// NOTE: recommended to only use the always version + +include!(concat!(env!("OUT_DIR"), "/haps.rs")); diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/host_profiling.rs b/modules/tsffs/src/simics/simics/src/api/simulator/host_profiling.rs new file mode 100644 index 00000000..82b92a29 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/host_profiling.rs @@ -0,0 +1,28 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Host machine profiling APIs + +use crate::{ + api::sys::{profile_area_t, SIM_add_profiling_area, SIM_remove_profiling_area}, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; + +pub type ProfileArea = profile_area_t; + +#[simics_exception] +/// Add an address space area for profiling +pub fn add_profiling_area(name: S, start: usize, end: usize) -> Result<*mut ProfileArea> +where + S: AsRef, +{ + Ok(unsafe { SIM_add_profiling_area(raw_cstr(name)?, start, end) }) +} + +#[simics_exception] +/// Remove an area set for profiling +pub fn remove_profiling_area(handle: *mut ProfileArea) { + unsafe { SIM_remove_profiling_area(handle) } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/memory.rs b/modules/tsffs/src/simics/simics/src/api/simulator/memory.rs new file mode 100644 index 00000000..4a2b262e --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/memory.rs @@ -0,0 +1,135 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Memory access APIs + +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use crate::api::{ConfObject, PhysicalAddress}; +use crate::{ + api::sys::{ + SIM_load_binary, SIM_load_file, SIM_read_byte, SIM_read_phys_memory, + SIM_read_phys_memory_tags, SIM_write_byte, SIM_write_phys_memory, + SIM_write_phys_memory_tags, + }, + Error, Result, +}; +use anyhow::anyhow; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::path::Path; + +#[simics_exception] +/// Read physical memory at a physical address with a given length. Length must be less than or +/// equal to 8 bytes +pub fn read_phys_memory(cpu: *mut ConfObject, paddr: PhysicalAddress, length: i32) -> u64 { + unsafe { SIM_read_phys_memory(cpu, paddr, length) } +} + +#[simics_exception] +/// Write bytes to physical memory. `value` must be less than or equal to 8 bytes in length. +/// Bytes are written in little-endian format. +pub fn write_phys_memory(cpu: *mut ConfObject, paddr: PhysicalAddress, value: &[u8]) -> Result<()> { + let mut value_buffer = [0u8; 8]; + if value.len() > value_buffer.len() { + return Err(Error::ValueTooLarge { + expected: value_buffer.len(), + actual: value.len(), + }); + } + value_buffer[0..value.len()].copy_from_slice(value); + let length = value.len() as i32; + let value = u64::from_le_bytes(value_buffer); + unsafe { SIM_write_phys_memory(cpu, paddr, value, length) }; + Ok(()) +} + +#[simics_exception] +/// Read a byte from a physical address +pub fn read_byte(physical_memory: *mut ConfObject, physical_addr: u64) -> u8 { + unsafe { SIM_read_byte(physical_memory, physical_addr) } +} + +#[simics_exception] +/// Write a byte to a physical address +pub fn write_byte(physical_memory: *mut ConfObject, physical_addr: u64, byte: u8) { + unsafe { SIM_write_byte(physical_memory, physical_addr, byte) }; +} + +#[simics_exception] +/// Retrieve physical memory tags from memory supporting physical tags, such as CHERI supported +/// memory. +pub fn read_phys_memory_tags( + mem_space: *mut ConfObject, + paddr: PhysicalAddress, + ntags: u32, +) -> u64 { + unsafe { SIM_read_phys_memory_tags(mem_space, paddr, ntags) } +} + +#[simics_exception] +/// Set physical memory tags from memory supporting physical tags, such as CHERI supported +/// memory. +pub fn write_phys_memory_tags( + mem_space: *mut ConfObject, + paddr: PhysicalAddress, + tag_bits: u64, + ntags: u32, +) { + unsafe { SIM_write_phys_memory_tags(mem_space, paddr, tag_bits, ntags) } +} + +#[simics_exception] +/// Load a binary file into the address space +pub fn load_binary

( + obj: *mut ConfObject, + file: P, + offset: PhysicalAddress, + use_pa: bool, + verbose: bool, +) -> Result +where + P: AsRef, +{ + Ok(unsafe { + SIM_load_binary( + obj, + raw_cstr(file.as_ref().to_str().ok_or_else(|| { + anyhow!( + "Could not convert file name {} to string", + file.as_ref().display() + ) + })?)?, + offset, + use_pa, + verbose, + ) + }) +} + +#[simics_exception] +/// Load a (not necessarily binary) file into the physical address space +pub fn load_file

( + obj: *mut ConfObject, + file: P, + paddr: PhysicalAddress, + verbose: bool, +) -> Result<()> +where + P: AsRef, +{ + unsafe { + SIM_load_file( + obj, + raw_cstr(file.as_ref().to_str().ok_or_else(|| { + anyhow!( + "Could not convert file name {} to string", + file.as_ref().display() + ) + })?)?, + paddr, + verbose, + ) + }; + Ok(()) +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/mod.rs b/modules/tsffs/src/simics/simics/src/api/simulator/mod.rs new file mode 100644 index 00000000..d90c2c7c --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/mod.rs @@ -0,0 +1,47 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS simulator APIs for programming the simulator from a module or frontend + +pub mod breakpoints; +pub mod callbacks; +pub mod configuration; +pub mod control; +pub mod debugger; +pub mod embed; +pub mod hap_consumer; +pub mod host_profiling; +pub mod memory; +pub mod modules; +pub mod paths; +pub mod processor; +pub mod python; +pub mod rev_exec; +pub mod script; +pub mod sim_caches; +pub mod sim_conf_object; +pub mod sim_get_class; +#[cfg(simics_experimental_api_snapshots)] +pub mod snapshots; + +pub use breakpoints::*; +pub use callbacks::*; +pub use configuration::*; +pub use control::*; +pub use debugger::*; +pub use embed::*; +pub use hap_consumer::*; +pub use host_profiling::*; +pub use memory::*; +pub use modules::*; +pub use paths::*; +pub use processor::*; +pub use python::*; +pub use rev_exec::*; +pub use script::*; +pub use sim_caches::*; +pub use sim_conf_object::*; +pub use sim_get_class::*; + +#[cfg(simics_experimental_api_snapshots)] +pub use snapshots::*; diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/modules.rs b/modules/tsffs/src/simics/simics/src/api/simulator/modules.rs new file mode 100644 index 00000000..4f034a1e --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/modules.rs @@ -0,0 +1,65 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + api::{ + sys::{ + SIM_add_module_dir, SIM_get_all_failed_modules, SIM_get_all_modules, SIM_load_module, + SIM_module_list_refresh, + }, + AttrValue, + }, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::path::Path; + +#[simics_exception] +/// The list returned contains information about all modules that can be loaded into Simics. Each list entry is another list with module specific information. The layout of this sub-list is described below. The list may grow in future Simics version, but the currently defined fields will not change. +/// name - Module name (string). +/// path - File system path to the module (string). +/// loaded - Flag indicating that the module is already loaded (boolean). +/// version - Oldest Simics ABI version that the module was built for (integer). +/// user version - User version of the module (string). +/// build-id - Simics build-id that indicates in which Simics build this module was created (integer). +/// build-date - Build date of the module, in seconds (integer). +/// classes - Classes this module claims to implement. +/// thread-safe - If the module is thread-safe. +/// components - Components this module claims to implement. +/// user path - Module was loaded from path provided by user. +pub fn get_all_modules() -> AttrValue { + unsafe { SIM_get_all_modules() }.into() +} + +#[simics_exception] +/// Get the list of modules that failed to initialize +pub fn get_all_failed_modules() -> AttrValue { + unsafe { SIM_get_all_failed_modules() }.into() +} + +#[simics_exception] +/// Add a directory to the simulator to search for modules when running `load_module("name")`. +pub fn add_module_dir

(path: P) -> Result<()> +where + P: AsRef, +{ + unsafe { SIM_add_module_dir(raw_cstr(path.as_ref().to_string_lossy())?) } + Ok(()) +} + +#[simics_exception] +/// Refresh the module list +pub fn module_list_refresh() { + unsafe { SIM_module_list_refresh() }; +} + +#[simics_exception] +/// Load a module into the simulator +pub fn load_module(module: S) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_load_module(raw_cstr(module)?) } + Ok(()) +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/paths.rs b/modules/tsffs/src/simics/simics/src/api/simulator/paths.rs new file mode 100644 index 00000000..29a1ebae --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/paths.rs @@ -0,0 +1,80 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + api::{ + sys::{SIM_add_directory, SIM_clear_directories, SIM_get_directories, SIM_lookup_file}, + AttrValue, + }, + Result, +}; +use anyhow::anyhow; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::{ + ffi::CStr, + path::{Path, PathBuf}, +}; + +#[simics_exception] +/// - If file exists and is an absolute path, it is converted to host native form and +/// returned. +/// - If file starts with %simics%, the rest of the path is looked up first in the +/// current Simics project, and then in all configured Simics packages. If a match is +/// found, the native form of the file found will be returned. +/// - If file exists in or relative to the current directory, it is returned without +/// using the Simics search path. This is more or less equivalent of always having "." +/// first in the search path. +/// - For each directory in Simics search path: The directory and the file is +/// concatenated and converted to host native format. Each such file is looked up first +/// in the current Simics project, and then in all Simics packages. If a match is found, +/// the native form of the file found will be returned. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::api::lookup_file; +/// +/// lookup_file("%simics%/target/Software.efi")?; +/// ``` +pub fn lookup_file(file: S) -> Result +where + S: AsRef, +{ + Ok(PathBuf::from( + unsafe { CStr::from_ptr(SIM_lookup_file(raw_cstr(file)?)) }.to_str()?, + )) +} + +#[simics_exception] +/// Add a directory to the SIMICS search path +pub fn add_directory

(directory: P, prepend: bool) -> Result<()> +where + P: AsRef, +{ + unsafe { + SIM_add_directory( + raw_cstr( + directory + .as_ref() + .to_str() + .ok_or_else(|| anyhow!("Could not convert directory path to string"))?, + )?, + prepend, + ); + } + + Ok(()) +} + +#[simics_exception] +/// Clear extra search directories +pub fn clear_directories() { + unsafe { SIM_clear_directories() }; +} + +#[simics_exception] +/// Get the list of extra search directories +pub fn get_directories() -> AttrValue { + unsafe { SIM_get_directories() }.into() +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/processor.rs b/modules/tsffs/src/simics/simics/src/api/simulator/processor.rs new file mode 100644 index 00000000..dc799090 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/processor.rs @@ -0,0 +1,74 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use simics_macro::simics_exception; + +use crate::api::{ + sys::{ + tuple_int_string_t, SIM_current_clock, SIM_disassemble_address, SIM_get_all_processors, + SIM_get_processor, SIM_get_processor_number, SIM_number_processors, + SIM_object_is_processor, SIM_processor_privilege_level, SIM_reset_processor, + }, + AttrValue, ConfObject, GenericAddress, +}; + +pub type TupleIntString = tuple_int_string_t; + +#[simics_exception] +/// Check if an object is a processor +pub fn object_is_processor(obj: *mut ConfObject) -> bool { + unsafe { SIM_object_is_processor(obj) } +} + +#[simics_exception] +/// Get the number of processors in the simulation +pub fn number_processors() -> i32 { + unsafe { SIM_number_processors() } +} + +#[simics_exception] +/// Reset (hard or soft) a processor +pub fn reset_processor(cpu: *mut ConfObject, hard_reset: i32) { + unsafe { SIM_reset_processor(cpu, hard_reset) } +} + +#[simics_exception] +/// Get the list of all processors in the simulation +pub fn get_all_processors() -> AttrValue { + unsafe { SIM_get_all_processors() }.into() +} + +#[simics_exception] +/// Get the processor from its number +pub fn get_processor(number: i32) -> *mut ConfObject { + unsafe { SIM_get_processor(number) } +} + +#[simics_exception] +/// Get the number of a particular processor +pub fn get_processor_number(cpu: *mut ConfObject) -> i32 { + unsafe { SIM_get_processor_number(cpu as *const ConfObject) } +} + +#[simics_exception] +/// Get the processor's current privilege level +pub fn processor_privilege_level(cpu: *mut ConfObject) -> i32 { + unsafe { SIM_processor_privilege_level(cpu) } +} + +#[simics_exception] +/// Disassemble an address to a size and string +pub fn disassemble_address( + cpu: *mut ConfObject, + address: GenericAddress, + logical: i32, + sub: i32, +) -> TupleIntString { + unsafe { SIM_disassemble_address(cpu, address, logical, sub) } +} + +#[simics_exception] +/// Get the current active clock +pub fn current_clock() -> *mut ConfObject { + unsafe { SIM_current_clock() } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/python.rs b/modules/tsffs/src/simics/simics/src/api/simulator/python.rs new file mode 100644 index 00000000..c7646dbd --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/python.rs @@ -0,0 +1,118 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Direct Python interface + +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use crate::{ + api::{ + sys::{ + SIM_call_python_function, SIM_run_python, SIM_source_python, + VT_call_python_module_function, + }, + AttrValue, + }, + Error, Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::{any::type_name, path::Path}; + +#[simics_exception] +/// Source a python file of SIMICS python code +pub fn source_python

(file: P) -> Result<()> +where + P: AsRef, +{ + unsafe { + SIM_source_python(raw_cstr( + file.as_ref().to_str().ok_or_else(|| Error::ToString)?, + )?) + }; + Ok(()) +} + +#[simics_exception] +/// Run (by eval-ing) python code in the simulator context. The result is returned as an +/// `AttrValue`, which is typed according to the python command run. +pub fn run_python(line: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_run_python(raw_cstr(line)?) }.into()) +} + +#[simics_exception] +/// Call a python function with a set of arguments. The arguments must be +/// convertible to `AttrValue`. +/// +/// # Examples +/// +/// We can run python code like so: +/// +/// ```rust,ignore +/// let res = call_python_function("print", ["a", "b", "c"])?; +/// ``` +pub fn call_python_function(function: S, args: I) -> Result +where + S: AsRef, + I: IntoIterator, + T: TryInto, +{ + let args: Vec = args + .into_iter() + .map(|a| { + a.try_into().map_err(|_| Error::ToAttrValueConversionError { + ty: type_name::().to_string(), + }) + }) + .collect::>>()?; + let args: AttrValue = args.try_into()?; + let mut args = args.into(); + Ok(unsafe { SIM_call_python_function(raw_cstr(function)?, &mut args as *mut _) }.into()) +} + +#[simics_exception] +/// Call a python function with a set of arguments. The arguments must be +/// convertible to `AttrValue`. +/// +/// # Examples +/// +/// We can run python code like so. If you need to pass a heterogeneous list of +/// arguments, you need to convert them to `AttrValue`s before passing them to this +/// function because we cannot create a heterogeneous `Vec`. For homogeneous lists of +/// arguments, they can be passed directly as in `call_python_function`. +/// +/// ```rust,ignore +/// let level: AttrValue = 1i32.into(); +/// let sim: AttrValue = get_object("sim")?.into()?; +/// let group: AttrValue = 0i32.into(); +/// let message: AttrValue = "Hello".into(); +/// let res = call_python_module_function("simics", "SIM_log_info" [level, sim, group, message])?; +/// ``` +pub fn call_python_module_function(module: S, function: S, args: I) -> Result +where + S: AsRef, + I: IntoIterator, + T: TryInto, +{ + let args: Vec = args + .into_iter() + .map(|a| { + a.try_into().map_err(|_| Error::ToAttrValueConversionError { + ty: type_name::().to_string(), + }) + }) + .collect::>>()?; + let args: AttrValue = args.try_into()?; + let mut args = args.into(); + Ok(unsafe { + VT_call_python_module_function( + raw_cstr(module.as_ref())?, + raw_cstr(function.as_ref())?, + &mut args as *mut _, + ) + } + .into()) +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/rev_exec.rs b/modules/tsffs/src/simics/simics/src/api/simulator/rev_exec.rs new file mode 100644 index 00000000..e8e86d7c --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/rev_exec.rs @@ -0,0 +1,139 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Implements simulator reverse execution and micro checkpointing functions + +use crate::{ + api::{ + control::PcStep, + sys::{ + micro_checkpoint_flags_t, revexec_pos_t, VT_delete_micro_checkpoint, + VT_get_rewind_overhead, VT_in_the_past, VT_restore_micro_checkpoint, VT_reverse, + VT_reverse_cpu, VT_revexec_active, VT_revexec_available, VT_revexec_barrier, + VT_revexec_cycles, VT_revexec_ignore_class, VT_revexec_steps, VT_rewind, + VT_save_micro_checkpoint, VT_skipto_bookmark, VT_skipto_cycle, VT_skipto_step, + }, + ConfObject, Cycles, + }, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; + +pub type MicroCheckpointFlags = micro_checkpoint_flags_t; +pub type RevExecPos = revexec_pos_t; + +#[simics_exception] +/// Check whether reverse execution is available +pub fn revexec_available() -> bool { + unsafe { VT_revexec_available() } +} + +#[simics_exception] +/// Check whether reverse execution is active +pub fn revexec_active() -> bool { + unsafe { VT_revexec_active() } +} + +#[simics_exception] +/// Check whether the simulation is currently in the past (i.e. because we are reversed to a +/// bookmark currently) +pub fn in_the_past() -> bool { + unsafe { VT_in_the_past() } +} + +#[simics_exception] +/// Reverse execution by a certain number of steps +pub fn revexec_steps(cpu: *mut ConfObject, where_: RevExecPos) -> PcStep { + unsafe { VT_revexec_steps(cpu, where_) } +} + +#[simics_exception] +/// Reverse execution by a certain number of cycles +pub fn revexec_cycles(cpu: *mut ConfObject, where_: RevExecPos) -> Cycles { + unsafe { VT_revexec_cycles(cpu, where_) } +} + +#[simics_exception] +/// Get the overhead of rewinding +pub fn get_rewind_overhead(cpu: *mut ConfObject, abscount: PcStep) -> PcStep { + unsafe { VT_get_rewind_overhead(cpu, abscount) } +} + +#[simics_exception] +/// Reverse by a number of steps +pub fn reverse(count: PcStep) -> i32 { + unsafe { VT_reverse(count) } +} + +#[simics_exception] +/// Reverse a single CPU by a certain number of steps +pub fn reverse_cpu(clock: *mut ConfObject, count: PcStep) -> i32 { + unsafe { VT_reverse_cpu(clock, count) } +} + +#[simics_exception] +/// Skip forward or backward to a certain step count +pub fn skipto_step(clock: *mut ConfObject, count: PcStep) -> i32 { + unsafe { VT_skipto_step(clock, count) } +} + +#[simics_exception] +/// Skip forward or backward to a certain cycle count +pub fn skipto_cycle(clock: *mut ConfObject, count: Cycles) -> i32 { + unsafe { VT_skipto_cycle(clock, count) } +} + +#[simics_exception] +/// Skip forward or backward to a book mark +pub fn skipto_bookmark(name: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { VT_skipto_bookmark(raw_cstr(name)?) }) +} + +#[simics_exception] +/// Rewind by an absolute number of steps +pub fn rewind(cpu: *mut ConfObject, abscount: PcStep) -> i32 { + unsafe { VT_rewind(cpu, abscount) } +} + +#[simics_exception] +/// Save a micro checkpoint with some set of flags +pub fn save_micro_checkpoint(name: S, flags: MicroCheckpointFlags) -> Result<()> +where + S: AsRef, +{ + unsafe { VT_save_micro_checkpoint(raw_cstr(name)?, flags) }; + + Ok(()) +} + +#[simics_exception] +/// Delete a micro checkpoint with a given index +pub fn delete_micro_checkpoint(index: i32) { + unsafe { VT_delete_micro_checkpoint(index) } +} + +#[simics_exception] +/// Restore a micro checkpoint, loading it as a snapshot +pub fn restore_micro_checkpoint(index: i32) { + unsafe { VT_restore_micro_checkpoint(index) } +} + +#[simics_exception] +/// Set reverse execution to ignore a certain class +pub fn revexec_ignore_class(class_name: S) -> Result<()> +where + S: AsRef, +{ + unsafe { VT_revexec_ignore_class(raw_cstr(class_name)?) }; + Ok(()) +} + +#[simics_exception] +/// Set a barrier to prevent rewinding past the current point in the simulation +pub fn revexec_barrier() { + unsafe { VT_revexec_barrier() } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/script.rs b/modules/tsffs/src/simics/simics/src/api/simulator/script.rs new file mode 100644 index 00000000..367e45fa --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/script.rs @@ -0,0 +1,90 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + api::{ + sys::{ + SIM_get_batch_mode, SIM_load_target, SIM_run_command, SIM_run_command_file, + SIM_run_command_file_params, + }, + AttrValue, + }, + Error, Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; +use std::any::type_name; + +#[simics_exception] +/// Run a SIMICS CLI command +pub fn run_command(line: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_run_command(raw_cstr(line)?) }.into()) +} + +#[simics_exception] +/// Run a SIMICS CLI command file +pub fn run_command_file(file: S, local: bool) -> Result<()> +where + S: AsRef, +{ + unsafe { SIM_run_command_file(raw_cstr(file)?, local) }; + Ok(()) +} + +#[simics_exception] +/// Run a SIMICS cli command file with a list of parameters. Parameters are key-value pairs. +pub fn run_command_file_params(file: S, local: bool, params: I) -> Result<()> +where + S: AsRef, + I: IntoIterator, + T: TryInto, +{ + let params: Vec = params + .into_iter() + .map(|a| { + a.1.try_into() + .map_err(|_| Error::ToAttrValueConversionError { + ty: type_name::().to_string(), + }) + .and_then(|v| { + [a.0.as_ref().into(), v] + .into_iter() + .collect::>() + .try_into() + .map_err(|_| Error::ToAttrValueConversionError { + ty: type_name::().to_string(), + }) + }) + }) + .collect::>>()?; + let params: AttrValue = params.try_into()?; + let params = params.into(); + unsafe { SIM_run_command_file_params(raw_cstr(file)?, local, params) }; + Ok(()) +} + +#[simics_exception] +/// Load a target +pub fn load_target(target: S, ns: S, presets: AttrValue, cmdline_args: AttrValue) -> Result<()> +where + S: AsRef, +{ + unsafe { + SIM_load_target( + raw_cstr(target)?, + raw_cstr(ns)?, + presets.into(), + cmdline_args.into(), + ) + }; + Ok(()) +} + +#[simics_exception] +/// Check whether running in batch mode +pub fn get_batch_mode() -> bool { + unsafe { SIM_get_batch_mode() } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/sim_caches.rs b/modules/tsffs/src/simics/simics/src/api/simulator/sim_caches.rs new file mode 100644 index 00000000..8169aae4 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/sim_caches.rs @@ -0,0 +1,21 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use simics_macro::simics_exception; + +use crate::api::{ + sys::{SIM_flush_all_caches, SIM_flush_cell_caches}, + ConfObject, +}; + +#[simics_exception] +/// Flush all global and local caches +pub fn flush_all_caches() { + unsafe { SIM_flush_all_caches() } +} + +#[simics_exception] +/// Flush caches for an object's cell +pub fn flush_cell_caches(obj: *mut ConfObject) { + unsafe { SIM_flush_cell_caches(obj) } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/sim_conf_object.rs b/modules/tsffs/src/simics/simics/src/api/simulator/sim_conf_object.rs new file mode 100644 index 00000000..4bf3cf04 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/sim_conf_object.rs @@ -0,0 +1,208 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + api::{ + last_error, + sys::{ + SIM_class_has_attribute, SIM_class_port, SIM_create_object, SIM_delete_object, + SIM_delete_objects, SIM_get_all_classes, SIM_get_all_objects, SIM_get_attribute, + SIM_get_attribute_attributes, SIM_get_attribute_idx, SIM_get_class_attribute, + SIM_get_class_attribute_idx, SIM_get_object, SIM_set_attribute, + SIM_set_attribute_default, SIM_set_attribute_idx, SIM_set_class_attribute, + SIM_set_class_attribute_idx, + }, + AttrAttr, AttrValue, ConfClass, ConfObject, SetErr, + }, + Error, Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; + +#[simics_exception] +/// Get the flags of an attribute in a class +pub fn get_attribute_attributes(cls: *mut ConfClass, attr: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_get_attribute_attributes(cls, raw_cstr(attr)?) }) +} + +#[simics_exception] +/// Check if a class implements an attribute +pub fn class_has_attribute(cls: *mut ConfClass, attr: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_class_has_attribute(cls, raw_cstr(attr.as_ref())?) }) +} + +#[simics_exception] +/// Get a port for a class +pub fn class_port(cls: *mut ConfClass, portname: S) -> Result<*mut ConfClass> +where + S: AsRef, +{ + Ok(unsafe { SIM_class_port(cls, raw_cstr(portname)?) }) +} + +#[simics_exception] +/// Get an existing instance object by name +pub fn get_object(name: S) -> Result<*mut ConfObject> +where + S: AsRef, +{ + let obj = unsafe { SIM_get_object(raw_cstr(name.as_ref())?) }; + + if obj.is_null() { + Err(Error::ObjectNotFound { + name: name.as_ref().to_string(), + }) + } else { + Ok(obj) + } +} + +#[simics_exception] +/// Delete the object or throw an exception if unsuccessful +pub fn delete_object(obj: *mut ConfObject) { + unsafe { SIM_delete_object(obj) }; +} + +#[simics_exception] +/// Delete the objects in the list or throw an exception if unsuccessful +pub fn delete_objects(val: AttrValue) { + unsafe { SIM_delete_objects(val.into()) }; +} + +#[simics_exception] +/// Get the attribute of a given name from an object +pub fn get_attribute(obj: *mut ConfObject, name: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_get_attribute(obj, raw_cstr(name)?) }.into()) +} + +#[simics_exception] +/// Get an index of an attribute of a given name from an object +pub fn get_attribute_idx( + obj: *mut ConfObject, + name: S, + index: &mut AttrValue, +) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_get_attribute_idx(obj, raw_cstr(name)?, index.as_mut_ptr()) }.into()) +} + +#[simics_exception] +/// Get the attribute of a given name from a class +pub fn get_class_attribute(obj: *mut ConfClass, name: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_get_class_attribute(obj, raw_cstr(name)?) }.into()) +} + +#[simics_exception] +/// Get an index of an attribute of a given name from a class +pub fn get_class_attribute_idx( + obj: *mut ConfClass, + name: S, + index: &mut AttrValue, +) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_get_class_attribute_idx(obj, raw_cstr(name)?, index.as_mut_ptr()) }.into()) +} + +#[simics_exception] +/// Set an attribute value on an object +pub fn set_attribute(obj: *mut ConfObject, name: S, value: &mut AttrValue) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_set_attribute(obj, raw_cstr(name)?, value.as_mut_ptr()) }) +} + +#[simics_exception] +/// Set an attribute value at an index on an object +pub fn set_attribute_idx( + obj: *mut ConfObject, + name: S, + index: &mut AttrValue, + value: &mut AttrValue, +) -> Result +where + S: AsRef, +{ + Ok(unsafe { + SIM_set_attribute_idx(obj, raw_cstr(name)?, index.as_mut_ptr(), value.as_mut_ptr()) + }) +} + +#[simics_exception] +/// Set the default value of an attribute on an object +pub fn set_attribute_default(obj: *mut ConfObject, name: S, value: AttrValue) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_set_attribute_default(obj, raw_cstr(name)?, value.into()) }) +} + +#[simics_exception] +/// Set the default value of an attribute on a class +pub fn set_class_attribute(cls: *mut ConfClass, name: S, value: &mut AttrValue) -> Result +where + S: AsRef, +{ + Ok(unsafe { SIM_set_class_attribute(cls, raw_cstr(name)?, value.as_mut_ptr()) }) +} + +#[simics_exception] +/// Set the default value of an attribute on a class with an index +pub fn set_class_attribute_idx( + cls: *mut ConfClass, + name: S, + index: &mut AttrValue, + value: &mut AttrValue, +) -> Result +where + S: AsRef, +{ + Ok(unsafe { + SIM_set_class_attribute_idx(cls, raw_cstr(name)?, index.as_mut_ptr(), value.as_mut_ptr()) + }) +} + +#[simics_exception] +/// Get an unordered list of all conf classes in the simulator +pub fn get_all_classes() -> AttrValue { + unsafe { SIM_get_all_classes() }.into() +} + +#[simics_exception] +/// Get an unordered list of all conf objects in the simulator +pub fn get_all_objects() -> AttrValue { + unsafe { SIM_get_all_objects() }.into() +} + +#[simics_exception] +/// Create a new instance of a configuration class +pub fn create_object(cls: *mut ConfClass, name: S, attrs: AttrValue) -> Result<*mut ConfObject> +where + S: AsRef, +{ + let obj = unsafe { SIM_create_object(cls, raw_cstr(name)?, attrs.into()) }; + + if obj.is_null() { + Err(Error::CreateObject { + message: last_error(), + }) + } else { + Ok(obj) + } +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/sim_get_class.rs b/modules/tsffs/src/simics/simics/src/api/simulator/sim_get_class.rs new file mode 100644 index 00000000..ba52b7a2 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/sim_get_class.rs @@ -0,0 +1,24 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + api::{sys::SIM_get_class, ConfClass}, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; + +#[simics_exception] +/// Get a class by name +/// +/// # Performance +/// +/// * `SIM_get_class` - Performs a hashtable lookup of `name`. Loads the module containing +/// the class named `name` if it is not loaded. This can be expensive once, but is cheap +/// every time thereafter. +pub fn get_class(name: S) -> Result<*mut ConfClass> +where + S: AsRef, +{ + Ok(unsafe { SIM_get_class(raw_cstr(name)?) }) +} diff --git a/modules/tsffs/src/simics/simics/src/api/simulator/snapshots.rs b/modules/tsffs/src/simics/simics/src/api/simulator/snapshots.rs new file mode 100644 index 00000000..218e809e --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/simulator/snapshots.rs @@ -0,0 +1,66 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Experimental snapshot APIs + +use crate::{ + api::{ + sys::{ + VT_delete_snapshot, VT_list_snapshots, VT_restore_snapshot, VT_save_snapshot, + VT_snapshot_size_used, VT_snapshots_ignore_class, + }, + AttrValue, + }, + Result, +}; +use raw_cstr::raw_cstr; +use simics_macro::simics_exception; + +#[simics_exception] +/// Save a snapshot with a name +pub fn save_snapshot(name: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { VT_save_snapshot(raw_cstr(name)?) }) +} + +#[simics_exception] +/// Restore a snapshot with a name +pub fn restore_snapshot(name: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { VT_restore_snapshot(raw_cstr(name)?) }) +} + +#[simics_exception] +/// Delete a snapshot with a name +pub fn delete_snapshot(name: S) -> Result +where + S: AsRef, +{ + Ok(unsafe { VT_delete_snapshot(raw_cstr(name)?) }) +} + +#[simics_exception] +/// Get the total size used by all snapshots +pub fn snapshot_size_used() -> AttrValue { + unsafe { VT_snapshot_size_used() }.into() +} + +#[simics_exception] +/// Get the list of all snapshots +pub fn list_snapshots() -> AttrValue { + unsafe { VT_list_snapshots() }.into() +} + +#[simics_exception] +/// Set snapshots to ignore a given class by name +pub fn snapshots_ignore_class(class_name: S) -> Result<()> +where + S: AsRef, +{ + unsafe { VT_snapshots_ignore_class(raw_cstr(class_name)?) }; + Ok(()) +} diff --git a/simics-api/src/safe/traits/module.rs b/modules/tsffs/src/simics/simics/src/api/traits/class.rs similarity index 68% rename from simics-api/src/safe/traits/module.rs rename to modules/tsffs/src/simics/simics/src/api/traits/class.rs index 3d3b3b36..5b3c62d5 100644 --- a/simics-api/src/safe/traits/module.rs +++ b/modules/tsffs/src/simics/simics/src/api/traits/class.rs @@ -1,14 +1,14 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -use crate::{ConfClass, ConfObject}; -use anyhow::Result; +use crate::api::{ConfClass, ConfObject}; +use crate::error::Result; /// Trait for simics module objects to implement to create a threadsafe module implementation -pub trait SimicsModule { +pub trait Class { /// Allocates an instance of the object using mm_zalloc and returns a pointer to the /// allocated object, whose first entry is the `ConfObject` instance associated with it - fn alloc(_module_class: *mut ConfClass) -> Result<*mut ConfObject> { + fn alloc(_cls: *mut ConfClass) -> Result<*mut ConfObject> { let size = std::mem::size_of::(); Ok(Into::into(crate::simics_alloc!(crate::ConfClass, size)?)) } @@ -17,42 +17,54 @@ pub trait SimicsModule { /// additional memory if co-allocation is not used. Attribute setters are called *after* this /// function returns. The default implementation returns the object without modification. /// Returning NULL from this function indicates an error - fn init(module_instance: *mut ConfObject) -> Result<*mut ConfObject> { - Ok(module_instance) + fn init(instance: *mut ConfObject) -> Result<*mut ConfObject> { + Ok(instance) } /// Object can do final initialization that requires attribute values, but should avoid calling /// interface methods on *other* objects. The default implementation of this method does /// nothing - fn finalize(_module_instance: *mut ConfObject) -> Result<()> { + fn finalize(_instance: *mut ConfObject) -> Result<()> { Ok(()) } /// Called after object is fully constructed and can participate in simulation and reverse /// execution. May call interface methods on other objects here as part of initialization. /// The default implementation of this method does nothing - fn objects_finalized(_module_instance: *mut ConfObject) -> Result<()> { + fn objects_finalized(_instance: *mut ConfObject) -> Result<()> { Ok(()) } /// Called first on all objects being deleted, should do the opposite of `init` and /// deinitialize any additionally-allocated memory, destroy file descriptors, etc. /// The default implementation of this method does nothing - fn deinit(_module_instance: *mut ConfObject) -> Result<()> { + fn deinit(_instance: *mut ConfObject) -> Result<()> { Ok(()) } /// Called after all objects are deinitialized, this should free the allocated object using /// mm_free - fn dealloc(module_instance: *mut ConfObject) -> Result<()> { - crate::free(module_instance); + fn dealloc(instance: *mut ConfObject) -> Result<()> { + crate::api::free(instance); Ok(()) } } -pub trait SimicsClassCreate { +pub trait CreateClass { /// Create a class and register it in SIMICS. This does not instantiate the class by creating /// any objects, it only creates the (python) class that is used as a blueprint to instantiate /// the class fn create() -> Result<*mut ConfClass>; } + +pub trait AsConfObject { + /// Get a reference to this object as a `ConfObject` raw pointer + fn as_conf_object(&self) -> *const ConfObject { + self as *const _ as *const ConfObject + } + + /// Get a mutable reference to this object as a mutable raw `ConfObject` pointer + fn as_conf_object_mut(&mut self) -> *mut ConfObject { + self as *mut _ as *mut ConfObject + } +} diff --git a/modules/tsffs/src/simics/simics/src/api/traits/hap.rs b/modules/tsffs/src/simics/simics/src/api/traits/hap.rs new file mode 100644 index 00000000..076652d9 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/traits/hap.rs @@ -0,0 +1,30 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#![allow(clippy::not_unsafe_ptr_arg_deref)] + +use raw_cstr::AsRawCstr; + +use crate::{ + api::{ + sys::{SIM_hap_delete_callback_id, SIM_hap_delete_callback_obj_id}, + ConfObject, HapHandle, + }, + Result, +}; + +/// A SIMICS Hap and the type of callbacks associated with it +pub trait Hap { + type Name: AsRawCstr; + const NAME: Self::Name; + + fn delete_callback_id(handle: HapHandle) -> Result<()> { + unsafe { SIM_hap_delete_callback_id(Self::NAME.as_raw_cstr()?, handle) }; + Ok(()) + } + + fn delete_callback_obj_id(obj: *mut ConfObject, handle: HapHandle) -> Result<()> { + unsafe { SIM_hap_delete_callback_obj_id(Self::NAME.as_raw_cstr()?, obj, handle) }; + Ok(()) + } +} diff --git a/modules/tsffs/src/simics/simics/src/api/traits/interface.rs b/modules/tsffs/src/simics/simics/src/api/traits/interface.rs new file mode 100644 index 00000000..714c05fc --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/traits/interface.rs @@ -0,0 +1,26 @@ +use crate::{ + api::{ConfClass, ConfObject}, + Result, +}; +use raw_cstr::AsRawCstr; + +/// A SIMICS interface containing a number of methods that can be called on an +/// object +pub trait Interface { + type InternalInterface: Default; + type Name: AsRawCstr; + const NAME: Self::Name; + /// Create a new instance of this interface + fn new(obj: *mut ConfObject, interface: *mut Self::InternalInterface) -> Self; + /// Register this interface for a type + fn register(cls: *mut ConfClass) -> Result<()>; + /// Get this interface for an object that implements it + fn get(obj: *mut ConfObject) -> Result + where + Self: Sized; +} + +/// An object which has a SIMICS interface +pub trait HasInterface { + type Interface: Interface; +} diff --git a/modules/tsffs/src/simics/simics/src/api/traits/mod.rs b/modules/tsffs/src/simics/simics/src/api/traits/mod.rs new file mode 100644 index 00000000..0d435b7f --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/traits/mod.rs @@ -0,0 +1,16 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Traits to help implement common SIMICS structures to build SIMICS modules: +//! +//! - SIMICS classes +//! - HAPs +//! - Class and object interfaces + +pub mod class; +pub mod hap; +pub mod interface; + +pub use class::*; +pub use hap::*; +pub use interface::*; diff --git a/modules/tsffs/src/simics/simics/src/api/util/alloc.rs b/modules/tsffs/src/simics/simics/src/api/util/alloc.rs new file mode 100644 index 00000000..97c7893d --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/api/util/alloc.rs @@ -0,0 +1,104 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::api::sys::{mm_free, mm_zalloc}; +use crate::error::Result; +use raw_cstr::raw_cstr; +use simics_api_sys::mm_realloc; +use std::{alloc::GlobalAlloc, ffi::c_void, mem::transmute}; + +#[macro_export] +/// Allocate memory with a size, of some type +macro_rules! simics_alloc { + ($typ:ty, $sz:expr) => { + $crate::api::alloc($sz, stringify!($typ), file!(), line!() as i32) + }; +} + +/// Allocate using the SIMICS zalloc implementation +/// +/// # Context +/// +/// All Contexts +pub fn alloc>( + size: usize, + typename: S, + filename: S, + line_number: i32, +) -> Result<*mut T> { + unsafe { + let res = mm_zalloc( + size, + size, + raw_cstr(typename)?, + raw_cstr(filename)?, + line_number, + ); + Ok(transmute(res)) + } +} + +/// Free a pointer that was allocated with [`alloc`] +/// +/// # Context +/// +/// All Contexts +pub fn free(ptr: *mut T) { + unsafe { mm_free(ptr as *mut c_void) }; +} + +/// Global allocator that uses SIMICS' exported memory management functionality +pub struct SimicsAlloc; + +// Unfortunately we don't have a good way to access the caller from global alloc, so we +// provide dummy values for these fields +const SIMICS_ALLOC_TYPE: &[u8; 8] = b"unknown\0"; +const SIMICS_ALLOC_FILE: &[u8; 8] = b"unknown\0"; +const SIMICS_ALLOC_LINE: i32 = 0; + +unsafe impl GlobalAlloc for SimicsAlloc { + /// Allocate using the global SIMICS allocator. Note: this allocation function + /// may fail in circumstances where very unusual alignment is requried. + unsafe fn alloc(&self, layout: std::alloc::Layout) -> *mut u8 { + let size = layout.size(); + + unsafe { + mm_zalloc( + size, + 1, + SIMICS_ALLOC_TYPE.as_ptr() as *const i8, + SIMICS_ALLOC_FILE.as_ptr() as *const i8, + SIMICS_ALLOC_LINE, + ) as *mut u8 + } + } + + /// All allocations are zeroed, so this method calls through to `alloc` + unsafe fn alloc_zeroed(&self, layout: std::alloc::Layout) -> *mut u8 { + self.alloc(layout) + } + + unsafe fn realloc( + &self, + ptr: *mut u8, + _layout: std::alloc::Layout, + new_size: usize, + ) -> *mut u8 { + unsafe { + mm_realloc( + ptr as *mut c_void, + new_size, + 1, + SIMICS_ALLOC_TYPE.as_ptr() as *const i8, + SIMICS_ALLOC_FILE.as_ptr() as *const i8, + SIMICS_ALLOC_LINE, + ) as *mut u8 + } + } + + /// Deallocate using the global SIMICS allocator. Note: this deallocation function + /// may fail in circumstances where very unusual alignment is required. + unsafe fn dealloc(&self, ptr: *mut u8, _layout: std::alloc::Layout) { + unsafe { mm_free(ptr as *mut c_void) }; + } +} diff --git a/simics-api/src/safe/util/mod.rs b/modules/tsffs/src/simics/simics/src/api/util/mod.rs similarity index 71% rename from simics-api/src/safe/util/mod.rs rename to modules/tsffs/src/simics/simics/src/api/util/mod.rs index d79d87c2..3a133c11 100644 --- a/simics-api/src/safe/util/mod.rs +++ b/modules/tsffs/src/simics/simics/src/api/util/mod.rs @@ -1,6 +1,8 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 +//! Utility functionality provided by SIMICS + pub mod alloc; pub use alloc::*; diff --git a/modules/tsffs/src/simics/simics/src/error/mod.rs b/modules/tsffs/src/simics/simics/src/error/mod.rs new file mode 100644 index 00000000..7a5379d4 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/error/mod.rs @@ -0,0 +1,100 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS Result and error types + +#![allow(unused)] + +use crate::api::AttrValue; + +pub type Result = std::result::Result; + +#[derive(thiserror::Error, Debug)] +/// SIMICS errors, including internal and APIs used +pub enum Error { + #[error("AttrValue is {actual:?}, expected {expected:?}")] + AttrValueType { + actual: crate::api::base::attr_value::AttrKind, + expected: crate::api::base::attr_value::AttrKind, + }, + #[error("AttrValue type is unknown")] + AttrValueTypeUnknown, + #[error("Index {index} out of bounds of list length {length}")] + AttrValueListIndexOutOfBounds { index: usize, length: usize }, + #[error("Index {index} out of bounds of dictionary size {size}")] + AttrValueDictIndexOutOfBounds { index: usize, size: usize }, + #[error("Null data requires zero size")] + InvalidNullDataSize, + #[error("Error converting to from {ty} to AttrValue")] + ToAttrValueConversionError { ty: String }, + #[error("Error converting from {value:?} to {ty}")] + FromAttrValueConversionError { value: AttrValue, ty: String }, + #[error("Error converting to from {ty} to AttrValueType")] + ToAttrValueTypeConversionError { ty: String }, + #[error("Error converting to from AttrValueType to {ty}")] + FromAttrValueTypeConversionError { ty: String }, + #[error("Error converting to from {ty} to AttrValue")] + NestedToAttrValueConversionError { ty: String, source: Box }, + #[error("Error converting from AttrValue {value:?} to {ty}")] + NestedFromAttrValueConversionError { + value: AttrValue, + ty: String, + source: Box, + }, + #[error("Error converting to from {ty} to AttrValueType")] + NestedToAttrValueTypeConversionError { ty: String, source: Box }, + #[error("Error converting to from AttrValueType to {ty}")] + NestedFromAttrValueTypeConversionError { ty: String, source: Box }, + #[error("Key {key} not found")] + AttrValueDictMissingKey { key: String }, + #[error("AttrValue list is non-homogeneous")] + NonHomogeneousList, + #[error("AttrValue dictionary is non-homogeneous")] + NonHomogeneousDict, + + #[error("Could not convert to string")] + ToString, + + #[error("Failed to create class {name}: {message}")] + CreateClass { name: String, message: String }, + #[error("Failed to register {name}: {message}")] + RegisterInterface { name: String, message: String }, + #[error("Could not find class with name {name}")] + ClassNotFound { name: String }, + #[error("Could not find object with name {name}")] + ObjectNotFound { name: String }, + #[error("Could not create object: {message}")] + CreateObject { message: String }, + #[error("No current checkpoint directory: {message}")] + CurrentCheckpointDir { message: String }, + #[error("No matching event found")] + NoEventFound, + #[error("No method {method} found on interface")] + NoInterfaceMethod { method: String }, + #[error("{exception:?}: {msg}")] + /// An internal error that comes from the sys API. + SimicsException { + exception: crate::api::base::sim_exception::SimException, + msg: String, + }, + #[error("This registration type is not supported for this hap")] + HapRegistrationType, + #[error("This deletion type is not supported for this hap")] + HapDeleteType, + #[error("Value size {actual} is too large (expected <= {expected})")] + ValueTooLarge { expected: usize, actual: usize }, + + // Transparently wrapped errors from std + #[error(transparent)] + TryFromIntError(#[from] std::num::TryFromIntError), + #[error(transparent)] + Utf8Error(#[from] std::str::Utf8Error), + #[error(transparent)] + NulError(#[from] std::ffi::NulError), + // Anyhow error type to allow wrapping any other errors (e.g. from other crates in the + // workspace) + #[error(transparent)] + Other(#[from] anyhow::Error), + #[error(transparent)] + Infallible(#[from] std::convert::Infallible), +} diff --git a/simics/src/api/mod.rs b/modules/tsffs/src/simics/simics/src/ispm/mod.rs similarity index 59% rename from simics/src/api/mod.rs rename to modules/tsffs/src/simics/simics/src/ispm/mod.rs index 1a87af17..0d1d6582 100644 --- a/simics/src/api/mod.rs +++ b/modules/tsffs/src/simics/simics/src/ispm/mod.rs @@ -1,6 +1,6 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -//! Re-exports the SIMICS API +//! Re-export of ispm wrappers -pub use simics_api::*; +pub use ispm_wrapper::*; diff --git a/modules/tsffs/src/simics/simics/src/lib.rs b/modules/tsffs/src/simics/simics/src/lib.rs new file mode 100644 index 00000000..ce3adaa9 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/lib.rs @@ -0,0 +1,32 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS +//! +//! The SIMICS crate provides: +//! +//! * High level API bindings to the SIMICS API +//! * Re-exports the low level API bindings to the SIMICS API +//! * Utility and logging functionality relevant to the SIMICS API +//! * A global allocator using the SIMICS allocation functionality for consistent memory +//! management when running code embedded in the SIMICS simulator + +#![deny(clippy::unwrap_used)] + +pub use api::alloc::SimicsAlloc; +pub use error::{Error, Result}; + +extern crate num_traits; + +pub mod api; +pub mod error; +pub mod ispm; +pub mod log; + +#[forbid(unsafe_code)] +pub mod util; + +#[global_allocator] +/// All crates using the SIMICS API must also use the SIMICS allocator as their +/// global allocator, hence we set it here +static GLOBAL: SimicsAlloc = SimicsAlloc; diff --git a/modules/tsffs/src/simics/simics/src/log/mod.rs b/modules/tsffs/src/simics/simics/src/log/mod.rs new file mode 100644 index 00000000..8b65bd73 --- /dev/null +++ b/modules/tsffs/src/simics/simics/src/log/mod.rs @@ -0,0 +1,249 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Logging macros wrapping the underlying SIMICS logging functionality + +#[macro_export] +/// Log an error message via the SIMICS logging API. If an object is provided, the +/// message will be logged through that object. If not, the message will be logged +/// through the base `sim` object. Note that errors logged may trigger simulator exit if +/// the simulator is run with the `-werror` flag. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::log::error; +/// +/// let module_instance = get_object("object_name")?; +/// let parameter = 0; +/// +/// error!(module_instance, "Error message with parameter {}", parameter); +/// error!("Error message without object with parameter {}", parameter); +/// ``` +/// +/// # Panics +/// +/// This macro will panic of there is an error in the logging call. This is unlikely if the +/// object is valid, but if your use case requires handling errors or is dynamically generating +/// objects without static lifetimes, you should use the internal [`log_error`] API instead. +/// +/// This macro will cause simulator exit, triggering a cascading panic, if it is called while +/// the simulator is run with `-werror`. +macro_rules! error { + ($obj:expr, $fmt:literal $($args:tt)*) => { + simics::log!(simics::api::logging::LogLevel::Error, $obj, $fmt $($args)*) + }; + ($fmt:literal $($args:tt)*) => { + simics::log!( + simics::api::logging::LogLevel::Warn, + $fmt + $($args)* + ) + }; +} + +#[macro_export] +/// Log a warning message via the SIMICS logging API. If an object is provided, the +/// message will be logged through that object. If not, the message will be logged +/// through the base `sim` object. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::log::warn; +/// +/// let module_instance = get_object("object_name")?; +/// let parameter = 0; +/// +/// warn!(module_instance, "Warning message with parameter {}", parameter); +/// warn!("Warning message without object with parameter {}", parameter); +/// ``` +/// +/// # Panics +/// +/// This macro will panic of there is an error in the logging call. This is unlikely if the +/// object is valid, but if your use case requires handling errors or is dynamically generating +/// objects without static lifetimes, you should use the internal [`log_info`] API instead. +macro_rules! warn { + ($obj:expr, $fmt:literal $($args:tt)*) => { + simics::log!(simics::api::logging::LogLevel::Warn, $obj, $fmt $($args)*) + }; + ($fmt:literal $($args:tt)*) => { + simics::log!( + simics::api::logging::LogLevel::Warn, + $fmt + $($args)* + ) + }; +} + +#[macro_export] +/// Log an informational message via the SIMICS logging API. If an object is provided, the +/// message will be logged through that object. If not, the message will be logged +/// through the base `sim` object. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::log::info; +/// +/// let module_instance = get_object("object_name")?; +/// let parameter = 0; +/// +/// info!(module_instance, "Info message with parameter {}", parameter); +/// info!("Info message without object with parameter {}", parameter); +/// ``` +/// +/// # Panics +/// +/// This macro will panic of there is an error in the logging call. This is unlikely if the +/// object is valid, but if your use case requires handling errors or is dynamically generating +/// objects without static lifetimes, you should use the internal [`log_info`] API instead. +macro_rules! info { + ($obj:expr, $fmt:literal $($args:tt)*) => { + simics::log!(simics::api::logging::LogLevel::Info, $obj, $fmt $($args)*) + }; + ($fmt:literal $($args:tt)*) => { + simics::log!( + simics::api::logging::LogLevel::Info, + $fmt + $($args)* + ) + }; +} + +#[macro_export] +/// Log a debug message via the SIMICS logging API. If an object is provided, the +/// message will be logged through that object. If not, the message will be logged +/// through the base `sim` object. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::log::debug; +/// +/// let module_instance = get_object("object_name")?; +/// let parameter = 0; +/// +/// debug!(module_instance, "Debug message with parameter {}", parameter); +/// debug!("Debug message without object with parameter {}", parameter); +/// ``` +/// +/// # Panics +/// +/// This macro will panic of there is an error in the logging call. This is unlikely if the +/// object is valid, but if your use case requires handling errors or is dynamically generating +/// objects without static lifetimes, you should use the internal [`log_info`] API instead. +macro_rules! debug { + ($obj:expr, $fmt:literal $($args:tt)*) => { + simics::log!(simics::api::logging::LogLevel::Debug, $obj, $fmt $($args)*) + }; + ($fmt:literal $($args:tt)*) => { + simics::log!( + simics::api::logging::LogLevel::Debug, + $fmt + $($args)* + ) + }; +} + +#[macro_export] +/// Log a trace message via the SIMICS logging API. If an object is provided, the +/// message will be logged through that object. If not, the message will be logged +/// through the base `sim` object. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::log::trace; +/// +/// let module_instance = get_object("object_name")?; +/// let parameter = 0; +/// +/// trace!(module_instance, "Trace message with parameter {}", parameter); +/// trace!("Trace message without object with parameter {}", parameter); +/// ``` +/// +/// # Panics +/// +/// This macro will panic of there is an error in the logging call. This is unlikely if the +/// object is valid, but if your use case requires handling errors or is dynamically generating +/// objects without static lifetimes, you should use the internal [`log_info`] API instead. +macro_rules! trace { + ($obj:expr, $fmt:literal $($args:tt)*) => { + simics::log!(simics::api::logging::LogLevel::Trace, $obj, $fmt $($args)*) + }; + ($fmt:literal $($args:tt)*) => { + simics::log!( + simics::api::logging::LogLevel::Trace, + $fmt + $($args)* + ) + }; +} + +#[macro_export] +/// Log a message via the SIMICS logging API. If an object is provided, the +/// message will be logged through that object. If not, the message will be logged +/// through the base `sim` object. [`trace`], [`debug`], [`info`], [`warn`] , and [`error`] messages +/// use this macro internally. This macro takes the log level as its first parameter. +/// +/// # Examples +/// +/// ```rust,ignore +/// use simics::log::log; +/// +/// let module_instance = get_object("object_name")?; +/// let parameter = 0; +/// +/// log!(LogLevel::Debug, module_instance, "Debug message with parameter {}", parameter); +/// log!(LogLevel::Debug, "Debug message without object with parameter {}", parameter); +/// ``` +/// +/// # Panics +/// +/// This macro will panic of there is an error in the logging call. This is unlikely if the +/// object is valid, but if your use case requires handling errors or is dynamically generating +/// objects without static lifetimes, you should use the internal [`log_info`] API instead. +macro_rules! log { + ($level:expr, $obj:expr, $fmt:literal $($args:tt)*) => { + match $level { + simics::api::logging::LogLevel::Error => { + #[allow(unnecessary_cast)] + simics::api::logging::log_error( + $obj as *mut simics::api::ConfObject, + format!($fmt $($args)*), + ).unwrap_or_else(|e| { + panic!( + "Fatal error attempting to log message {}: {}", + format!($fmt $($args)*), + e + ) + }) + } + _ => { + #[allow(unnecessary_cast)] + simics::api::logging::log_info( + $level, + $obj as *mut simics::api::ConfObject, + format!($fmt $($args)*), + ).unwrap_or_else(|e| { + panic!( + "Fatal error attempting to log message {}: {}", + format!($fmt $($args)*), + e + ) + }) + } + } + }; + ($level:expr, $fmt:literal $($args:tt)*) => { + simics::log!( + $level, + simics::api::simulator::sim_conf_object::get_object("sim") + .unwrap_or_else(|e| panic!("Unable to get base sim object: {e}")), + $fmt + $($args)* + ) + }; +} diff --git a/simics/src/util/mod.rs b/modules/tsffs/src/simics/simics/src/util/mod.rs similarity index 100% rename from simics/src/util/mod.rs rename to modules/tsffs/src/simics/simics/src/util/mod.rs diff --git a/modules/tsffs/src/tsffs/Cargo.toml b/modules/tsffs/src/tsffs/Cargo.toml new file mode 100644 index 00000000..b71ab018 --- /dev/null +++ b/modules/tsffs/src/tsffs/Cargo.toml @@ -0,0 +1,41 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[package] +name = "tsffs" +categories.workspace = true +description = "Loadable SIMICS module for TSFFS fuzzer" +edition.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +publish.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + +[lib] +crate-type = ["staticlib", "lib"] + +[dependencies] +anyhow = { workspace = true } +ffi-macro = { workspace = true } +libafl = { workspace = true } +libafl_bolts = { workspace = true } +libafl_targets = { workspace = true } +raw-cstr = { workspace = true } +serde = { workspace = true, features = ["derive"] } +simics = { workspace = true, features = ["link"] } +simics-macro = { workspace = true } +yaxpeax-arch = "0.2.7" +yaxpeax-x86 = "1.2.0" +typed-builder = "0.18.0" +getters.workspace = true +serde_json.workspace = true +goblin = "0.7.1" +yaxpeax-riscv = { git = "https://github.com/novafacing/yaxpeax-riscv", version = "0.1.0", features = [ + "serde", +], rev = "696eb047208e4d3c903654aa557a42071c466e71" } +crc32fast = "1.3.2" + +[dev-dependencies] diff --git a/modules/tsffs/src/tsffs/src/arch/arc.rs b/modules/tsffs/src/tsffs/src/arch/arc.rs new file mode 100644 index 00000000..9945dca6 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/arc.rs @@ -0,0 +1,11 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "r0"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "r1"; diff --git a/modules/tsffs/src/tsffs/src/arch/arm.rs b/modules/tsffs/src/tsffs/src/arch/arm.rs new file mode 100644 index 00000000..9945dca6 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/arm.rs @@ -0,0 +1,11 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "r0"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "r1"; diff --git a/modules/tsffs/src/tsffs/src/arch/arm_thumb2.rs b/modules/tsffs/src/tsffs/src/arch/arm_thumb2.rs new file mode 100644 index 00000000..9945dca6 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/arm_thumb2.rs @@ -0,0 +1,11 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "r0"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "r1"; diff --git a/modules/tsffs/src/tsffs/src/arch/armv8.rs b/modules/tsffs/src/tsffs/src/arch/armv8.rs new file mode 100644 index 00000000..dea8a583 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/armv8.rs @@ -0,0 +1,11 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "x0"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "x1"; diff --git a/modules/tsffs/src/tsffs/src/arch/mod.rs b/modules/tsffs/src/tsffs/src/arch/mod.rs new file mode 100644 index 00000000..ddcc2582 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/mod.rs @@ -0,0 +1,408 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Architecture specific data and definitions + +use self::{ + risc_v::RISCVArchitectureOperations, x86::X86ArchitectureOperations, + x86_64::X86_64ArchitectureOperations, +}; +use crate::{tracer::TraceEntry, traits::TracerDisassembler, StartBuffer, StartSize, CLASS_NAME}; +use anyhow::{anyhow, bail, Error, Result}; +use raw_cstr::AsRawCstr; +use simics::{ + api::{ + get_object, read_phys_memory, sys::instruction_handle_t, write_phys_memory, Access, + AttrValueType, ConfObject, CpuInstructionQueryInterface, + CpuInstrumentationSubscribeInterface, CycleInterface, GenericAddress, IntRegisterInterface, + ProcessorInfoV2Interface, + }, + trace, +}; +use std::{fmt::Debug, str::FromStr}; + +pub mod arc; +pub mod arm; +pub mod arm_thumb2; +pub mod armv8; +pub mod risc_v; +pub mod x86; +pub mod x86_64; + +#[derive(Debug, Clone)] +pub enum ArchitectureHint { + X86_64, + I386, + RISCV, +} + +impl FromStr for ArchitectureHint { + type Err = Error; + + fn from_str(s: &str) -> Result { + Ok(match s { + "x86-64" => Self::X86_64, + "i386" | "i486" | "i586" | "i686" | "ia-32" | "x86" => Self::I386, + "riscv" | "risc-v" | "riscv32" | "riscv64" => Self::RISCV, + _ => bail!("Unknown hint: {}", s), + }) + } +} + +impl From for AttrValueType { + fn from(val: ArchitectureHint) -> Self { + match val { + ArchitectureHint::X86_64 => "x86-64", + ArchitectureHint::I386 => "i386", + ArchitectureHint::RISCV => "risc-v", + } + .into() + } +} + +impl ArchitectureHint { + pub fn architecture(&self, cpu: *mut ConfObject) -> Result { + Ok(match self { + ArchitectureHint::X86_64 => { + Architecture::X86_64(X86_64ArchitectureOperations::new_unchecked(cpu)?) + } + ArchitectureHint::I386 => { + Architecture::I386(X86ArchitectureOperations::new_unchecked(cpu)?) + } + ArchitectureHint::RISCV => { + Architecture::RISCV(RISCVArchitectureOperations::new_unchecked(cpu)?) + } + }) + } +} + +pub enum Architecture { + X86_64(X86_64ArchitectureOperations), + I386(X86ArchitectureOperations), + RISCV(RISCVArchitectureOperations), +} + +impl Debug for Architecture { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}", + match self { + Architecture::X86_64(_) => "x86-64", + Architecture::I386(_) => "i386", + Architecture::RISCV(_) => "risc-v", + } + ) + } +} +/// Each architecture must provide a struct that performs architecture-specific operations +pub trait ArchitectureOperations { + const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &'static str; + const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &'static str; + + fn new(cpu: *mut ConfObject) -> Result + where + Self: Sized; + fn new_unchecked(_: *mut ConfObject) -> Result + where + Self: Sized, + { + bail!("Invalid CPU"); + } + fn cpu(&self) -> *mut ConfObject; + fn disassembler(&mut self) -> &mut dyn TracerDisassembler; + fn int_register(&mut self) -> &mut IntRegisterInterface; + fn processor_info_v2(&mut self) -> &mut ProcessorInfoV2Interface; + fn cpu_instruction_query(&mut self) -> &mut CpuInstructionQueryInterface; + fn cpu_instrumentation_subscribe(&mut self) -> &mut CpuInstrumentationSubscribeInterface; + fn cycle(&mut self) -> &mut CycleInterface; + + /// Returns the address and whether the address is virtual for the testcase buffer used by + /// the magic start functionality + fn get_magic_start_buffer(&mut self) -> Result { + let number = self + .int_register() + .get_number(Self::DEFAULT_TESTCASE_AREA_REGISTER_NAME.as_raw_cstr()?)?; + + trace!( + get_object(CLASS_NAME)?, + "Got number {} for register {}", + number, + Self::DEFAULT_TESTCASE_AREA_REGISTER_NAME + ); + + let logical_address = self.int_register().read(number)?; + trace!( + get_object(CLASS_NAME)?, + "Got logical address {:#x} from register", + logical_address + ); + + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(logical_address, Access::Sim_Access_Read)?; + + // NOTE: -1 signals no valid mapping, but this is equivalent to u64::MAX + if physical_address_block.valid == 0 { + bail!("Invalid linear address found in magic start buffer register {number}: {logical_address:#x}"); + } else { + trace!( + get_object(CLASS_NAME)?, + "Got physical address {:#x} from logical address", + physical_address_block.address + ); + Ok(StartBuffer::builder() + .physical_address(physical_address_block.address) + .virt(physical_address_block.address != logical_address) + .build()) + } + } + /// Returns the memory pointed to by the magic start functionality containing the maximum + /// size of an input testcase + fn get_magic_start_size(&mut self) -> Result { + let number = self + .int_register() + .get_number(Self::DEFAULT_TESTCASE_SIZE_REGISTER_NAME.as_raw_cstr()?)?; + let logical_address = self.int_register().read(number)?; + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(logical_address, Access::Sim_Access_Read)?; + + // NOTE: -1 signals no valid mapping, but this is equivalent to u64::MAX + if physical_address_block.valid == 0 { + bail!("Invalid linear address found in magic start buffer register {number}: {logical_address:#x}"); + } + + let size_size = self.processor_info_v2().get_logical_address_width()? / u8::BITS as i32; + let size = read_phys_memory(self.cpu(), physical_address_block.address, size_size)?; + + Ok(StartSize::builder() + .physical_address(( + physical_address_block.address, + physical_address_block.address != logical_address, + )) + .initial_size(size) + .build()) + } + + fn get_manual_start_buffer(&mut self, buffer_address: GenericAddress) -> Result { + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(buffer_address, Access::Sim_Access_Read)?; + + if physical_address_block.valid == 0 { + bail!( + "Invalid linear address for given buffer address {:#x}", + buffer_address + ); + } else { + Ok(StartBuffer::builder() + .physical_address(physical_address_block.address) + .virt(physical_address_block.address != buffer_address) + .build()) + } + } + + /// Returns the initial start size for non-magic instructions by reading it from a given + /// (possibly virtual) address + fn get_manual_start_size(&mut self, size_address: GenericAddress) -> Result { + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(size_address, Access::Sim_Access_Read)?; + + if physical_address_block.valid == 0 { + bail!("Invalid linear address given for start buffer : {size_address:#x}"); + } + + let size_size = self.processor_info_v2().get_logical_address_width()? / u8::BITS as i32; + let size = read_phys_memory(self.cpu(), physical_address_block.address, size_size)?; + + Ok(StartSize::builder() + .physical_address(( + physical_address_block.address, + physical_address_block.address != size_address, + )) + .initial_size(size) + .build()) + } + + /// Writes the buffer with a testcase of a certain size + fn write_start( + &mut self, + testcase: &[u8], + buffer: &StartBuffer, + size: &StartSize, + ) -> Result<()> { + let mut testcase = testcase.to_vec(); + // NOTE: We have to handle both riscv64 and riscv32 here + let addr_size = + self.processor_info_v2().get_logical_address_width()? as usize / u8::BITS as usize; + let initial_size = + size.initial_size() + .ok_or_else(|| anyhow!("Expected initial size for start"))? as usize; + + testcase.truncate(initial_size); + + testcase + .chunks(addr_size) + .try_for_each(|c| write_phys_memory(self.cpu(), buffer.physical_address, c))?; + + let value = testcase + .len() + .to_le_bytes() + .iter() + .take(addr_size) + .cloned() + .collect::>(); + + if let Some((address, _)) = size.physical_address { + write_phys_memory(self.cpu(), address, value.as_slice())?; + } + + Ok(()) + } + + fn trace_pc(&mut self, instruction_query: *mut instruction_handle_t) -> Result; + fn trace_cmp(&mut self, instruction_query: *mut instruction_handle_t) -> Result; +} + +impl ArchitectureOperations for Architecture { + const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &'static str = ""; + const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &'static str = ""; + + fn new(cpu: *mut ConfObject) -> Result + where + Self: Sized, + { + if let Ok(x86_64) = X86_64ArchitectureOperations::new(cpu) { + Ok(Self::X86_64(x86_64)) + } else if let Ok(x86) = X86ArchitectureOperations::new(cpu) { + Ok(Self::I386(x86)) + } else if let Ok(riscv) = RISCVArchitectureOperations::new(cpu) { + Ok(Self::RISCV(riscv)) + } else { + bail!("Unsupported architecture"); + } + } + + fn cpu(&self) -> *mut ConfObject { + match self { + Architecture::X86_64(x86_64) => x86_64.cpu(), + Architecture::I386(i386) => i386.cpu(), + Architecture::RISCV(riscv) => riscv.cpu(), + } + } + + fn disassembler(&mut self) -> &mut dyn TracerDisassembler { + match self { + Architecture::X86_64(x86_64) => x86_64.disassembler(), + Architecture::I386(i386) => i386.disassembler(), + Architecture::RISCV(riscv) => riscv.disassembler(), + } + } + + fn int_register(&mut self) -> &mut IntRegisterInterface { + match self { + Architecture::X86_64(x86_64) => x86_64.int_register(), + Architecture::I386(i386) => i386.int_register(), + Architecture::RISCV(riscv) => riscv.int_register(), + } + } + + fn processor_info_v2(&mut self) -> &mut ProcessorInfoV2Interface { + match self { + Architecture::X86_64(x86_64) => x86_64.processor_info_v2(), + Architecture::I386(i386) => i386.processor_info_v2(), + Architecture::RISCV(riscv) => riscv.processor_info_v2(), + } + } + + fn cpu_instruction_query(&mut self) -> &mut CpuInstructionQueryInterface { + match self { + Architecture::X86_64(x86_64) => x86_64.cpu_instruction_query(), + Architecture::I386(i386) => i386.cpu_instruction_query(), + Architecture::RISCV(riscv) => riscv.cpu_instruction_query(), + } + } + + fn cpu_instrumentation_subscribe(&mut self) -> &mut CpuInstrumentationSubscribeInterface { + match self { + Architecture::X86_64(x86_64) => x86_64.cpu_instrumentation_subscribe(), + Architecture::I386(i386) => i386.cpu_instrumentation_subscribe(), + Architecture::RISCV(riscv) => riscv.cpu_instrumentation_subscribe(), + } + } + + fn cycle(&mut self) -> &mut CycleInterface { + match self { + Architecture::X86_64(x86_64) => x86_64.cycle(), + Architecture::I386(i386) => i386.cycle(), + Architecture::RISCV(riscv) => riscv.cycle(), + } + } + + fn get_magic_start_buffer(&mut self) -> Result { + match self { + Architecture::X86_64(x86_64) => x86_64.get_magic_start_buffer(), + Architecture::I386(i386) => i386.get_magic_start_buffer(), + Architecture::RISCV(riscv) => riscv.get_magic_start_buffer(), + } + } + + fn get_magic_start_size(&mut self) -> Result { + match self { + Architecture::X86_64(x86_64) => x86_64.get_magic_start_size(), + Architecture::I386(i386) => i386.get_magic_start_size(), + Architecture::RISCV(riscv) => riscv.get_magic_start_size(), + } + } + + fn get_manual_start_buffer(&mut self, buffer_address: GenericAddress) -> Result { + match self { + Architecture::X86_64(x86_64) => x86_64.get_manual_start_buffer(buffer_address), + Architecture::I386(i386) => i386.get_manual_start_buffer(buffer_address), + Architecture::RISCV(riscv) => riscv.get_manual_start_buffer(buffer_address), + } + } + + fn get_manual_start_size(&mut self, size_address: GenericAddress) -> Result { + match self { + Architecture::X86_64(x86_64) => x86_64.get_manual_start_size(size_address), + Architecture::I386(i386) => i386.get_manual_start_size(size_address), + Architecture::RISCV(riscv) => riscv.get_manual_start_size(size_address), + } + } + + fn write_start( + &mut self, + testcase: &[u8], + buffer: &StartBuffer, + size: &StartSize, + ) -> Result<()> { + match self { + Architecture::X86_64(x86_64) => x86_64.write_start(testcase, buffer, size), + Architecture::I386(i386) => i386.write_start(testcase, buffer, size), + Architecture::RISCV(riscv) => riscv.write_start(testcase, buffer, size), + } + } + + fn trace_pc(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + match self { + Architecture::X86_64(x86_64) => x86_64.trace_pc(instruction_query), + Architecture::I386(i386) => i386.trace_pc(instruction_query), + Architecture::RISCV(riscv) => riscv.trace_pc(instruction_query), + } + } + + fn trace_cmp(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + match self { + Architecture::X86_64(x86_64) => x86_64.trace_cmp(instruction_query), + Architecture::I386(i386) => i386.trace_cmp(instruction_query), + Architecture::RISCV(riscv) => riscv.trace_cmp(instruction_query), + } + } +} diff --git a/modules/tsffs/src/tsffs/src/arch/risc_v.rs b/modules/tsffs/src/tsffs/src/arch/risc_v.rs new file mode 100644 index 00000000..127d68c4 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/risc_v.rs @@ -0,0 +1,576 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{anyhow, bail, Result}; +use libafl::prelude::CmpValues; +use raw_cstr::AsRawCstr; +use simics::api::{ + get_interface, read_phys_memory, sys::instruction_handle_t, Access, ConfObject, + CpuInstructionQueryInterface, CpuInstrumentationSubscribeInterface, CycleInterface, + IntRegisterInterface, ProcessorInfoV2Interface, +}; +use std::{ffi::CStr, mem::size_of, slice::from_raw_parts}; +use yaxpeax_arch::{Decoder, U8Reader}; +use yaxpeax_riscv::{Instruction, Opcode, Operand, RiscVDecoder}; + +use crate::{ + tracer::{CmpExpr, CmpType, CmpValue, TraceEntry}, + traits::TracerDisassembler, +}; + +use super::ArchitectureOperations; + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness. This is AKA a0 but we use x10 as the +/// canonical name +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "x10"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. This is AKA a1 but we use x11 as the +/// canonical name +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "x11"; + +pub struct RISCVArchitectureOperations { + cpu: *mut ConfObject, + disassembler: Disassembler, + int_register: IntRegisterInterface, + processor_info_v2: ProcessorInfoV2Interface, + cpu_instruction_query: CpuInstructionQueryInterface, + cpu_instrumentation_subscribe: CpuInstrumentationSubscribeInterface, + cycle: CycleInterface, +} + +impl ArchitectureOperations for RISCVArchitectureOperations { + const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &'static str = DEFAULT_TESTCASE_AREA_REGISTER_NAME; + const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &'static str = DEFAULT_TESTCASE_SIZE_REGISTER_NAME; + + fn new(cpu: *mut ConfObject) -> Result { + let mut processor_info_v2: ProcessorInfoV2Interface = get_interface(cpu)?; + + let arch = unsafe { CStr::from_ptr(processor_info_v2.architecture()?) } + .to_str()? + .to_string(); + + if arch == "risc-v" || arch == "riscv" || arch == "riscv32" || arch == "riscv64" { + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register: get_interface(cpu)?, + processor_info_v2, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } else { + bail!("Architecture {} is not risc-v", arch); + } + } + + fn new_unchecked(cpu: *mut ConfObject) -> Result + where + Self: Sized, + { + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register: get_interface(cpu)?, + processor_info_v2: get_interface(cpu)?, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } + + fn cpu(&self) -> *mut ConfObject { + self.cpu + } + + fn disassembler(&mut self) -> &mut dyn TracerDisassembler { + &mut self.disassembler + } + + fn int_register(&mut self) -> &mut IntRegisterInterface { + &mut self.int_register + } + + fn processor_info_v2(&mut self) -> &mut ProcessorInfoV2Interface { + &mut self.processor_info_v2 + } + + fn cpu_instruction_query(&mut self) -> &mut CpuInstructionQueryInterface { + &mut self.cpu_instruction_query + } + + fn cpu_instrumentation_subscribe(&mut self) -> &mut CpuInstrumentationSubscribeInterface { + &mut self.cpu_instrumentation_subscribe + } + + fn cycle(&mut self) -> &mut CycleInterface { + &mut self.cycle + } + + fn trace_pc(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + let instruction_bytes = self + .cpu_instruction_query + .get_instruction_bytes(instruction_query)?; + + self.disassembler.disassemble(unsafe { + from_raw_parts(instruction_bytes.data, instruction_bytes.size) + })?; + + if self.disassembler.last_was_call() + || self.disassembler.last_was_control_flow() + || self.disassembler.last_was_ret() + { + Ok(TraceEntry::builder() + .edge(self.processor_info_v2.get_program_counter()?) + .build()) + } else { + Ok(TraceEntry::default()) + } + } + + fn trace_cmp(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + let instruction_bytes = self + .cpu_instruction_query + .get_instruction_bytes(instruction_query)?; + self.disassembler.disassemble(unsafe { + from_raw_parts(instruction_bytes.data, instruction_bytes.size) + })?; + + let pc = self.processor_info_v2.get_program_counter()?; + + let mut cmp_values = Vec::new(); + + for expr in self.disassembler.cmp() { + if let Ok(value) = self.simplify(&expr) { + cmp_values.push(value); + } + } + + let cmp_value = if let (Some(l), Some(r)) = (cmp_values.first(), cmp_values.get(1)) { + match (l, r) { + (CmpValue::U8(l), CmpValue::U8(r)) => Some(CmpValues::U8((*l, *r))), + (CmpValue::I8(l), CmpValue::I8(r)) => Some(CmpValues::U8(( + u8::from_le_bytes(l.to_le_bytes()), + u8::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U16(l), CmpValue::U16(r)) => Some(CmpValues::U16((*l, *r))), + (CmpValue::I16(l), CmpValue::I16(r)) => Some(CmpValues::U16(( + u16::from_le_bytes(l.to_le_bytes()), + u16::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U32(l), CmpValue::U32(r)) => Some(CmpValues::U32((*l, *r))), + (CmpValue::I32(l), CmpValue::I32(r)) => Some(CmpValues::U32(( + u32::from_le_bytes(l.to_le_bytes()), + u32::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U64(l), CmpValue::U64(r)) => Some(CmpValues::U64((*l, *r))), + (CmpValue::I64(l), CmpValue::I64(r)) => Some(CmpValues::U64(( + u64::from_le_bytes(l.to_le_bytes()), + u64::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::Expr(_), CmpValue::Expr(_)) => None, + _ => None, + } + } else { + None + }; + + Ok(TraceEntry::builder() + .cmp(( + pc, + self.disassembler.cmp_type(), + cmp_value.ok_or_else(|| anyhow!("No cmp value available"))?, + )) + .build()) + } +} + +impl RISCVArchitectureOperations { + fn simplify(&mut self, expr: &CmpExpr) -> Result { + match expr { + CmpExpr::Deref((b, _)) => { + let v = self.simplify(b)?; + match v { + CmpValue::U64(a) => { + let address = self + .processor_info_v2 + .logical_to_physical(a, Access::Sim_Access_Read)?; + Ok(CmpValue::U64(read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + )?)) + } + CmpValue::U32(a) => { + let address = self + .processor_info_v2 + .logical_to_physical(a as u64, Access::Sim_Access_Read)?; + Ok(CmpValue::U64(read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + )?)) + } + _ => bail!("Invalid dereference size {:?}", v), + } + } + CmpExpr::Reg((n, _)) => { + let regno = self.int_register.get_number(n.as_raw_cstr()?)?; + let value = self.int_register.read(regno)?; + if self.processor_info_v2.get_logical_address_width()? as u32 / u8::BITS == 8 { + Ok(CmpValue::U64(value)) + } else { + Ok(CmpValue::U32(value as u32)) + } + } + CmpExpr::Add((l, r)) => { + let lv = self.simplify(l)?; + let rv = self.simplify(r)?; + + match (lv, rv) { + (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_add(ru))), + (CmpValue::U8(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U8(lu.wrapping_add_signed(ru))) + } + (CmpValue::U8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_add_signed(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_add_signed(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_add_signed(ru) as u8)) + } + (CmpValue::I8(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I8(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_add(ru))), + (CmpValue::I8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_add(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_add(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_add(ru) as i8)) + } + (CmpValue::U16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add(ru as u16))) + } + (CmpValue::U16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add_signed(ru as i16))) + } + (CmpValue::U16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add(ru))) + } + (CmpValue::U16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add_signed(ru))) + } + (CmpValue::U16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_add(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_add_signed(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_add(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_add_signed(ru) as u16)) + } + (CmpValue::I16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru as u16))) + } + (CmpValue::I16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add(ru))) + } + (CmpValue::I16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_add_unsigned(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_add(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_add_unsigned(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_add(ru) as i16)) + } + (CmpValue::U32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) + } + (CmpValue::U32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) + } + (CmpValue::U32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru))) + } + (CmpValue::U32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru))) + } + (CmpValue::U32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_add(ru) as u32)) + } + (CmpValue::U32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_add_signed(ru) as u32)) + } + (CmpValue::I32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) + } + (CmpValue::I32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) + } + (CmpValue::I32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru))) + } + (CmpValue::I32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_add_unsigned(ru) as i32)) + } + (CmpValue::I32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_add(ru) as i32)) + } + (CmpValue::U64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru))) + } + (CmpValue::U64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru))) + } + (CmpValue::I64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru))) + } + _ => bail!("Cannot multiply non-integral types"), + } + } + CmpExpr::I16(i) => Ok(CmpValue::I16(*i)), + CmpExpr::U32(u) => Ok(CmpValue::U32(*u)), + CmpExpr::I32(i) => Ok(CmpValue::I32(*i)), + _ => bail!("Unsupported expression {:?}", expr), + } + } +} + +pub struct Disassembler { + decoder: RiscVDecoder, + last: Option, +} + +impl Disassembler { + pub fn new() -> Self { + Self { + decoder: RiscVDecoder::default(), + last: None, + } + } +} + +impl Default for Disassembler { + fn default() -> Self { + Self::new() + } +} + +impl TracerDisassembler for Disassembler { + fn disassemble(&mut self, bytes: &[u8]) -> Result<()> { + let mut r = U8Reader::new(bytes); + + if let Ok(insn) = self.decoder.decode(&mut r) { + self.last = Some(insn); + } else { + bail!("Could not disassemble {:?}", bytes); + } + + Ok(()) + } + + fn last_was_control_flow(&self) -> bool { + if let Some(last) = self.last.as_ref() { + if matches!(last.opcode(), |Opcode::BEQ| Opcode::BNE + | Opcode::BLT + | Opcode::BGE + | Opcode::BLTU + | Opcode::BGEU) + { + return true; + } + } + + false + } + + // TODO: Make call/ret distinction more accurate, all three can ret/call far or near, but + // there are semantic versions based on operands: + // https://inst.eecs.berkeley.edu/~cs61c/fa20/pdfs/lectures/lec12-bw.pdf + + fn last_was_call(&self) -> bool { + if let Some(last) = self.last.as_ref() { + return matches!(last.opcode(), Opcode::JALR | Opcode::JAL | Opcode::AUIPC); + } + + false + } + + fn last_was_ret(&self) -> bool { + if let Some(last) = self.last.as_ref() { + return matches!(last.opcode(), Opcode::JALR | Opcode::JAL | Opcode::AUIPC); + } + + false + } + + fn last_was_cmp(&self) -> bool { + if let Some(last) = self.last.as_ref() { + return matches!( + last.opcode(), + Opcode::SLT + | Opcode::SLTI + | Opcode::SLTU + | Opcode::SLTIU + | Opcode::BEQ + | Opcode::BNE + | Opcode::BGE + | Opcode::BLTU + | Opcode::BGEU + ); + } + + false + } + + fn cmp(&self) -> Vec { + let mut cmp_exprs = Vec::new(); + if self.last_was_cmp() { + if let Some(last) = self.last.as_ref() { + for operand in last.operands() { + match operand { + Some(Operand::Reg(r)) => { + let regname = format!("x{}", r); + // NOTE: We don't give a width to regs here, it's defined by the + // arch subtype in the archops + cmp_exprs.push(CmpExpr::Reg((regname, 0))); + } + Some(Operand::Imm(i)) => { + // NOTE: Not technically correct, can be 12I/S or 20U + cmp_exprs.push(CmpExpr::I32(i)); + } + Some(Operand::BaseOffset(b, o)) => { + let regname = format!("x{}", b); + cmp_exprs.push(CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((regname, 0))), + Box::new(CmpExpr::I16(o)), + ))), + None, + ))) + } + Some(Operand::LongImm(u)) => cmp_exprs.push(CmpExpr::U32(u)), + _ => {} + } + } + } + } + + cmp_exprs + } + + fn cmp_type(&self) -> Vec { + if self.last_was_cmp() { + if let Some(last) = self.last.as_ref() { + return match last.opcode() { + Opcode::SLT => vec![CmpType::Lesser], + Opcode::SLTI => vec![CmpType::Lesser], + Opcode::SLTU => vec![CmpType::Lesser], + Opcode::SLTIU => vec![CmpType::Lesser], + Opcode::BEQ => vec![CmpType::Equal], + Opcode::BNE => vec![CmpType::Equal], + Opcode::BGE => vec![CmpType::Greater, CmpType::Equal], + Opcode::BLTU => vec![CmpType::Lesser], + Opcode::BGEU => vec![CmpType::Greater, CmpType::Equal], + _ => vec![], + }; + } + } + + vec![] + } +} diff --git a/modules/tsffs/src/tsffs/src/arch/x86.rs b/modules/tsffs/src/tsffs/src/arch/x86.rs new file mode 100644 index 00000000..706a3fc2 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/x86.rs @@ -0,0 +1,1331 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use std::{ffi::CStr, mem::size_of, slice::from_raw_parts}; + +use super::ArchitectureOperations; +use crate::{ + tracer::{CmpExpr, CmpType, CmpValue, TraceEntry}, + traits::TracerDisassembler, + StartBuffer, StartSize, CLASS_NAME, +}; +use anyhow::{anyhow, bail, Error, Result}; +use libafl::prelude::CmpValues; +use raw_cstr::AsRawCstr; +use simics::{ + api::{ + get_interface, get_object, read_phys_memory, sys::instruction_handle_t, write_phys_memory, + Access, ConfObject, CpuInstructionQueryInterface, CpuInstrumentationSubscribeInterface, + CycleInterface, GenericAddress, IntRegisterInterface, ProcessorInfoV2Interface, + }, + trace, +}; +use yaxpeax_x86::protected_mode::{ConditionCode, InstDecoder, Instruction, Opcode, Operand}; + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "edi"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "esi"; + +pub mod exceptions { + /// Division errors generated by DIV and IDIV instructions + pub const DIVIDE_ERROR: i64 = 0; + pub const DEBUG: i64 = 1; + pub const NMI_INTERRUPT: i64 = 2; + /// INT3 instructions + pub const BREAKPOINT: i64 = 3; + /// INT0 instructions + pub const OVERFLOW: i64 = 4; + /// BOUND instruction + pub const BOUND: i64 = 5; + /// UD instruction or reserved opcode + pub const INVALID_OPCODE: i64 = 6; + /// Floating point or WAIT/FWAIT instruction (no math coprocessor) + pub const DEVICE_NOT_AVAILABLE: i64 = 7; + /// Any instruction that can generate an exception, NMI, or INTR can cause a double fault, + /// i.e. on page miss twice. + pub const DOUBLE_FAULT: i64 = 8; + /// Floating point instruction overrun coprocessor segment + pub const COPROCESSOR_SEGMENT_OVERRUN: i64 = 9; + /// Invalid task switch or TSS access + pub const INVALID_TSS: i64 = 10; + /// Error loading segment registers or accessing system segments + pub const SEGMENT_NOT_PRESENT: i64 = 11; + /// Stack operations and SS register loads in segmented operation mode + pub const STACK_SEGMENT_FAULT: i64 = 12; + /// Error during memory reference or other protection check + pub const GENERAL_PROTECTION: i64 = 13; + /// Page fault + pub const PAGE_FAULT: i64 = 14; + // NOTE: 15 reserved + /// Error in floating point math or WAIT/FWAIT instruction + pub const FLOATING_POINT_ERROR: i64 = 16; + /// Error in data alignment + pub const ALIGNMENT_CHECK: i64 = 17; + /// Error code and source are model dependent + pub const MACHINE_CHECK: i64 = 18; + /// Exception in SIMD floating point math + pub const SIMD_FLOATING_POINT_EXCEPTION: i64 = 19; + /// Extended page table/VT exception + pub const VIRTUALIZATION_EXCEPTION: i64 = 20; + /// Missing ENDBRANCH instruction at the target of an indirect call or jump. Generated by + /// RET, IRET, RSTORSSP, and SETSSBSY instruction when CET is enabled. + pub const CONTROL_PROTECTION_EXCEPTION: i64 = 21; + // NOTE: 22-31 reserved + // NOTE: 32-255 are maskable interrupts. + + #[repr(i64)] + pub enum Exception { + DivideError = 1, + Debug, + NmiInterrupt, + Breakpoint, + Overflow, + Bound, + InvalidOpcode, + DeviceNotAvailable, + DoubleFault, + CoprocessorSegmentOverrun, + InvalidTss, + SegmentNotPresent, + StackSegmentFault, + GeneralProtection, + PageFault, + Reserved0, + FloatingPointError, + AlignmentCheck, + MachineCheck, + SimdFloatingPointException, + VirtualizationException, + ControlProtectionException, + Other(i64), + } + + impl From for i64 { + fn from(value: Exception) -> Self { + match value { + Exception::Other(i) => i, + _ => i64::from(value), + } + } + } +} + +pub struct X86ArchitectureOperations { + cpu: *mut ConfObject, + disassembler: Disassembler, + int_register: IntRegisterInterface, + processor_info_v2: ProcessorInfoV2Interface, + cpu_instruction_query: CpuInstructionQueryInterface, + cpu_instrumentation_subscribe: CpuInstrumentationSubscribeInterface, + cycle: CycleInterface, +} + +impl ArchitectureOperations for X86ArchitectureOperations { + const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &'static str = DEFAULT_TESTCASE_AREA_REGISTER_NAME; + const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &'static str = DEFAULT_TESTCASE_SIZE_REGISTER_NAME; + + fn new(cpu: *mut ConfObject) -> Result { + let mut processor_info_v2: ProcessorInfoV2Interface = get_interface(cpu)?; + + let arch = unsafe { CStr::from_ptr(processor_info_v2.architecture()?) } + .to_str()? + .to_string(); + + trace!( + get_object(CLASS_NAME)?, + "Checking whether cpu with architecutre {arch} is i386" + ); + + if arch == "x86-64" { + // Check if the arch is actually x86-64, some x86-64 processors are actually + // i386 under the hood + let mut int_register: IntRegisterInterface = get_interface(cpu)?; + let regs: Vec = int_register.all_registers()?.try_into()?; + let reg_names: Vec = regs + .iter() + .map(|r| { + int_register + .get_name(*r as i32) + .map_err(|e| anyhow!("Failed to get register name: {e}")) + .and_then(|n| { + unsafe { CStr::from_ptr(n) } + .to_str() + .map(|s| s.to_string()) + .map_err(|e| anyhow!("Failed to convert string: {e}")) + }) + }) + .collect::>>()?; + + if reg_names.iter().any(|n| { + [ + "rax", "rbx", "rcx", "rdx", "rdi", "rsi", "rip", "rsp", "rbp", "r8", "r9", + "r10", "r11", "r12", "r14", "r15", + ] + .contains(&n.to_ascii_lowercase().as_str()) + }) { + bail!("Architecture is x86-64") + } else if reg_names.iter().all(|n| { + ![ + "rax", "rbx", "rcx", "rdx", "rdi", "rsi", "rip", "rsp", "rbp", "r8", "r9", + "r10", "r11", "r12", "r14", "r15", + ] + .contains(&n.to_ascii_lowercase().as_str()) + }) { + trace!( + get_object(CLASS_NAME)?, + "Architecture name is x86-64, but no 'r' registers found. Assuming i386" + ); + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register, + processor_info_v2, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } else { + unreachable!("Register set must either contain a 64-bit register or no registers may be 64-bit"); + } + } else if ["i386", "i486", "i586", "i686", "x86", "ia-32"] + .contains(&arch.to_ascii_lowercase().as_str()) + { + // No i386 processor will actually be x86-64 under the hood + trace!(get_object(CLASS_NAME)?, "Architecture is i386"); + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register: get_interface(cpu)?, + processor_info_v2, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } else { + bail!("Unsupported architecture {arch}"); + } + } + + fn new_unchecked(cpu: *mut ConfObject) -> Result + where + Self: Sized, + { + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register: get_interface(cpu)?, + processor_info_v2: get_interface(cpu)?, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } + + fn cpu(&self) -> *mut ConfObject { + self.cpu + } + + fn disassembler(&mut self) -> &mut dyn TracerDisassembler { + &mut self.disassembler + } + + fn int_register(&mut self) -> &mut IntRegisterInterface { + &mut self.int_register + } + + fn processor_info_v2(&mut self) -> &mut ProcessorInfoV2Interface { + &mut self.processor_info_v2 + } + + fn cpu_instruction_query(&mut self) -> &mut CpuInstructionQueryInterface { + &mut self.cpu_instruction_query + } + + fn cpu_instrumentation_subscribe(&mut self) -> &mut CpuInstrumentationSubscribeInterface { + &mut self.cpu_instrumentation_subscribe + } + + fn cycle(&mut self) -> &mut CycleInterface { + &mut self.cycle + } + + /// Returns the address and whether the address is virtual for the testcase buffer used by + /// the magic start functionality + fn get_magic_start_buffer(&mut self) -> Result { + let number = self + .int_register() + .get_number(Self::DEFAULT_TESTCASE_AREA_REGISTER_NAME.as_raw_cstr()?)?; + trace!( + get_object(CLASS_NAME)?, + "Got number {} for register {}", + number, + Self::DEFAULT_TESTCASE_AREA_REGISTER_NAME + ); + + let logical_address = self.int_register().read(number)?; + trace!( + get_object(CLASS_NAME)?, + "Got logical address {:#x} from register", + logical_address + ); + + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(logical_address, Access::Sim_Access_Read)?; + + // NOTE: -1 signals no valid mapping, but this is equivalent to u64::MAX + if physical_address_block.valid == 0 { + bail!("Invalid linear address found in magic start buffer register {number}: {logical_address:#x}"); + } else { + trace!( + get_object(CLASS_NAME)?, + "Got physical address {:#x} from logical address", + physical_address_block.address + ); + Ok(StartBuffer::builder() + .physical_address(physical_address_block.address) + .virt(physical_address_block.address != logical_address) + .build()) + } + } + + // NOTE: Manual implementation because we must ensure we set the width to 4 bytes + // instead of 6 for misreporting/hinted architectures + fn get_magic_start_size(&mut self) -> Result { + let number = self + .int_register() + .get_number(Self::DEFAULT_TESTCASE_SIZE_REGISTER_NAME.as_raw_cstr()?)?; + trace!( + get_object(CLASS_NAME)?, + "Got number {} for register {}", + number, + Self::DEFAULT_TESTCASE_SIZE_REGISTER_NAME + ); + let logical_address = self.int_register().read(number)?; + trace!( + get_object(CLASS_NAME)?, + "Got logical address {:#x} from register", + logical_address + ); + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(logical_address, Access::Sim_Access_Read)?; + trace!( + get_object(CLASS_NAME)?, + "Got physical address {:#x} from logical address", + physical_address_block.address + ); + + // NOTE: -1 signals no valid mapping, but this is equivalent to u64::MAX + if physical_address_block.valid == 0 { + bail!("Invalid linear address found in magic start buffer register {number}: {logical_address:#x}"); + } + + let size = read_phys_memory(self.cpu(), physical_address_block.address, 4)?; + + trace!( + get_object(CLASS_NAME)?, + "Read start size {size} from start size address" + ); + + Ok(StartSize::builder() + .physical_address(( + physical_address_block.address, + physical_address_block.address != logical_address, + )) + .initial_size(size) + .build()) + } + + fn get_manual_start_buffer(&mut self, buffer_address: GenericAddress) -> Result { + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(buffer_address, Access::Sim_Access_Read)?; + + if physical_address_block.valid == 0 { + bail!( + "Invalid linear address for given buffer address {:#x}", + buffer_address + ); + } else { + trace!( + get_object(CLASS_NAME)?, + "Got physical address {:#x} from logical address for manual start buffer", + physical_address_block.address + ); + Ok(StartBuffer::builder() + .physical_address(physical_address_block.address) + .virt(physical_address_block.address != buffer_address) + .build()) + } + } + + /// Returns the initial start size for non-magic instructions by reading it from a given + /// (possibly virtual) address + fn get_manual_start_size(&mut self, size_address: GenericAddress) -> Result { + let physical_address_block = self + .processor_info_v2() + // NOTE: Do we need to support segmented memory via logical_to_physical? + .logical_to_physical(size_address, Access::Sim_Access_Read)?; + + if physical_address_block.valid == 0 { + bail!("Invalid linear address given for start buffer : {size_address:#x}"); + } + + trace!( + get_object(CLASS_NAME)?, + "Got physical address {:#x} from logical address for manual start buffer size", + physical_address_block.address + ); + + let size = read_phys_memory(self.cpu(), physical_address_block.address, 4)?; + + trace!( + get_object(CLASS_NAME)?, + "Read start size {size} from start size address" + ); + + Ok(StartSize::builder() + .physical_address(( + physical_address_block.address, + physical_address_block.address != size_address, + )) + .initial_size(size) + .build()) + } + + /// Writes the buffer with a testcase of a certain size + fn write_start( + &mut self, + testcase: &[u8], + buffer: &StartBuffer, + size: &StartSize, + ) -> Result<()> { + let mut testcase = testcase.to_vec(); + // NOTE: We have to handle both riscv64 and riscv32 here + + let initial_size = + size.initial_size() + .ok_or_else(|| anyhow!("Expected initial size for start"))? as usize; + testcase.truncate(initial_size); + + testcase.chunks(4).try_for_each(|c| { + trace!( + get_object(CLASS_NAME)?, + "Writing testcase bytes {:?} to physical memory {:#x}", + c, + buffer.physical_address + ); + write_phys_memory(self.cpu(), buffer.physical_address, c) + })?; + + let value = testcase + .len() + .to_le_bytes() + .iter() + .take(4) + .cloned() + .collect::>(); + + if let Some((address, _)) = size.physical_address { + trace!( + get_object(CLASS_NAME)?, + "Writing testcase size {:?} to physical memory {:#x}", + &value, + address + ); + write_phys_memory(self.cpu(), address, value.as_slice())?; + } + + Ok(()) + } + fn trace_pc(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + let instruction_bytes = self + .cpu_instruction_query + .get_instruction_bytes(instruction_query)?; + self.disassembler.disassemble(unsafe { + from_raw_parts(instruction_bytes.data, instruction_bytes.size) + })?; + if self.disassembler.last_was_call() + || self.disassembler.last_was_control_flow() + || self.disassembler.last_was_ret() + { + Ok(TraceEntry::builder() + .edge(self.processor_info_v2.get_program_counter()?) + .build()) + } else { + Ok(TraceEntry::default()) + } + } + + fn trace_cmp(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + let instruction_bytes = self + .cpu_instruction_query + .get_instruction_bytes(instruction_query)?; + self.disassembler.disassemble(unsafe { + from_raw_parts(instruction_bytes.data, instruction_bytes.size) + })?; + if self.disassembler.last_was_cmp() { + let pc = self.processor_info_v2.get_program_counter()?; + let mut cmp_values = Vec::new(); + + for expr in self.disassembler.cmp() { + if let Ok(value) = self.simplify(&expr) { + cmp_values.push(value); + } + } + + let cmp_value = if let (Some(l), Some(r)) = (cmp_values.first(), cmp_values.get(1)) { + match (l, r) { + (CmpValue::U8(l), CmpValue::U8(r)) => Some(CmpValues::U8((*l, *r))), + (CmpValue::I8(l), CmpValue::I8(r)) => Some(CmpValues::U8(( + u8::from_le_bytes(l.to_le_bytes()), + u8::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U16(l), CmpValue::U16(r)) => Some(CmpValues::U16((*l, *r))), + (CmpValue::I16(l), CmpValue::I16(r)) => Some(CmpValues::U16(( + u16::from_le_bytes(l.to_le_bytes()), + u16::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U32(l), CmpValue::U32(r)) => Some(CmpValues::U32((*l, *r))), + (CmpValue::I32(l), CmpValue::I32(r)) => Some(CmpValues::U32(( + u32::from_le_bytes(l.to_le_bytes()), + u32::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U64(l), CmpValue::U64(r)) => Some(CmpValues::U64((*l, *r))), + (CmpValue::I64(l), CmpValue::I64(r)) => Some(CmpValues::U64(( + u64::from_le_bytes(l.to_le_bytes()), + u64::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::Expr(_), CmpValue::Expr(_)) => None, + _ => None, + } + } else { + None + }; + + Ok(TraceEntry::builder() + .cmp(( + pc, + self.disassembler.cmp_type(), + cmp_value.ok_or_else(|| anyhow!("No cmp value available"))?, + )) + .build()) + } else { + Ok(TraceEntry::default()) + } + } +} +impl X86ArchitectureOperations { + fn simplify(&mut self, expr: &CmpExpr) -> Result { + match expr { + CmpExpr::Deref((expr, width)) => { + let v = self.simplify(expr)?; + + match v { + CmpValue::U64(a) => { + let address = self + .processor_info_v2 + .logical_to_physical(a, Access::Sim_Access_Read)?; + let casted = match width { + Some(1) => CmpValue::U8( + read_phys_memory(self.cpu, address.address, size_of::() as i32) + .map_err(|e| { + anyhow!("Error reading bytes from {:#x}: {}", a, e) + })? + .to_le_bytes()[0], + ), + Some(2) => CmpValue::U16(u16::from_le_bytes( + read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + ) + .map_err(|e| anyhow!("Error reading bytes from {:#x}: {}", a, e))? + .to_le_bytes()[0..size_of::()] + .try_into()?, + )), + Some(4) => CmpValue::U32(u32::from_le_bytes( + read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + ) + .map_err(|e| anyhow!("Error reading bytes from {:#x}: {}", a, e))? + .to_le_bytes()[0..size_of::()] + .try_into()?, + )), + Some(8) => CmpValue::U64(u64::from_le_bytes( + read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + ) + .map_err(|e| anyhow!("Error reading bytes from {:#x}: {}", a, e))? + .to_le_bytes(), + )), + _ => bail!("Can't cast to non-power-of-2 width {:?}", width), + }; + Ok(casted) + } + _ => bail!("Can't dereference non-address"), + } + } + CmpExpr::Reg((name, width)) => { + let reg_number = self.int_register.get_number(name.as_raw_cstr()?)?; + let value = self.int_register.read(reg_number).map_err(|e| { + anyhow!("Couldn't read register value for register {}: {}", name, e) + })?; + + let casted = match width { + 1 => CmpValue::U8(value.to_le_bytes()[0]), + 2 => CmpValue::U16(u16::from_le_bytes( + value.to_le_bytes()[..size_of::()] + .try_into() + .map_err(|e| anyhow!("Error converting to u32 bytes: {}", e))?, + )), + 4 => CmpValue::U32(u32::from_le_bytes( + value.to_le_bytes()[..size_of::()] + .try_into() + .map_err(|e| anyhow!("Error converting to u32 bytes: {}", e))?, + )), + 8 => CmpValue::U64(u64::from_le_bytes(value.to_le_bytes())), + _ => bail!("Can't cast to non-power-of-2 width {}", width), + }; + Ok(casted) + } + CmpExpr::Mul((l, r)) => { + let lv = self.simplify(l)?; + let rv = self.simplify(r)?; + + match (lv, rv) { + (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_mul(ru))), + (CmpValue::U8(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U8((lu as i32).wrapping_mul(ru as i32) as u8)) + } + (CmpValue::U8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U8((lu as i32).wrapping_mul(ru as i32) as u8)) + } + (CmpValue::U8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U8((lu as i32).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U8((lu as i64).wrapping_mul(ru) as u8)) + } + (CmpValue::I8(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_mul(ru as i16) as i8)) + } + (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_mul(ru))), + (CmpValue::I8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_mul(ru as i32) as i8)) + } + (CmpValue::I8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_mul(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) + } + (CmpValue::I8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) + } + (CmpValue::I8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) + } + (CmpValue::I8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru) as i8)) + } + (CmpValue::U16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_mul(ru as u16))) + } + (CmpValue::U16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U16((lu as i32).wrapping_mul(ru as i32) as u16)) + } + (CmpValue::U16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_mul(ru))) + } + (CmpValue::U16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U16((lu as i32).wrapping_mul(ru as i32) as u16)) + } + (CmpValue::U16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_mul(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U16((lu as i32).wrapping_mul(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_mul(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U16((lu as i64).wrapping_mul(ru) as u16)) + } + (CmpValue::I16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_mul(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_mul(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_mul(ru as i32) as i16)) + } + (CmpValue::I16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_mul(ru))) + } + (CmpValue::I16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_mul(ru as i64) as i16)) + } + (CmpValue::I16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_mul(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_mul(ru as i64) as i16)) + } + (CmpValue::I16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_mul(ru) as i16)) + } + (CmpValue::U32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_mul(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) + } + (CmpValue::U32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_mul(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) + } + (CmpValue::U32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_mul(ru))) + } + (CmpValue::U32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) + } + (CmpValue::U32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_mul(ru) as u32)) + } + (CmpValue::U32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru) as u32)) + } + (CmpValue::I32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_mul(ru as i64) as i32)) + } + (CmpValue::I32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru))) + } + (CmpValue::I32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_mul(ru as i64) as i32)) + } + (CmpValue::I32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_mul(ru) as i32)) + } + (CmpValue::U64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) + } + (CmpValue::U64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) + } + (CmpValue::U64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) + } + (CmpValue::U64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru))) + } + (CmpValue::U64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru) as u64)) + } + (CmpValue::I64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru))) + } + _ => bail!("Cannot multiply non-integral types"), + } + } + CmpExpr::Add((l, r)) => { + let lv = self.simplify(l)?; + let rv = self.simplify(r)?; + + match (lv, rv) { + (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_add(ru))), + (CmpValue::U8(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U8(lu.wrapping_add_signed(ru))) + } + (CmpValue::U8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_add_signed(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_add_signed(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_add_signed(ru) as u8)) + } + (CmpValue::I8(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I8(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_add(ru))), + (CmpValue::I8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_add(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_add(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_add(ru) as i8)) + } + (CmpValue::U16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add(ru as u16))) + } + (CmpValue::U16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add_signed(ru as i16))) + } + (CmpValue::U16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add(ru))) + } + (CmpValue::U16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add_signed(ru))) + } + (CmpValue::U16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_add(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_add_signed(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_add(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_add_signed(ru) as u16)) + } + (CmpValue::I16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru as u16))) + } + (CmpValue::I16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add(ru))) + } + (CmpValue::I16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_add_unsigned(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_add(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_add_unsigned(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_add(ru) as i16)) + } + (CmpValue::U32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) + } + (CmpValue::U32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) + } + (CmpValue::U32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru))) + } + (CmpValue::U32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru))) + } + (CmpValue::U32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_add(ru) as u32)) + } + (CmpValue::U32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_add_signed(ru) as u32)) + } + (CmpValue::I32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) + } + (CmpValue::I32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) + } + (CmpValue::I32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru))) + } + (CmpValue::I32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_add_unsigned(ru) as i32)) + } + (CmpValue::I32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_add(ru) as i32)) + } + (CmpValue::U64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru))) + } + (CmpValue::U64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru))) + } + (CmpValue::I64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru))) + } + _ => bail!("Cannot multiply non-integral types"), + } + } + CmpExpr::U8(_) + | CmpExpr::I8(_) + | CmpExpr::U16(_) + | CmpExpr::I16(_) + | CmpExpr::U32(_) + | CmpExpr::I32(_) + | CmpExpr::U64(_) + | CmpExpr::I64(_) => Ok(CmpValue::try_from(expr)?), + CmpExpr::Addr(a) => { + let address = self + .processor_info_v2 + .logical_to_physical(*a, Access::Sim_Access_Read)?; + let bytes: [u8; 8] = + read_phys_memory(self.cpu, address.address, size_of::() as i32)? + .to_le_bytes(); + Ok(CmpValue::U64(u64::from_le_bytes(bytes))) + } + } + } +} + +pub struct Disassembler { + decoder: InstDecoder, + last: Option, +} + +impl Disassembler { + pub fn new() -> Self { + Self { + decoder: InstDecoder::default(), + last: None, + } + } +} + +impl Default for Disassembler { + fn default() -> Self { + Self::new() + } +} + +impl TryFrom<(&Operand, Option)> for CmpExpr { + type Error = Error; + + fn try_from(value: (&Operand, Option)) -> Result { + let width = value.1; + let value = value.0; + + let expr = match value { + Operand::ImmediateI8(i) => CmpExpr::I8(*i), + Operand::ImmediateU8(u) => CmpExpr::U8(*u), + Operand::ImmediateI16(i) => CmpExpr::I16(*i), + Operand::ImmediateU16(u) => CmpExpr::U16(*u), + Operand::ImmediateI32(i) => CmpExpr::I32(*i), + Operand::ImmediateU32(u) => CmpExpr::U32(*u), + Operand::Register(r) => CmpExpr::Reg((r.name().to_string(), r.width())), + Operand::DisplacementU32(d) => CmpExpr::Addr(*d as u64), + Operand::RegDeref(r) => CmpExpr::Deref(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + width, + )), + Operand::RegDisp(r, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + Operand::RegScale(r, s) => CmpExpr::Deref(( + Box::new(CmpExpr::Mul(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + width, + )), + Operand::RegIndexBase(r, i) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + ))), + width, + )), + Operand::RegIndexBaseDisp(r, i, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + ))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + Operand::RegScaleDisp(r, s, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Mul(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + Operand::RegIndexBaseScale(r, i, s) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + ))), + width, + )), + Operand::RegIndexBaseScaleDisp(r, i, s, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + ))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + _ => { + bail!("Unsupported operand type for cmplog"); + } + }; + Ok(expr) + } +} + +impl TracerDisassembler for Disassembler { + /// Check if an instruction is a control flow instruction + fn last_was_control_flow(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::JMP + | Opcode::JA + | Opcode::JB + | Opcode::JG + | Opcode::JGE + | Opcode::JL + | Opcode::JLE + | Opcode::JNA + | Opcode::JNB + | Opcode::JNO + | Opcode::JNP + | Opcode::JNS + | Opcode::JNZ + | Opcode::JO + | Opcode::JP + | Opcode::JS + | Opcode::JZ + | Opcode::LOOP + | Opcode::LOOPNZ + | Opcode::LOOPZ + ); + } + + false + } + + /// Check if an instruction is a call instruction + fn last_was_call(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::CALL + | Opcode::CALLF + | Opcode::INT + | Opcode::INTO + | Opcode::SYSCALL + | Opcode::SYSENTER + ); + } + + false + } + + /// Check if an instruction is a ret instruction + fn last_was_ret(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::RETF + | Opcode::RETURN + | Opcode::IRET + | Opcode::IRETD + | Opcode::IRETQ + | Opcode::SYSRET + | Opcode::SYSEXIT + ); + } + + false + } + + /// Check if an instruction is a cmp instruction + fn last_was_cmp(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::CMP + | Opcode::CMPPD + | Opcode::CMPS + | Opcode::CMPSD + | Opcode::CMPSS + | Opcode::CMPXCHG16B + | Opcode::COMISD + | Opcode::COMISS + | Opcode::FCOM + | Opcode::FCOMI + | Opcode::FCOMIP + | Opcode::FCOMP + | Opcode::FCOMPP + | Opcode::FICOM + | Opcode::FICOMP + | Opcode::FTST + | Opcode::FUCOM + | Opcode::FUCOMI + | Opcode::FUCOMIP + | Opcode::FUCOMP + | Opcode::FXAM + | Opcode::PCMPEQB + | Opcode::PCMPEQD + | Opcode::PCMPEQW + | Opcode::PCMPGTB + | Opcode::PCMPGTD + | Opcode::PCMPGTQ + | Opcode::PCMPGTW + | Opcode::PMAXSB + | Opcode::PMAXSD + | Opcode::PMAXUD + | Opcode::PMAXUW + | Opcode::PMINSB + | Opcode::PMINSD + | Opcode::PMINUD + | Opcode::PMINUW + | Opcode::TEST + | Opcode::UCOMISD + | Opcode::UCOMISS + | Opcode::VPCMPB + | Opcode::VPCMPD + | Opcode::VPCMPQ + | Opcode::VPCMPUB + | Opcode::VPCMPUD + | Opcode::VPCMPUQ + | Opcode::VPCMPUW + | Opcode::VPCMPW + ); + } + + false + } + + fn disassemble(&mut self, bytes: &[u8]) -> Result<()> { + if let Ok(insn) = self.decoder.decode_slice(bytes) { + self.last = Some(insn); + } else { + bail!("Could not disassemble {:?}", bytes); + } + + Ok(()) + } + + fn cmp(&self) -> Vec { + let mut cmp_exprs = Vec::new(); + if self.last_was_cmp() { + if let Some(last) = self.last { + for op_idx in 0..last.operand_count() { + let op = last.operand(op_idx); + let width = if let Some(width) = op.width() { + Some(width) + } else if let Some(width) = last.mem_size() { + width.bytes_size() + } else { + None + }; + if let Ok(expr) = CmpExpr::try_from((&op, width)) { + cmp_exprs.push(expr); + } + } + } + } + cmp_exprs + } + + fn cmp_type(&self) -> Vec { + if self.last_was_cmp() { + if let Some(last) = self.last { + if let Some(condition) = last.opcode().condition() { + return match condition { + // Overflow + ConditionCode::O => vec![], + // No Overflow + ConditionCode::NO => vec![], + // Below + ConditionCode::B => vec![CmpType::Lesser], + // Above or Equal + ConditionCode::AE => vec![CmpType::Greater, CmpType::Equal], + // Zero + ConditionCode::Z => vec![], + // Not Zero + ConditionCode::NZ => vec![], + // Above + ConditionCode::A => vec![CmpType::Greater], + // Below or Equal + ConditionCode::BE => vec![CmpType::Lesser, CmpType::Equal], + // Signed + ConditionCode::S => vec![], + // Not Signed + ConditionCode::NS => vec![], + // Parity + ConditionCode::P => vec![], + // No Parity + ConditionCode::NP => vec![], + // Less + ConditionCode::L => vec![CmpType::Lesser], + // Greater or Equal + ConditionCode::GE => vec![CmpType::Greater, CmpType::Equal], + // Greater + ConditionCode::G => vec![CmpType::Greater], + // Less or Equal + ConditionCode::LE => vec![CmpType::Lesser, CmpType::Equal], + }; + } + } + } + + vec![] + } +} diff --git a/modules/tsffs/src/tsffs/src/arch/x86_64.rs b/modules/tsffs/src/tsffs/src/arch/x86_64.rs new file mode 100644 index 00000000..021039f7 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/arch/x86_64.rs @@ -0,0 +1,1118 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use std::{ffi::CStr, mem::size_of, slice::from_raw_parts}; + +use crate::{ + tracer::{CmpExpr, CmpType, CmpValue, TraceEntry}, + traits::TracerDisassembler, +}; +use anyhow::{anyhow, bail, Error, Result}; +use libafl::prelude::CmpValues; +use raw_cstr::AsRawCstr; +use simics::api::{ + get_interface, read_phys_memory, sys::instruction_handle_t, Access, ConfObject, + CpuInstructionQueryInterface, CpuInstrumentationSubscribeInterface, CycleInterface, + IntRegisterInterface, ProcessorInfoV2Interface, +}; +use yaxpeax_x86::amd64::{ConditionCode, InstDecoder, Instruction, Opcode, Operand}; + +use super::ArchitectureOperations; + +/// The default register the fuzzer expects to contain a pointer to an area to write +/// each testcase into when using an in-target harness +pub const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &str = "rdi"; +/// The default register the fuzzer expects to contain a pointer to a variable, +/// initially containing the maximum size of the area pointed to by +/// `DEFAULT_TESTCASE_AREA_REGISTER_NAME`, which will be written each fuzzer execution +/// to contain the actual size of the current testcase. +pub const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &str = "rsi"; + +pub mod exceptions { + /// Division errors generated by DIV and IDIV instructions + pub const DIVIDE_ERROR: i64 = 0; + pub const DEBUG: i64 = 1; + pub const NMI_INTERRUPT: i64 = 2; + /// INT3 instructions + pub const BREAKPOINT: i64 = 3; + /// INT0 instructions + pub const OVERFLOW: i64 = 4; + /// BOUND instruction + pub const BOUND: i64 = 5; + /// UD instruction or reserved opcode + pub const INVALID_OPCODE: i64 = 6; + /// Floating point or WAIT/FWAIT instruction (no math coprocessor) + pub const DEVICE_NOT_AVAILABLE: i64 = 7; + /// Any instruction that can generate an exception, NMI, or INTR can cause a double fault, + /// i.e. on page miss twice. + pub const DOUBLE_FAULT: i64 = 8; + /// Floating point instruction overrun coprocessor segment + pub const COPROCESSOR_SEGMENT_OVERRUN: i64 = 9; + /// Invalid task switch or TSS access + pub const INVALID_TSS: i64 = 10; + /// Error loading segment registers or accessing system segments + pub const SEGMENT_NOT_PRESENT: i64 = 11; + /// Stack operations and SS register loads in segmented operation mode + pub const STACK_SEGMENT_FAULT: i64 = 12; + /// Error during memory reference or other protection check + pub const GENERAL_PROTECTION: i64 = 13; + /// Page fault + pub const PAGE_FAULT: i64 = 14; + // NOTE: 15 reserved + /// Error in floating point math or WAIT/FWAIT instruction + pub const FLOATING_POINT_ERROR: i64 = 16; + /// Error in data alignment + pub const ALIGNMENT_CHECK: i64 = 17; + /// Error code and source are model dependent + pub const MACHINE_CHECK: i64 = 18; + /// Exception in SIMD floating point math + pub const SIMD_FLOATING_POINT_EXCEPTION: i64 = 19; + /// Extended page table/VT exception + pub const VIRTUALIZATION_EXCEPTION: i64 = 20; + /// Missing ENDBRANCH instruction at the target of an indirect call or jump. Generated by + /// RET, IRET, RSTORSSP, and SETSSBSY instruction when CET is enabled. + pub const CONTROL_PROTECTION_EXCEPTION: i64 = 21; + // NOTE: 22-31 reserved + // NOTE: 32-255 are maskable interrupts. + + #[repr(i64)] + pub enum Exception { + DivideError = 1, + Debug, + NmiInterrupt, + Breakpoint, + Overflow, + Bound, + InvalidOpcode, + DeviceNotAvailable, + DoubleFault, + CoprocessorSegmentOverrun, + InvalidTss, + SegmentNotPresent, + StackSegmentFault, + GeneralProtection, + PageFault, + Reserved0, + FloatingPointError, + AlignmentCheck, + MachineCheck, + SimdFloatingPointException, + VirtualizationException, + ControlProtectionException, + Other(i64), + } + + impl From for i64 { + fn from(value: Exception) -> Self { + match value { + Exception::Other(i) => i, + _ => i64::from(value), + } + } + } +} + +pub struct X86_64ArchitectureOperations { + cpu: *mut ConfObject, + disassembler: Disassembler, + int_register: IntRegisterInterface, + processor_info_v2: ProcessorInfoV2Interface, + cpu_instruction_query: CpuInstructionQueryInterface, + cpu_instrumentation_subscribe: CpuInstrumentationSubscribeInterface, + cycle: CycleInterface, +} + +impl ArchitectureOperations for X86_64ArchitectureOperations { + const DEFAULT_TESTCASE_AREA_REGISTER_NAME: &'static str = DEFAULT_TESTCASE_AREA_REGISTER_NAME; + const DEFAULT_TESTCASE_SIZE_REGISTER_NAME: &'static str = DEFAULT_TESTCASE_SIZE_REGISTER_NAME; + + fn new(cpu: *mut ConfObject) -> Result { + let mut processor_info_v2: ProcessorInfoV2Interface = get_interface(cpu)?; + + let arch = unsafe { CStr::from_ptr(processor_info_v2.architecture()?) } + .to_str()? + .to_string(); + + if arch == "x86-64" { + // Check if the arch is actually x86-64, some x86-64 processors are actually + // i386 under the hood + let mut int_register: IntRegisterInterface = get_interface(cpu)?; + let regs: Vec = int_register.all_registers()?.try_into()?; + let reg_names: Vec = regs + .iter() + .map(|r| { + int_register + .get_name(*r as i32) + .map_err(|e| anyhow!("Failed to get register name: {e}")) + .and_then(|n| { + unsafe { CStr::from_ptr(n) } + .to_str() + .map(|s| s.to_string()) + .map_err(|e| anyhow!("Failed to convert string: {e}")) + }) + }) + .collect::>>()?; + + if reg_names.iter().any(|n| { + [ + "rax", "rbx", "rcx", "rdx", "rdi", "rsi", "rip", "rsp", "rbp", "r8", "r9", + "r10", "r11", "r12", "r14", "r15", + ] + .contains(&n.to_ascii_lowercase().as_str()) + }) { + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register, + processor_info_v2, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } else if reg_names.iter().all(|n| { + ![ + "rax", "rbx", "rcx", "rdx", "rdi", "rsi", "rip", "rsp", "rbp", "r8", "r9", + "r10", "r11", "r12", "r14", "r15", + ] + .contains(&n.to_ascii_lowercase().as_str()) + }) { + bail!("Architecture reports x86-64 but is not actually x86-64") + } else { + unreachable!("Register set must either contain a 64-bit register or no registers may be 64-bit"); + } + } else { + bail!("Architecture {arch} is not x86-64"); + } + } + + fn new_unchecked(cpu: *mut ConfObject) -> Result + where + Self: Sized, + { + Ok(Self { + cpu, + disassembler: Disassembler::new(), + int_register: get_interface(cpu)?, + processor_info_v2: get_interface(cpu)?, + cpu_instruction_query: get_interface(cpu)?, + cpu_instrumentation_subscribe: get_interface(cpu)?, + cycle: get_interface(cpu)?, + }) + } + + fn cpu(&self) -> *mut ConfObject { + self.cpu + } + + fn disassembler(&mut self) -> &mut dyn TracerDisassembler { + &mut self.disassembler + } + + fn int_register(&mut self) -> &mut IntRegisterInterface { + &mut self.int_register + } + + fn processor_info_v2(&mut self) -> &mut ProcessorInfoV2Interface { + &mut self.processor_info_v2 + } + + fn cpu_instruction_query(&mut self) -> &mut CpuInstructionQueryInterface { + &mut self.cpu_instruction_query + } + + fn cpu_instrumentation_subscribe(&mut self) -> &mut CpuInstrumentationSubscribeInterface { + &mut self.cpu_instrumentation_subscribe + } + + fn cycle(&mut self) -> &mut CycleInterface { + &mut self.cycle + } + + fn trace_pc(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + let instruction_bytes = self + .cpu_instruction_query + .get_instruction_bytes(instruction_query)?; + self.disassembler.disassemble(unsafe { + from_raw_parts(instruction_bytes.data, instruction_bytes.size) + })?; + if self.disassembler.last_was_call() + || self.disassembler.last_was_control_flow() + || self.disassembler.last_was_ret() + { + Ok(TraceEntry::builder() + .edge(self.processor_info_v2.get_program_counter()?) + .build()) + } else { + Ok(TraceEntry::default()) + } + } + + fn trace_cmp(&mut self, instruction_query: *mut instruction_handle_t) -> Result { + let instruction_bytes = self + .cpu_instruction_query + .get_instruction_bytes(instruction_query)?; + self.disassembler.disassemble(unsafe { + from_raw_parts(instruction_bytes.data, instruction_bytes.size) + })?; + if self.disassembler.last_was_cmp() { + let pc = self.processor_info_v2.get_program_counter()?; + let mut cmp_values = Vec::new(); + + for expr in self.disassembler.cmp() { + if let Ok(value) = self.simplify(&expr) { + cmp_values.push(value); + } + } + + let cmp_value = if let (Some(l), Some(r)) = (cmp_values.first(), cmp_values.get(1)) { + match (l, r) { + (CmpValue::U8(l), CmpValue::U8(r)) => Some(CmpValues::U8((*l, *r))), + (CmpValue::I8(l), CmpValue::I8(r)) => Some(CmpValues::U8(( + u8::from_le_bytes(l.to_le_bytes()), + u8::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U16(l), CmpValue::U16(r)) => Some(CmpValues::U16((*l, *r))), + (CmpValue::I16(l), CmpValue::I16(r)) => Some(CmpValues::U16(( + u16::from_le_bytes(l.to_le_bytes()), + u16::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U32(l), CmpValue::U32(r)) => Some(CmpValues::U32((*l, *r))), + (CmpValue::I32(l), CmpValue::I32(r)) => Some(CmpValues::U32(( + u32::from_le_bytes(l.to_le_bytes()), + u32::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::U64(l), CmpValue::U64(r)) => Some(CmpValues::U64((*l, *r))), + (CmpValue::I64(l), CmpValue::I64(r)) => Some(CmpValues::U64(( + u64::from_le_bytes(l.to_le_bytes()), + u64::from_le_bytes(r.to_le_bytes()), + ))), + (CmpValue::Expr(_), CmpValue::Expr(_)) => None, + _ => None, + } + } else { + None + }; + + Ok(TraceEntry::builder() + .cmp(( + pc, + self.disassembler.cmp_type(), + cmp_value.ok_or_else(|| anyhow!("No cmp value available"))?, + )) + .build()) + } else { + Ok(TraceEntry::default()) + } + } +} + +impl X86_64ArchitectureOperations { + fn simplify(&mut self, expr: &CmpExpr) -> Result { + match expr { + CmpExpr::Deref((expr, width)) => { + let v = self.simplify(expr)?; + + match v { + CmpValue::U64(a) => { + let address = self + .processor_info_v2 + .logical_to_physical(a, Access::Sim_Access_Read)?; + let casted = match width { + Some(1) => CmpValue::U8( + read_phys_memory(self.cpu, address.address, size_of::() as i32) + .map_err(|e| { + anyhow!("Error reading bytes from {:#x}: {}", a, e) + })? + .to_le_bytes()[0], + ), + Some(2) => CmpValue::U16(u16::from_le_bytes( + read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + ) + .map_err(|e| anyhow!("Error reading bytes from {:#x}: {}", a, e))? + .to_le_bytes()[0..size_of::()] + .try_into()?, + )), + Some(4) => CmpValue::U32(u32::from_le_bytes( + read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + ) + .map_err(|e| anyhow!("Error reading bytes from {:#x}: {}", a, e))? + .to_le_bytes()[0..size_of::()] + .try_into()?, + )), + Some(8) => CmpValue::U64(u64::from_le_bytes( + read_phys_memory( + self.cpu, + address.address, + size_of::() as i32, + ) + .map_err(|e| anyhow!("Error reading bytes from {:#x}: {}", a, e))? + .to_le_bytes(), + )), + _ => bail!("Can't cast to non-power-of-2 width {:?}", width), + }; + Ok(casted) + } + _ => bail!("Can't dereference non-address"), + } + } + CmpExpr::Reg((name, width)) => { + let reg_number = self.int_register.get_number(name.as_raw_cstr()?)?; + let value = self.int_register.read(reg_number).map_err(|e| { + anyhow!("Couldn't read register value for register {}: {}", name, e) + })?; + + let casted = match width { + 1 => CmpValue::U8(value.to_le_bytes()[0]), + 2 => CmpValue::U16(u16::from_le_bytes( + value.to_le_bytes()[..size_of::()] + .try_into() + .map_err(|e| anyhow!("Error converting to u32 bytes: {}", e))?, + )), + 4 => CmpValue::U32(u32::from_le_bytes( + value.to_le_bytes()[..size_of::()] + .try_into() + .map_err(|e| anyhow!("Error converting to u32 bytes: {}", e))?, + )), + 8 => CmpValue::U64(u64::from_le_bytes(value.to_le_bytes())), + _ => bail!("Can't cast to non-power-of-2 width {}", width), + }; + Ok(casted) + } + CmpExpr::Mul((l, r)) => { + let lv = self.simplify(l)?; + let rv = self.simplify(r)?; + + match (lv, rv) { + (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_mul(ru))), + (CmpValue::U8(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U8((lu as i32).wrapping_mul(ru as i32) as u8)) + } + (CmpValue::U8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U8((lu as i32).wrapping_mul(ru as i32) as u8)) + } + (CmpValue::U8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U8((lu as i32).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_mul(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U8((lu as i64).wrapping_mul(ru) as u8)) + } + (CmpValue::I8(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_mul(ru as i16) as i8)) + } + (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_mul(ru))), + (CmpValue::I8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_mul(ru as i32) as i8)) + } + (CmpValue::I8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_mul(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) + } + (CmpValue::I8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) + } + (CmpValue::I8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) + } + (CmpValue::I8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_mul(ru) as i8)) + } + (CmpValue::U16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_mul(ru as u16))) + } + (CmpValue::U16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U16((lu as i32).wrapping_mul(ru as i32) as u16)) + } + (CmpValue::U16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_mul(ru))) + } + (CmpValue::U16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U16((lu as i32).wrapping_mul(ru as i32) as u16)) + } + (CmpValue::U16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_mul(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U16((lu as i32).wrapping_mul(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_mul(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U16((lu as i64).wrapping_mul(ru) as u16)) + } + (CmpValue::I16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_mul(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_mul(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_mul(ru as i32) as i16)) + } + (CmpValue::I16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_mul(ru))) + } + (CmpValue::I16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_mul(ru as i64) as i16)) + } + (CmpValue::I16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_mul(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_mul(ru as i64) as i16)) + } + (CmpValue::I16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_mul(ru) as i16)) + } + (CmpValue::U32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_mul(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) + } + (CmpValue::U32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_mul(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) + } + (CmpValue::U32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_mul(ru))) + } + (CmpValue::U32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) + } + (CmpValue::U32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_mul(ru) as u32)) + } + (CmpValue::U32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U32((lu as i64).wrapping_mul(ru) as u32)) + } + (CmpValue::I32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_mul(ru as i64) as i32)) + } + (CmpValue::I32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_mul(ru))) + } + (CmpValue::I32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_mul(ru as i64) as i32)) + } + (CmpValue::I32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_mul(ru) as i32)) + } + (CmpValue::U64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) + } + (CmpValue::U64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) + } + (CmpValue::U64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) + } + (CmpValue::U64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_mul(ru))) + } + (CmpValue::U64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U64((lu as i64).wrapping_mul(ru) as u64)) + } + (CmpValue::I64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_mul(ru))) + } + _ => bail!("Cannot multiply non-integral types"), + } + } + CmpExpr::Add((l, r)) => { + let lv = self.simplify(l)?; + let rv = self.simplify(r)?; + + match (lv, rv) { + (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_add(ru))), + (CmpValue::U8(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U8(lu.wrapping_add_signed(ru))) + } + (CmpValue::U8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U8((lu as u16).wrapping_add_signed(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U8((lu as u32).wrapping_add_signed(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_add(ru) as u8)) + } + (CmpValue::U8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U8((lu as u64).wrapping_add_signed(ru) as u8)) + } + (CmpValue::I8(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I8(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_add(ru))), + (CmpValue::I8(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I8((lu as i16).wrapping_add(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I8((lu as i32).wrapping_add(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_add_unsigned(ru) as i8)) + } + (CmpValue::I8(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I8((lu as i64).wrapping_add(ru) as i8)) + } + (CmpValue::U16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add(ru as u16))) + } + (CmpValue::U16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add_signed(ru as i16))) + } + (CmpValue::U16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add(ru))) + } + (CmpValue::U16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U16(lu.wrapping_add_signed(ru))) + } + (CmpValue::U16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_add(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U16((lu as u32).wrapping_add_signed(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_add(ru) as u16)) + } + (CmpValue::U16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U16((lu as u64).wrapping_add_signed(ru) as u16)) + } + (CmpValue::I16(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru as u16))) + } + (CmpValue::I16(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add(ru as i16))) + } + (CmpValue::I16(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I16(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I16(lu.wrapping_add(ru))) + } + (CmpValue::I16(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_add_unsigned(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I16((lu as i32).wrapping_add(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_add_unsigned(ru) as i16)) + } + (CmpValue::I16(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I16((lu as i64).wrapping_add(ru) as i16)) + } + (CmpValue::U32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) + } + (CmpValue::U32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) + } + (CmpValue::U32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) + } + (CmpValue::U32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add(ru))) + } + (CmpValue::U32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U32(lu.wrapping_add_signed(ru))) + } + (CmpValue::U32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_add(ru) as u32)) + } + (CmpValue::U32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U32((lu as u64).wrapping_add_signed(ru) as u32)) + } + (CmpValue::I32(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) + } + (CmpValue::I32(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) + } + (CmpValue::I32(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) + } + (CmpValue::I32(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I32(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I32(lu.wrapping_add(ru))) + } + (CmpValue::I32(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_add_unsigned(ru) as i32)) + } + (CmpValue::I32(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I32((lu as i64).wrapping_add(ru) as i32)) + } + (CmpValue::U64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) + } + (CmpValue::U64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) + } + (CmpValue::U64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add(ru))) + } + (CmpValue::U64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::U64(lu.wrapping_add_signed(ru))) + } + (CmpValue::I64(lu), CmpValue::U8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I8(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I16(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) + } + (CmpValue::I64(lu), CmpValue::I32(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) + } + (CmpValue::I64(lu), CmpValue::U64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru))) + } + (CmpValue::I64(lu), CmpValue::I64(ru)) => { + Ok(CmpValue::I64(lu.wrapping_add(ru))) + } + _ => bail!("Cannot multiply non-integral types"), + } + } + CmpExpr::U8(_) + | CmpExpr::I8(_) + | CmpExpr::U16(_) + | CmpExpr::I16(_) + | CmpExpr::U32(_) + | CmpExpr::I32(_) + | CmpExpr::U64(_) + | CmpExpr::I64(_) => Ok(CmpValue::try_from(expr)?), + CmpExpr::Addr(a) => { + let address = self + .processor_info_v2 + .logical_to_physical(*a, Access::Sim_Access_Read)?; + let bytes: [u8; 8] = + read_phys_memory(self.cpu, address.address, size_of::() as i32)? + .to_le_bytes(); + Ok(CmpValue::U64(u64::from_le_bytes(bytes))) + } + } + } +} + +pub struct Disassembler { + decoder: InstDecoder, + last: Option, +} + +impl Disassembler { + pub fn new() -> Self { + Self { + decoder: InstDecoder::default(), + last: None, + } + } +} + +impl Default for Disassembler { + fn default() -> Self { + Self::new() + } +} + +impl TryFrom<(&Operand, Option)> for CmpExpr { + type Error = Error; + + fn try_from(value: (&Operand, Option)) -> Result { + let width = value.1; + let value = value.0; + + let expr = match value { + Operand::ImmediateI8(i) => CmpExpr::I8(*i), + Operand::ImmediateU8(u) => CmpExpr::U8(*u), + Operand::ImmediateI16(i) => CmpExpr::I16(*i), + Operand::ImmediateU16(u) => CmpExpr::U16(*u), + Operand::ImmediateI32(i) => CmpExpr::I32(*i), + Operand::ImmediateU32(u) => CmpExpr::U32(*u), + Operand::ImmediateI64(i) => CmpExpr::I64(*i), + Operand::ImmediateU64(u) => CmpExpr::U64(*u), + Operand::Register(r) => CmpExpr::Reg((r.name().to_string(), r.width())), + Operand::DisplacementU32(d) => CmpExpr::Addr(*d as u64), + Operand::DisplacementU64(d) => CmpExpr::Addr(*d), + Operand::RegDeref(r) => CmpExpr::Deref(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + width, + )), + Operand::RegDisp(r, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + Operand::RegScale(r, s) => CmpExpr::Deref(( + Box::new(CmpExpr::Mul(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + width, + )), + Operand::RegIndexBase(r, i) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + ))), + width, + )), + Operand::RegIndexBaseDisp(r, i, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + ))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + Operand::RegScaleDisp(r, s, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Mul(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + Operand::RegIndexBaseScale(r, i, s) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + ))), + width, + )), + Operand::RegIndexBaseScaleDisp(r, i, s, d) => CmpExpr::Deref(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), + Box::new(CmpExpr::Add(( + Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), + Box::new(CmpExpr::U8(*s)), + ))), + ))), + Box::new(CmpExpr::I32(*d)), + ))), + width, + )), + _ => { + bail!("Unsupported operand type for cmplog"); + } + }; + Ok(expr) + } +} + +impl TracerDisassembler for Disassembler { + /// Check if an instruction is a control flow instruction + fn last_was_control_flow(&self) -> bool { + if let Some(last) = self.last { + if matches!( + last.opcode(), + Opcode::JMP + | Opcode::JA + | Opcode::JB + | Opcode::JRCXZ + | Opcode::JG + | Opcode::JGE + | Opcode::JL + | Opcode::JLE + | Opcode::JNA + | Opcode::JNB + | Opcode::JNO + | Opcode::JNP + | Opcode::JNS + | Opcode::JNZ + | Opcode::JO + | Opcode::JP + | Opcode::JS + | Opcode::JZ + | Opcode::LOOP + | Opcode::LOOPNZ + | Opcode::LOOPZ + ) { + return true; + } + } + false + } + + /// Check if an instruction is a call instruction (loosely defined, this includes interrupts) + fn last_was_call(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::CALL + | Opcode::CALLF + | Opcode::INT + | Opcode::INTO + | Opcode::SYSCALL + | Opcode::SYSENTER + ); + } + + false + } + + /// Check if an instruction is a ret instruction (loosely defined, this includes interrupts) + fn last_was_ret(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::RETF + | Opcode::RETURN + | Opcode::IRET + | Opcode::IRETD + | Opcode::IRETQ + | Opcode::SYSRET + | Opcode::SYSEXIT + ); + } + + false + } + + /// Check if an instruction is a cmp instruction + fn last_was_cmp(&self) -> bool { + if let Some(last) = self.last { + return matches!( + last.opcode(), + Opcode::CMP + | Opcode::CMPPD + | Opcode::CMPS + | Opcode::CMPSD + | Opcode::CMPSS + | Opcode::CMPXCHG16B + | Opcode::COMISD + | Opcode::COMISS + | Opcode::FCOM + | Opcode::FCOMI + | Opcode::FCOMIP + | Opcode::FCOMP + | Opcode::FCOMPP + | Opcode::FICOM + | Opcode::FICOMP + | Opcode::FTST + | Opcode::FUCOM + | Opcode::FUCOMI + | Opcode::FUCOMIP + | Opcode::FUCOMP + | Opcode::FXAM + | Opcode::PCMPEQB + | Opcode::PCMPEQD + | Opcode::PCMPEQW + | Opcode::PCMPGTB + | Opcode::PCMPGTD + | Opcode::PCMPGTQ + | Opcode::PCMPGTW + | Opcode::PMAXSB + | Opcode::PMAXSD + | Opcode::PMAXUD + | Opcode::PMAXUW + | Opcode::PMINSB + | Opcode::PMINSD + | Opcode::PMINUD + | Opcode::PMINUW + | Opcode::TEST + | Opcode::UCOMISD + | Opcode::UCOMISS + | Opcode::VPCMPB + | Opcode::VPCMPD + | Opcode::VPCMPQ + | Opcode::VPCMPUB + | Opcode::VPCMPUD + | Opcode::VPCMPUQ + | Opcode::VPCMPUW + | Opcode::VPCMPW + ); + } + + false + } + + fn disassemble(&mut self, bytes: &[u8]) -> Result<()> { + if let Ok(insn) = self.decoder.decode_slice(bytes) { + self.last = Some(insn); + } else { + bail!("Could not disassemble {:?}", bytes); + } + + Ok(()) + } + + fn cmp(&self) -> Vec { + let mut cmp_exprs = Vec::new(); + if self.last_was_cmp() { + if let Some(last) = self.last { + for op_idx in 0..last.operand_count() { + let op = last.operand(op_idx); + let width = if let Some(width) = op.width() { + Some(width) + } else if let Some(width) = last.mem_size() { + width.bytes_size() + } else { + None + }; + if let Ok(expr) = CmpExpr::try_from((&op, width)) { + cmp_exprs.push(expr); + } + } + } + } + cmp_exprs + } + + fn cmp_type(&self) -> Vec { + if self.last_was_cmp() { + if let Some(last) = self.last { + if let Some(condition) = last.opcode().condition() { + return match condition { + // Overflow + ConditionCode::O => vec![], + // No Overflow + ConditionCode::NO => vec![], + // Below + ConditionCode::B => vec![CmpType::Lesser], + // Above or Equal + ConditionCode::AE => vec![CmpType::Greater, CmpType::Equal], + // Zero + ConditionCode::Z => vec![], + // Not Zero + ConditionCode::NZ => vec![], + // Above + ConditionCode::A => vec![CmpType::Greater], + // Below or Equal + ConditionCode::BE => vec![CmpType::Lesser, CmpType::Equal], + // Signed + ConditionCode::S => vec![], + // Not Signed + ConditionCode::NS => vec![], + // Parity + ConditionCode::P => vec![], + // No Parity + ConditionCode::NP => vec![], + // Less + ConditionCode::L => vec![CmpType::Lesser], + // Greater or Equal + ConditionCode::GE => vec![CmpType::Greater, CmpType::Equal], + // Greater + ConditionCode::G => vec![CmpType::Greater], + // Less or Equal + ConditionCode::LE => vec![CmpType::Lesser, CmpType::Equal], + }; + } + } + } + + vec![] + } +} diff --git a/modules/tsffs/src/tsffs/src/configuration/mod.rs b/modules/tsffs/src/tsffs/src/configuration/mod.rs new file mode 100644 index 00000000..6f5c7288 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/configuration/mod.rs @@ -0,0 +1,88 @@ +use std::{ + collections::{BTreeSet, HashMap}, + path::PathBuf, +}; + +use getters::Getters; +use simics::api::{lookup_file, BreakpointId}; +use simics_macro::TryIntoAttrValueTypeDict; +use typed_builder::TypedBuilder; + +use crate::arch::ArchitectureHint; + +impl Configuration { + /// The timeout runs in virtual time, so a typical 5 second timeout is acceptable + pub const DEFAULT_TIMEOUT_SECONDS: f64 = 5.0; + /// The default start magic mnumber the fuzzer expects to be triggered, either + /// via an in-target macro or another means. + pub const DEFAULT_MAGIC_START: i64 = 1; + /// The default stop magic mnumber the fuzzer expects to be triggered, either + /// via an in-target macro or another means. + pub const DEFAULT_MAGIC_STOP: i64 = 2; + pub const DEFAULT_CORPUS_DIRECTORY_NAME: &'static str = "corpus"; + pub const DEFAULT_SOLUTIONS_DIRECTORY_NAME: &'static str = "solutions"; + pub const DEFAULT_EXECUTOR_TIMEOUT: u64 = 60; + pub const DEFAULT_INITIAL_RANDOM_CORPUS_SIZE: usize = 8; + #[cfg(simics_experimental_api_snapshots)] + pub const DEFAULT_USE_SNAPSHOTS: bool = true; + #[cfg(not(simics_experimental_api_snapshots))] + pub const DEFAULT_USE_SNAPSHOTS: bool = false; +} + +#[derive(TypedBuilder, Getters, Debug, Clone, TryIntoAttrValueTypeDict)] +#[getters(mutable)] +pub struct Configuration { + #[builder(default = false)] + /// Whether any breakpoint that occurs during fuzzing is treated as a fault + all_breakpoints_are_solutions: bool, + #[builder(default = false)] + /// Whether any CPU exception that occurs during fuzzing is treated as a solution + all_exceptions_are_solutions: bool, + #[builder(default)] + /// The set of specific exception numbers that are treated as a solution + exceptions: BTreeSet, + #[builder(default)] + /// The set of breakpoints to treat as solutions + breakpoints: BTreeSet, + #[builder(default = Configuration::DEFAULT_TIMEOUT_SECONDS)] + /// The amount of time in seconds before a testcase execution is considered "timed + /// out" and will be treated as a solution + timeout: f64, + #[builder(default = false)] + start_on_harness: bool, + #[builder(default = false)] + stop_on_harness: bool, + #[builder(default = Configuration::DEFAULT_USE_SNAPSHOTS)] + use_snapshots: bool, + #[builder(default = Configuration::DEFAULT_MAGIC_START)] + magic_start: i64, + #[builder(default = Configuration::DEFAULT_MAGIC_STOP)] + magic_stop: i64, + #[builder(default, setter(strip_option))] + iterations: Option, + #[builder(default)] + tokens: Vec>, + #[builder(default = lookup_file("%simics%").expect("No simics project root found").join(Configuration::DEFAULT_CORPUS_DIRECTORY_NAME))] + corpus_directory: PathBuf, + #[builder(default = lookup_file("%simics%").expect("No simics project root found").join(Configuration::DEFAULT_SOLUTIONS_DIRECTORY_NAME))] + solutions_directory: PathBuf, + #[builder(default = false)] + generate_random_corpus: bool, + #[builder(default)] + token_files: Vec, + #[builder(default = Configuration::DEFAULT_EXECUTOR_TIMEOUT)] + /// The executor timeout in seconds + executor_timeout: u64, + #[builder(default = Configuration::DEFAULT_INITIAL_RANDOM_CORPUS_SIZE)] + initial_random_corpus_size: usize, + #[builder(default = true)] + cmplog: bool, + #[builder(default)] + architecture_hints: HashMap, +} + +impl Default for Configuration { + fn default() -> Self { + Self::builder().build() + } +} diff --git a/modules/tsffs/src/tsffs/src/fuzzer/mod.rs b/modules/tsffs/src/tsffs/src/fuzzer/mod.rs new file mode 100644 index 00000000..56c108d2 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/fuzzer/mod.rs @@ -0,0 +1,413 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::Tsffs; +use anyhow::{anyhow, Result}; +use getters::Getters; +use libafl::{ + feedback_or, feedback_or_fast, + prelude::{ + havoc_mutations, ondisk::OnDiskMetadataFormat, tokens_mutations, AFLppRedQueen, BytesInput, + CachedOnDiskCorpus, Corpus, CorpusId, CrashFeedback, ExitKind, HasTargetBytes, + HitcountsMapObserver, I2SRandReplace, InProcessExecutor, MaxMapFeedback, OnDiskCorpus, + RandBytesGenerator, SimpleEventManager, SimpleMonitor, StdCmpValuesObserver, + StdMOptMutator, StdMapObserver, StdScheduledMutator, TimeFeedback, TimeObserver, + TimeoutExecutor, Tokens, + }, + schedulers::{ + powersched::PowerSchedule, IndexesLenTimeMinimizerScheduler, StdWeightedScheduler, + }, + stages::{ + mutational::MultiMutationalStage, CalibrationStage, ColorizationStage, DumpToDiskStage, + GeneralizationStage, IfStage, StdMutationalStage, StdPowerMutationalStage, + SyncFromDiskStage, TracingStage, + }, + state::{HasCorpus, HasMetadata, StdState}, + Fuzzer, StdFuzzer, +}; +use libafl_bolts::{ + current_nanos, + prelude::OwnedMutSlice, + rands::StdRand, + tuples::{tuple_list, Merge}, + AsMutSlice, AsSlice, +}; +use libafl_targets::{AFLppCmpLogObserver, AFLppCmplogTracingStage}; +use simics::{api::AsConfObject, debug, info}; +use std::{ + cell::RefCell, fmt::Debug, slice::from_raw_parts_mut, sync::mpsc::channel, thread::spawn, + time::Duration, +}; + +pub mod tokenize; + +#[derive(Getters, Clone, PartialEq, Eq)] +pub struct Testcase { + testcase: Vec, + cmplog: bool, +} + +impl Debug for Testcase { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Testcase") + .field( + "testcase", + &&self.testcase[..(if self.testcase.len() < 8 { + self.testcase.len() + } else { + 8 + })], + ) + .field("cmplog", &self.cmplog) + .finish() + } +} + +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub struct ShutdownMessage {} + +impl Tsffs { + const EDGES_OBSERVER_NAME: &'static str = "coverage"; + const AFLPP_CMP_OBSERVER_NAME: &'static str = "aflpp_cmplog"; + const CMPLOG_OBSERVER_NAME: &'static str = "cmplog"; + const TIME_OBSERVER_NAME: &'static str = "time"; + const TIMEOUT_FEEDBACK_NAME: &'static str = "time"; + const CORPUS_CACHE_SIZE: usize = 4096; + + /// Start the fuzzing thread. + pub fn start_fuzzer_thread(&mut self) -> Result<()> { + if self.fuzz_thread().is_some() { + info!(self.as_conf_object(), "Fuzz thread already started but start_fuzzer_thread called. Returning without error."); + // We can only start the thread once + return Ok(()); + } + + debug!(self.as_conf_object_mut(), "Starting fuzzer thread"); + + let (tx, orx) = channel::(); + let (otx, rx) = channel::(); + let (stx, srx) = channel::(); + + self.fuzzer_tx = Some(tx); + self.fuzzer_rx = Some(rx); + self.fuzzer_shutdown = Some(stx); + + let client = RefCell::new((otx, orx)); + let configuration = self.configuration().clone(); + let coverage_map = unsafe { + from_raw_parts_mut( + self.coverage_map_mut().as_mut_slice().as_mut_ptr(), + Self::COVERAGE_MAP_SIZE, + ) + }; + let aflpp_cmp_map = Box::leak(unsafe { Box::from_raw(*self.aflpp_cmp_map_ptr()) }); + let aflpp_cmp_map_dup = Box::leak(unsafe { Box::from_raw(*self.aflpp_cmp_map_ptr()) }); + let cmplog_enabled = *self.configuration().cmplog(); + + // NOTE: We do *not* use `run_in_thread` because it causes the fuzzer to block when HAPs arrive + // which prevents forward progress. + *self.fuzz_thread_mut() = Some(spawn(move || -> Result<()> { + let mut harness = |input: &BytesInput| { + let testcase = input.target_bytes().as_slice().to_vec(); + // println!("Sending testcase {:?}", testcase); + client + .borrow_mut() + .0 + .send(Testcase { + testcase, + cmplog: false, + }) + .expect("Failed to send testcase message"); + // println!("Sent testcase, waiting for status"); + let status = match client.borrow_mut().1.recv() { + Err(e) => panic!("Error receiving status: {e}"), + Ok(m) => m, + }; + // println!("Got status: {:?}", status); + + status + }; + + let mut aflpp_cmp_harness = |input: &BytesInput| { + let testcase = input.target_bytes().as_slice().to_vec(); + // println!("Sending testcase {:?}", testcase); + client + .borrow_mut() + .0 + .send(Testcase { + testcase, + cmplog: true, + }) + .expect("Failed to send testcase message"); + // println!("Sent testcase, waiting for status"); + + let status = match client.borrow_mut().1.recv() { + Err(e) => panic!("Error receiving status: {e}"), + Ok(m) => m, + }; + // println!("Got status: {:?}", status); + + status + }; + + let mut tracing_harness = aflpp_cmp_harness; + + let edges_observer = HitcountsMapObserver::new(StdMapObserver::from_mut_slice( + Self::EDGES_OBSERVER_NAME, + OwnedMutSlice::from(coverage_map), + )); + let aflpp_cmp_observer = + AFLppCmpLogObserver::new(Self::AFLPP_CMP_OBSERVER_NAME, aflpp_cmp_map, true); + let cmplog_observer = + StdCmpValuesObserver::new(Self::CMPLOG_OBSERVER_NAME, aflpp_cmp_map_dup, true); + let time_observer = TimeObserver::new(Self::TIME_OBSERVER_NAME); + + let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, true); + let time_feedback = TimeFeedback::with_observer(&time_observer); + + let crash_feedback = CrashFeedback::new(); + let timeout_feedback = TimeFeedback::new(Self::TIMEOUT_FEEDBACK_NAME); + + let solutions = OnDiskCorpus::with_meta_format( + configuration.solutions_directory(), + OnDiskMetadataFormat::JsonPretty, + )?; + + let corpus = CachedOnDiskCorpus::with_meta_format( + configuration.corpus_directory(), + Self::CORPUS_CACHE_SIZE, + Some(OnDiskMetadataFormat::Json), + )?; + + // NOTE: Initialize these here before we move the feedbacks + let calibration_stage = CalibrationStage::new(&map_feedback); + let colorization_stage = ColorizationStage::new(&edges_observer); + let generalization_stage = GeneralizationStage::new(&edges_observer); + + let mut feedback = feedback_or!(map_feedback, time_feedback); + let mut objective = feedback_or_fast!(crash_feedback, timeout_feedback); + + let mut state = StdState::new( + StdRand::with_seed(current_nanos()), + corpus, + solutions, + &mut feedback, + &mut objective, + ) + .map_err(|e| anyhow!("Couldn't initialize state: {e}"))?; + + let mut tokens = Tokens::default(); + configuration + .token_files() + .iter() + .try_for_each(|f| tokens.add_from_file(f).map(|_| ()))?; + tokens.add_tokens(configuration.tokens()); + state.add_metadata(tokens); + + let scheduler = + IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::with_schedule( + &mut state, + &edges_observer, + Some(PowerSchedule::EXPLORE), + )); + + let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective); + + let monitor = { + SimpleMonitor::new(move |s| { + println!("{}", s); + }) + }; + + let mut manager = SimpleEventManager::new(monitor); + + let mut executor = TimeoutExecutor::new( + InProcessExecutor::new( + &mut harness, + tuple_list!(edges_observer, time_observer), + &mut fuzzer, + &mut state, + &mut manager, + )?, + Duration::from_secs(*configuration.executor_timeout()), + ); + + let aflpp_cmp_executor = TimeoutExecutor::new( + InProcessExecutor::new( + &mut aflpp_cmp_harness, + tuple_list!(aflpp_cmp_observer), + &mut fuzzer, + &mut state, + &mut manager, + )?, + Duration::from_secs(*configuration.executor_timeout()), + ); + + let tracing_executor = TimeoutExecutor::new( + InProcessExecutor::new( + &mut tracing_harness, + tuple_list!(cmplog_observer), + &mut fuzzer, + &mut state, + &mut manager, + )?, + Duration::from_secs(*configuration.executor_timeout()), + ); + + let input_to_state_stage = StdMutationalStage::new(StdScheduledMutator::new( + tuple_list!(I2SRandReplace::new()), + )); + let havoc_mutational_stage = StdPowerMutationalStage::new(StdScheduledMutator::new( + havoc_mutations().merge(tokens_mutations()), + )); + let mopt_mutational_stage = StdPowerMutationalStage::new(StdMOptMutator::new( + &mut state, + havoc_mutations().merge(tokens_mutations()), + 7, + 5, + )?); + let redqueen_mutational_stage = + MultiMutationalStage::new(AFLppRedQueen::with_cmplog_options(true, true)); + let aflpp_tracing_stage = AFLppCmplogTracingStage::with_cmplog_observer_name( + aflpp_cmp_executor, + Self::AFLPP_CMP_OBSERVER_NAME, + ); + let tracing_stage = TracingStage::new(tracing_executor); + let synchronize_corpus_stage = + SyncFromDiskStage::with_from_file(configuration.corpus_directory().clone()); + let dump_corpus_stage = DumpToDiskStage::new( + |input: &BytesInput, _state: &_| input.target_bytes().as_slice().to_vec(), + configuration.corpus_directory(), + configuration.solutions_directory(), + )?; + + if state.must_load_initial_inputs() { + state.load_initial_inputs( + &mut fuzzer, + &mut executor, + &mut manager, + &[configuration.corpus_directory().clone()], + )?; + + if state.corpus().count() < 1 && *configuration.generate_random_corpus() { + let mut generator = RandBytesGenerator::new(64); + state.generate_initial_inputs( + &mut fuzzer, + &mut executor, + &mut generator, + &mut manager, + *configuration.initial_random_corpus_size(), + )?; + } + } + + if state.corpus().count() < 1 { + panic!( + "No interesting cases found from inputs! This may mean \ + your harness is incorrect (check your arguments), your inputs \ + are not triggering new code paths, or all inputs are causing \ + crashes.", + ); + } + + let mut stages = tuple_list!( + calibration_stage, + generalization_stage, + IfStage::new( + |_fuzzer: &mut _, + _executor: &mut _, + state: &mut StdState<_, CachedOnDiskCorpus<_>, _, _>, + _event_manager: &mut _, + corpus_id: CorpusId| + -> Result { + Ok(cmplog_enabled + && state.corpus().get(corpus_id)?.borrow().scheduled_count() == 1) + }, + tuple_list!( + colorization_stage, + aflpp_tracing_stage, + redqueen_mutational_stage + ) + ), + IfStage::new( + |_fuzzer: &mut _, + _executor: &mut _, + _state: &mut StdState<_, CachedOnDiskCorpus<_>, _, _>, + _event_manager: &mut _, + _corpus_id: CorpusId| + -> Result { Ok(cmplog_enabled) }, + tuple_list!(tracing_stage, input_to_state_stage) + ), + havoc_mutational_stage, + mopt_mutational_stage, + dump_corpus_stage, + synchronize_corpus_stage, + ); + + loop { + // Check if we have a message to shut down, and if so, exit. + if let Ok(_msg) = srx.try_recv() { + break; + } + + fuzzer.fuzz_one(&mut stages, &mut executor, &mut state, &mut manager)?; + } + + println!("Fuzzing loop exited."); + + Ok(()) + })); + + Ok(()) + } + + pub fn send_shutdown(&mut self) -> Result<()> { + if let Some(stx) = self.fuzzer_shutdown_mut() { + stx.send(ShutdownMessage::default())?; + } + + Ok(()) + } + + pub fn get_testcase(&mut self) -> Result { + Ok(if let Some(testcase) = self.repro_testcase() { + Testcase { + testcase: testcase.clone(), + cmplog: false, + } + } else { + self.fuzzer_rx_mut() + .as_mut() + .ok_or_else(|| anyhow!("Fuzzer receiver not set"))? + .recv() + .map_err(|e| anyhow!("Error receiving from fuzzer: {e}"))? + }) + } +} + +// impl Tsffs { +// fn on_init(&mut self) -> Result<()> { +// Ok(()) +// } +// +// fn on_simulation_stopped(&mut self, reason: &StopReason) -> Result<()> { +// info!( +// self.as_conf_object(), +// "Stopped in fuzzer with reason {:?}", reason +// ); +// match reason { +// StopReason::MagicStart(_) | StopReason::Start(_) => { +// if self.fuzz_thread().is_none() { +// self.start()?; +// } +// } +// StopReason::MagicStop(_) | StopReason::Stop(_) | StopReason::Solution(_) => { +// if let Some(tx) = self.tx().as_ref() { +// tx.send(ModuleMessage::Status(reason.clone())) +// .map_err(|e| anyhow!("Failed to send status message: {e}"))?; +// } +// } +// } +// Ok(()) +// } +// } diff --git a/simics-fuzz/src/tokenize/mod.rs b/modules/tsffs/src/tsffs/src/fuzzer/tokenize/mod.rs similarity index 89% rename from simics-fuzz/src/tokenize/mod.rs rename to modules/tsffs/src/tsffs/src/fuzzer/tokenize/mod.rs index bce0a272..5a5f3af4 100644 --- a/simics-fuzz/src/tokenize/mod.rs +++ b/modules/tsffs/src/tsffs/src/fuzzer/tokenize/mod.rs @@ -1,11 +1,9 @@ //! Tokenization of executables -use std::{fs::read, path::Path}; - use anyhow::Result; use goblin::{pe::Coff, Object}; use libafl::prelude::{NaiveTokenizer, Tokenizer}; -use tracing::{debug, info}; +use std::{fs::read, path::Path}; // 3 character string minimum const STRING_TOKEN_MIN_LEN: usize = 3; @@ -13,7 +11,7 @@ const STRING_TOKEN_MIN_LEN: usize = 3; // PE strings can just be utf-8 as utf-16, so we don't want to double it. const WCHAR_STRING_TOKEN_MIN_LEN: usize = 4; -pub fn tokenize_src(source_files: I) -> Result> +pub fn tokenize_src_file(source_files: I) -> Result> where I: IntoIterator, P: AsRef, @@ -72,7 +70,7 @@ fn tokenize_strings(bytes: &[u8]) -> Result>> { /// /// For PE and COFF executables, we take the reserved sections .data and .rdata as noted in the /// [docs](https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#special-sections). -pub fn tokenize_executable

(executable: P) -> Result>> +pub fn tokenize_executable_file

(executable: P) -> Result>> where P: AsRef, { @@ -109,7 +107,6 @@ where .iter() .filter(|s| s.name().is_ok_and(|n| n == ".rdata" || n == ".data")) .try_for_each(|s| { - debug!("Tokenizing COFF strings from table {:?}", s); tokenize_strings( &contents[s.pointer_to_raw_data as usize ..s.pointer_to_raw_data as usize + s.size_of_raw_data as usize], @@ -118,15 +115,5 @@ where })?; } - info!( - "Extracted {} tokens from {}", - tokens.len(), - executable.as_ref().display() - ); - - tokens.iter().for_each(|t| { - debug!("Token: '{:?}'", t); - }); - Ok(tokens) } diff --git a/modules/tsffs/src/tsffs/src/haps/mod.rs b/modules/tsffs/src/tsffs/src/haps/mod.rs new file mode 100644 index 00000000..94dea700 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/haps/mod.rs @@ -0,0 +1,364 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use std::time::SystemTime; + +use crate::{ + arch::ArchitectureOperations, + state::{MagicStart, ManualStartSize, Solution, SolutionKind, Stop, StopReason}, + StartSize, Tsffs, +}; +use anyhow::{anyhow, Result}; +use libafl::prelude::ExitKind; +use simics::{ + api::{ + continue_simulation, object_is_processor, quit, run_alone, set_log_level, AsConfObject, + ConfObject, GenericTransaction, LogLevel, + }, + info, trace, +}; + +impl Tsffs { + /// Called on core simulation stopped HAP + pub fn on_simulation_stopped(&mut self) -> Result<()> { + if *self.stopped_for_repro() { + // If we are stopped for repro, we do nothing on this HAP! + return Ok(()); + } + + if let Some(reason) = self.stop_reason_mut().take() { + info!(self.as_conf_object(), "on_simulation_stopped({reason:?})"); + + match reason { + StopReason::MagicStart(magic_start) => { + if !self.have_initial_snapshot() { + self.start_fuzzer_thread()?; + self.add_processor(*magic_start.processor(), true)?; + + let (start_buffer, start_size) = { + let start_processor = self + .start_processor() + .ok_or_else(|| anyhow!("No start processor"))?; + ( + start_processor.get_magic_start_buffer()?, + start_processor.get_magic_start_size()?, + ) + }; + + *self.start_buffer_mut() = Some(start_buffer); + *self.start_size_mut() = Some(start_size); + *self.start_time_mut() = SystemTime::now(); + *self.coverage_enabled_mut() = true; + self.save_initial_snapshot()?; + self.get_and_write_testcase()?; + self.post_timeout_event()?; + } + + self.save_repro_bookmark_if_needed()?; + trace!( + self.as_conf_object(), + "Coverage hash (before): {:#x}", + self.cmplog_hash() + ); + trace!( + self.as_conf_object(), + "Cmplog hash (before): {:#x}", + self.cmplog_hash() + ); + } + StopReason::ManualStart(start) => { + if !self.have_initial_snapshot() { + self.start_fuzzer_thread()?; + self.add_processor(*start.processor(), true)?; + + let (start_buffer, start_size) = { + let start_processor = self + .start_processor() + .ok_or_else(|| anyhow!("No start processor"))?; + ( + if let Some(buffer) = start.buffer() { + Some(start_processor.get_manual_start_buffer(*buffer)?) + } else { + None + }, + match start.size() { + ManualStartSize::MaximumSize(s) => { + Some(StartSize::builder().initial_size(*s).build()) + } + ManualStartSize::SizeAddress(a) => { + Some(start_processor.get_manual_start_size(*a)?) + } + ManualStartSize::NoSize => None, + }, + ) + }; + + *self.start_buffer_mut() = start_buffer; + *self.start_size_mut() = start_size; + *self.start_time_mut() = SystemTime::now(); + *self.coverage_enabled_mut() = true; + self.save_initial_snapshot()?; + if self.start_buffer().is_some() && self.start_size().is_some() { + self.get_and_write_testcase()?; + } + self.post_timeout_event()?; + } + + self.save_repro_bookmark_if_needed()?; + trace!( + self.as_conf_object(), + "Coverage hash (before): {:#x}", + self.cmplog_hash() + ); + trace!( + self.as_conf_object(), + "Cmplog hash (before): {:#x}", + self.cmplog_hash() + ); + } + StopReason::MagicStop(_) | StopReason::ManualStop(_) => { + self.cancel_timeout_event()?; + trace!( + self.as_conf_object(), + "Coverage hash (after): {:#x}", + self.cmplog_hash() + ); + trace!( + self.as_conf_object(), + "Cmplog hash (after): {:#x}", + self.cmplog_hash() + ); + + if *self.repro_bookmark_set() { + *self.stopped_for_repro_mut() = true; + set_log_level(self.as_conf_object_mut(), LogLevel::Info)?; + + info!( + self.as_conf_object(), + "Stopped for repro. Restore to start bookmark with 'reverse-to start'" + ); + + // Skip the shutdown and continue, we are finished here + return Ok(()); + } + + *self.iterations_mut() += 1; + + if self + .configuration() + .iterations() + .is_some_and(|i| *self.iterations() >= i) + { + let duration = SystemTime::now().duration_since(*self.start_time())?; + + // Set the log level so this message always prints + set_log_level(self.as_conf_object_mut(), LogLevel::Info)?; + + info!( + self.as_conf_object(), + "Configured iteration count {} reached. Stopping after {} seconds ({} exec/s).", + self.iterations(), + duration.as_secs_f32(), + *self.iterations() as f32 / duration.as_secs_f32() + ); + + self.send_shutdown()?; + + quit(0)?; + } + + let fuzzer_tx = self + .fuzzer_tx_mut() + .as_ref() + .ok_or_else(|| anyhow!("No fuzzer tx channel"))?; + + fuzzer_tx.send(ExitKind::Ok)?; + + self.restore_initial_snapshot()?; + + if self.start_buffer().is_some() && self.start_size().is_some() { + self.get_and_write_testcase()?; + } + + self.post_timeout_event()?; + } + StopReason::Solution(solution) => { + self.cancel_timeout_event()?; + trace!( + self.as_conf_object(), + "Coverage hash (after): {:#x}", + self.cmplog_hash() + ); + trace!( + self.as_conf_object(), + "Cmplog hash (after): {:#x}", + self.cmplog_hash() + ); + + if *self.repro_bookmark_set() { + *self.stopped_for_repro_mut() = true; + set_log_level(self.as_conf_object_mut(), LogLevel::Info)?; + + info!( + self.as_conf_object(), + "Stopped for repro. Restore to start bookmark with 'reverse-to start'" + ); + + // Skip the shutdown and continue, we are finished here + return Ok(()); + } + + *self.iterations_mut() += 1; + + if self + .configuration() + .iterations() + .is_some_and(|i| *self.iterations() >= i) + { + let duration = SystemTime::now().duration_since(*self.start_time())?; + + // Set the log level so this message always prints + set_log_level(self.as_conf_object_mut(), LogLevel::Info)?; + + info!( + self.as_conf_object(), + "Configured iteration count {} reached. Stopping after {} seconds ({} exec/s).", + self.iterations(), + duration.as_secs_f32(), + *self.iterations() as f32 / duration.as_secs_f32() + ); + + self.send_shutdown()?; + + quit(0)?; + } + + let fuzzer_tx = self + .fuzzer_tx_mut() + .as_ref() + .ok_or_else(|| anyhow!("No fuzzer tx channel"))?; + + match solution.kind() { + SolutionKind::Timeout => fuzzer_tx.send(ExitKind::Timeout)?, + SolutionKind::Exception + | SolutionKind::Breakpoint + | SolutionKind::Manual => fuzzer_tx.send(ExitKind::Crash)?, + } + + self.restore_initial_snapshot()?; + + if self.start_buffer().is_some() && self.start_size().is_some() { + self.get_and_write_testcase()?; + } + self.post_timeout_event()?; + } + } + + info!(self.as_conf_object(), "Resuming simulation"); + + run_alone(|| { + continue_simulation(0)?; + Ok(()) + })?; + } else if self.have_initial_snapshot() { + self.cancel_timeout_event()?; + + let fuzzer_tx = self + .fuzzer_tx_mut() + .as_ref() + .ok_or_else(|| anyhow!("No fuzzer tx channel"))?; + + fuzzer_tx.send(ExitKind::Ok)?; + + info!( + self.as_conf_object(), + "Simulation stopped without reason, not resuming." + ); + + let duration = SystemTime::now().duration_since(*self.start_time())?; + + // Set the log level so this message always prints + set_log_level(self.as_conf_object_mut(), LogLevel::Info)?; + + info!( + self.as_conf_object(), + "Stopped after {} iterations in {} seconds ({} exec/s).", + self.iterations(), + duration.as_secs_f32(), + *self.iterations() as f32 / duration.as_secs_f32() + ); + } + + Ok(()) + } + + /// Called on core exception HAP. Check to see if this exception is configured as a solution + /// or all exceptions are solutions and trigger a stop if so + pub fn on_exception(&mut self, _obj: *mut ConfObject, exception: i64) -> Result<()> { + if *self.configuration().all_exceptions_are_solutions() + || self.configuration().exceptions().contains(&exception) + { + self.stop_simulation(StopReason::Solution( + Solution::builder().kind(SolutionKind::Exception).build(), + ))?; + } + Ok(()) + } + + /// Called on breakpoint memory operation HAP. Check to see if this breakpoint is configured + /// as a solution or if all breakpoints are solutions and trigger a stop if so + pub fn on_breakpoint_memop( + &mut self, + obj: *mut ConfObject, + breakpoint: i64, + transaction: *mut GenericTransaction, + ) -> Result<()> { + if *self.configuration().all_breakpoints_are_solutions() + || self + .configuration() + .breakpoints() + .contains(&(breakpoint as i32)) + { + info!( + self.as_conf_object(), + "on_breakpoint_memop({:#x}, {}, {:#x})", + obj as usize, + breakpoint, + transaction as usize + ); + + self.stop_simulation(StopReason::Solution( + Solution::builder().kind(SolutionKind::Breakpoint).build(), + ))?; + } + Ok(()) + } + + /// Check if magic instructions are set to trigger start and stop conditions, and trigger + /// them if needed + pub fn on_magic_instruction( + &mut self, + trigger_obj: *mut ConfObject, + magic_number: i64, + ) -> Result<()> { + info!( + self.as_conf_object(), + "on_magic_instruction({magic_number})" + ); + + if object_is_processor(trigger_obj)? { + if *self.configuration().start_on_harness() + && magic_number == *self.configuration().magic_start() + { + self.stop_simulation(StopReason::MagicStart( + MagicStart::builder().processor(trigger_obj).build(), + ))?; + } else if *self.configuration().stop_on_harness() + && magic_number == *self.configuration().magic_stop() + { + self.stop_simulation(StopReason::MagicStop(Stop::default()))?; + } + } + Ok(()) + } +} diff --git a/modules/tsffs/src/tsffs/src/init/mod.rs b/modules/tsffs/src/tsffs/src/init/mod.rs new file mode 100644 index 00000000..e6629f40 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/init/mod.rs @@ -0,0 +1,24 @@ +use crate::{Tsffs, CLASS_NAME}; +use simics::{ + api::{CreateClass, HasInterface, Interface}, + warn, +}; + +#[no_mangle] +/// Called by SIMICS when the module is loaded via `load-module tsffs` or +/// `SIM_load_module("tsffs")` +pub extern "C" fn init_local() { + let cls = + Tsffs::create().unwrap_or_else(|e| panic!("Failed to create class {}: {}", CLASS_NAME, e)); + + warn!("Created class {}", CLASS_NAME); + + ::Interface::register(cls).unwrap_or_else(|e| { + panic!( + "Failed to register interface for class {}: {}", + CLASS_NAME, e + ) + }); + + warn!("Registered interface for class {}", CLASS_NAME); +} diff --git a/modules/tsffs/src/tsffs/src/interface/mod.rs b/modules/tsffs/src/tsffs/src/interface/mod.rs new file mode 100644 index 00000000..020c8c56 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/interface/mod.rs @@ -0,0 +1,603 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::{ + arch::ArchitectureHint, + fuzzer::tokenize::{tokenize_executable_file, tokenize_src_file}, + state::{ManualStart, ManualStartSize, Solution, SolutionKind, Stop, StopReason}, + Tsffs, +}; +use anyhow::anyhow; +use ffi_macro::ffi; +use simics::{ + api::{ + continue_simulation, get_processor_number, lookup_file, run_alone, sys::attr_value_t, + version, AsConfObject, AttrValue, AttrValueType, BreakpointId, ConfObject, GenericAddress, + }, + debug, error, trace, Result, +}; +use simics_macro::interface_impl; +use std::{ + ffi::{c_char, CStr}, + fs::read, + str::FromStr, +}; + +// Emit the interface header/dml files in the "modules" directory in the module subdirectory +// of the package +#[interface_impl(modules_path = "../../../")] +impl Tsffs { + /// Interface method to enable or disable the fuzzer to start automatically when it + /// reaches the default start condition for the architecture of the processor that + /// is running when the default start condition occurs. Note that this method will + /// not resume or run the simulation, the SIMICS script containing this call should + /// resume execution afterward. + /// + /// These conditions are: + /// + /// # x86_64 + /// + /// - Magic instruction executed with `n=1` + /// * `rsi` - set to the address the fuzzer should write the testcase to each execution + /// * `rdi` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + /// + /// # x86_32 + /// + /// - Magic instruction executed with `n=1` + /// * `esi` - set to the address the fuzzer should write the testcase to each execution + /// * `edi` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + /// + /// # RISC-V + /// + /// - Magic instruction executed with `n=1` + /// * `x10` - set to the address the fuzzer should write the testcase to each execution + /// * `x11` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + /// + /// # ARM + /// + /// - Magic instruction executed with `n=1` + /// * `r0` - set to the address the fuzzer should write the testcase to each execution + /// * `r1` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + /// + /// # ARM Thumb-2 + /// + /// - Magic instruction executed with `n=1` + /// * `r0` - set to the address the fuzzer should write the testcase to each execution + /// * `r1` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + /// + /// # ARMv8 + /// + /// - Magic instruction executed with `n=1` + /// * `x0` - set to the address the fuzzer should write the testcase to each execution + /// * `x1` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + /// + /// # ARC + /// + /// - Magic instruction executed with `n=1` + /// * `r0` - set to the address the fuzzer should write the testcase to each execution + /// * `r1` - set to the address of a variable containing the maximum size of a testcase, + /// which will be overwritten each execution with the current actual size of the testcase + pub fn set_start_on_harness(&mut self, start_on_harness: bool) -> Result<()> { + debug!( + self.as_conf_object(), + "set_start_on_harness({start_on_harness})" + ); + + // self.set_start_on_harness(start_on_harness)?; + *self.configuration_mut().start_on_harness_mut() = start_on_harness; + + Ok(()) + } + + /// Interface method to set the magic value the fuzzer will wait for when + /// `set_start_on_harness` has ben configured. This allows you to place multiple harnesses in + /// a single binary and selectively enable one of them. + pub fn set_start_magic_number(&mut self, magic_number: i64) { + debug!( + self.as_conf_object(), + "set_start_magic_number({magic_number})" + ); + + *self.configuration_mut().magic_start_mut() = magic_number; + } + + /// Interface method to enable or disable the fuzzer to stop automatically when it + /// reaches the default stop condition for the architecture of the processor that is + /// running when the default stop condition occurs. Note that this method will not + /// resume or run the simulation, the SIMICS script containing this call should + /// resume execution afterward. + pub fn set_stop_on_harness(&mut self, stop_on_harness: bool) -> Result<()> { + debug!( + self.as_conf_object(), + "set_stop_on_harness({stop_on_harness})" + ); + + // self.set_stop_on_harness(stop_on_harness)?; + *self.configuration_mut().stop_on_harness_mut() = stop_on_harness; + + Ok(()) + } + + /// Interface method to set the magic value the fuzzer will wait for when + /// `set_start_on_harness` has ben configured. This allows you to place multiple harnesses in + /// a single binary and selectively enable one of them. + pub fn set_stop_magic_number(&mut self, magic_number: i64) { + debug!( + self.as_conf_object(), + "set_stop_magic_number({magic_number})" + ); + + *self.configuration_mut().magic_stop_mut() = magic_number; + } + + /// Interface method to manually start the fuzzing loop by taking a snapshot, saving the + /// testcase and size address and resuming execution of the simulation. This method does + /// not need to be called if `set_start_on_harness` is enabled. + /// + /// # Arguments + /// + /// * `cpu` - The CPU whose memory space should be written + /// * `testcase_address` - The address to write test cases to + /// * `size_address` - The address to write the size of each test case to (optional, + /// `max_size` must be given if not provided). + /// + /// If your target cannot take advantage of the written-back size pointer, use + /// `start_with_max_size` instead. + pub fn start( + &mut self, + cpu: *mut ConfObject, + testcase_address: GenericAddress, + size_address: GenericAddress, + ) -> Result<()> { + debug!( + self.as_conf_object(), + "start({testcase_address:#x}, {size_address:#x})" + ); + + self.stop_simulation(StopReason::ManualStart( + ManualStart::builder() + .processor(cpu) + .buffer(testcase_address) + .size(ManualStartSize::SizeAddress(size_address)) + .build(), + ))?; + + Ok(()) + } + + /// Interface method to manually start the fuzzing loop by taking a snapshot, saving + /// the testcase and maximum testcase size and resuming execution of the simulation. + /// This method does not need to be called if `set_start_on_harness` is enabled. + /// + /// # Arguments + /// + /// * `cpu` - The CPU whose memory space should be written + /// * `testcase_address` - The address to write test cases to + /// * `maximum_size` - The maximum size of the test case. The actual size of each test case will + /// not be written back to the target software + /// + /// If your target does not have a buffer readily available to receive testcase data or + /// you simply want to use it directly in some other way (e.g. by sending it to a network + /// port), use `start_without_buffer` + pub fn start_with_maximum_size( + &mut self, + cpu: *mut ConfObject, + testcase_address: GenericAddress, + maximum_size: u32, + ) -> Result<()> { + debug!( + self.as_conf_object(), + "start_with_maximum_size({testcase_address:#x}, {maximum_size:#x})" + ); + + self.stop_simulation(StopReason::ManualStart( + ManualStart::builder() + .processor(cpu) + .buffer(testcase_address) + .size(ManualStartSize::MaximumSize(maximum_size as u64)) + .build(), + ))?; + + Ok(()) + } + + /// Interface method to manually start the fuzzing loop by taking a snapshot, saving + /// the testcase and maximum testcase size and resuming execution of the simulation. + /// This method does not need to be called if `set_start_on_harness` is enabled. + /// + /// # Arguments + /// + /// * `cpu` - The CPU to initially trace and post timeout events on. This should typically be + /// the CPU that is running the code receiving the input this function returns. + /// + /// # Return Value + /// + /// Returns an [`AttrValue`] list of integers. Integers are `u8` sized, in the range 0-255. + pub fn start_without_buffer(&mut self, cpu: *mut ConfObject) -> Result { + if !self.have_initial_snapshot() { + // Start the fuzzer thread early so we can get a testcase + self.start_fuzzer_thread()?; + } + let testcase = self.get_testcase()?; + *self.cmplog_enabled_mut() = *testcase.cmplog(); + trace!( + self.as_conf_object(), + "Coverage hash (before): {:#x}", + self.cmplog_hash() + ); + trace!( + self.as_conf_object(), + "Cmplog hash (before): {:#x}", + self.cmplog_hash() + ); + + self.stop_simulation(StopReason::ManualStart( + ManualStart::builder().processor(cpu).build(), + ))?; + + testcase.testcase().clone().try_into() + } + + /// Interface method to manually signal to stop a testcase execution. When this + /// method is called, the current testcase execution will be stopped as if it had + /// finished executing normally, and the state will be restored to the state at the + /// initial snapshot. This method is particularly useful in callbacks triggered on + /// breakpoints or other complex conditions. This method does + /// not need to be called if `set_stop_on_harness` is enabled. + pub fn stop(&mut self) -> Result<()> { + debug!(self.as_conf_object(), "stop"); + + self.stop_simulation(StopReason::ManualStop(Stop::default()))?; + + Ok(()) + } + + /// Interface method to manually signal to stop execution with a solution condition. + /// When this method is called, the current testcase execution will be stopped as if + /// it had finished executing with an exception or timeout, and the state will be + /// restored to the state at the initial snapshot. + pub fn solution(&mut self, id: u64, message: *mut c_char) -> Result<()> { + let message = unsafe { CStr::from_ptr(message) }.to_str()?; + + debug!(self.as_conf_object(), "solution({id:#x}, {message})"); + + self.stop_simulation(StopReason::Solution( + Solution::builder().kind(SolutionKind::Manual).build(), + ))?; + + Ok(()) + } + + /// Interface method to set the fuzzer to use the experimental snapshots interface + /// instead of the micro checkpoints interface for snapshot save and restore operations + pub fn set_use_snapshots(&mut self, use_snapshots: bool) -> Result<()> { + debug!(self.as_conf_object(), "use_snapshots({use_snapshots})"); + + #[cfg(not(simics_experimental_api_snapshots))] + {} + + if cfg!(simics_experimental_api_snapshots) { + *self.configuration_mut().use_snapshots_mut() = use_snapshots; + } else if !cfg!(simics_experimental_api_snapshots) && use_snapshots { + let version = version()?; + + error!( + self.as_conf_object(), + "Not enabling snapshots, API is unsupported for target SIMICS version {version}", + ); + } else { + // NOTE: We don't report an error if snapshots are turned off when they are unsupported + } + + Ok(()) + } + + /// Interface method to set the execution timeout in seconds + pub fn set_timeout(&mut self, timeout: f64) { + debug!(self.as_conf_object(), "set_timeout({timeout})"); + + *self.configuration_mut().timeout_mut() = timeout; + } + + /// Interface method to add an exception-type solution number to the set of + /// exception-type solution numbers currently being monitored for. If any exception in + /// the set of exceptions currently monitored occurs, the testcase will be saved and + /// reported as a solution. + /// + /// For example on x86_64, `add_exception_solution(14)` would treat any page fault as + /// a solution. + pub fn add_exception_solution(&mut self, exception: i64) { + debug!(self.as_conf_object(), "add_exception_solution({exception})"); + + self.configuration_mut().exceptions_mut().insert(exception); + } + + /// Interface method to remove an exception-type solution number from the set of + /// exception-type solution numbers currently being monitored for. If any exception in + /// the set of solutions currently monitored occurs, the testcase will be saved and + /// reported as a solution. + pub fn remove_exception_solution(&mut self, exception: i64) { + debug!( + self.as_conf_object(), + "remove_exception_solution({exception})" + ); + + self.configuration_mut().exceptions_mut().remove(&exception); + } + + /// Set whether all CPU exceptions are considered solutions. If set to true, any + /// exception encountered during fuzzing will be saved as a solution. This is typically + /// not desired. + pub fn set_all_exceptions_are_solutions(&mut self, all_exceptions_are_solutions: bool) { + debug!( + self.as_conf_object(), + "set_all_exceptions_are_solutions({all_exceptions_are_solutions})" + ); + + *self.configuration_mut().all_exceptions_are_solutions_mut() = all_exceptions_are_solutions; + } + + /// Set a specific breakpoint number to be considered a solution. If a breakpoint with + /// this ID is encountered during fuzzing, the input will be saved as a solution. + pub fn add_breakpoint_solution(&mut self, breakpoint: BreakpointId) { + debug!( + self.as_conf_object(), + "add_breakpoint_solution({breakpoint})" + ); + + self.configuration_mut() + .breakpoints_mut() + .insert(breakpoint); + } + + /// Remove a specific breakpoint from consideration as a solution. If a breakpoint with + /// this ID is encountered during fuzzing, the input will be saved as a solution. + pub fn remove_breakpoint_solution(&mut self, breakpoint: BreakpointId) { + debug!( + self.as_conf_object(), + "remove_breakpoint_solution({breakpoint})" + ); + self.configuration_mut() + .breakpoints_mut() + .remove(&breakpoint); + } + + /// Set whether all SIMICS breakpoints are considered solutions. If set to true, any + /// breakpoint (read, write, or execute) encountered during fuzzing will be saved as + /// a solution. + pub fn set_all_breakpoints_are_solutions(&mut self, all_breakpoints_are_solutions: bool) { + debug!( + self.as_conf_object(), + "set_all_breakpoints_are_solutions({all_breakpoints_are_solutions})" + ); + + *self.configuration_mut().all_breakpoints_are_solutions_mut() = + all_breakpoints_are_solutions; + } + + /// Set whether cmplog is enabled or disabled. Cmplog adds stages to trace and + /// analyze comparison operands during target software execution and mutate test + /// cases strategically using the logged operands. Execution speed is lower when + /// running with cmplog enabled, but the efficiency gain from improved mutations + /// typically makes up for the lost speed by many orders of magnitude. It is + /// particularly well suited for software which performs magic value checks, large + /// value and string comparisons, and sums. + pub fn set_cmplog_enabled(&mut self, enabled: bool) { + debug!(self.as_conf_object(), "set_cmplog_enabled({enabled})"); + + *self.configuration_mut().cmplog_mut() = enabled; + } + + /// Set the directory path where the input corpus should be taken from when the + /// fuzzer first starts, and where new corpus items will be saved. This path may be + /// a SIMICS relative path prefixed with "%simics%". It is an error to provide no + /// corpus directory when `set_generate_random_corpus(True)` has not been called + /// prior to fuzzer startup. It is also an error to provide an *empty* corpus + /// directory without calling `set_generate_random_corpus(True)`. If not provided, + /// "%simics%/corpus" will be used by default. + pub fn set_corpus_directory(&mut self, corpus_directory: *mut c_char) -> Result<()> { + let corpus_directory = lookup_file(unsafe { CStr::from_ptr(corpus_directory) }.to_str()?)?; + + debug!( + self.as_conf_object(), + "set_corpus_directory({})", + corpus_directory.display(), + ); + + *self.configuration_mut().corpus_directory_mut() = corpus_directory; + + Ok(()) + } + + /// Set the directory path where solutions should be saved when the fuzzer finds them. This + /// directory will contain the fuzzer inputs which triggered any solution condition that had + /// been configured for the fuzzing campaign. These entries can be used to reproduce + /// and traige defects using the `reproduce` method. If no solutions directory is provided, + /// "%simics%/solutions" will be used by default. + pub fn set_solutions_directory(&mut self, solutions_directory: *mut c_char) -> Result<()> { + let solutions_directory = + lookup_file(unsafe { CStr::from_ptr(solutions_directory) }.to_str()?)?; + + debug!( + self.as_conf_object(), + "set_solutions_directory({})", + solutions_directory.display() + ); + + *self.configuration_mut().solutions_directory_mut() = solutions_directory; + + Ok(()) + } + + /// Set whether a random corpus should be generated in the event that a corpus directory is + /// not provided, or an empty corpus directory is provided. This option defaults to false + /// because the penalty for using a random corpus is extremely high and corpus entries should + /// be customized for the target software wherever possible. By setting this option, you + /// should be aware your fuzz campaign's efficiency will be lowered. This is, however, very + /// useful for demonstration and test purposes. + pub fn set_generate_random_corpus(&mut self, generate_random_corpus: bool) -> Result<()> { + debug!( + self.as_conf_object(), + "set_generate_random_corpus({generate_random_corpus})" + ); + *self.configuration_mut().generate_random_corpus_mut() = generate_random_corpus; + + Ok(()) + } + + /// Set the number of iterations to run the fuzzer for. This is the number of actual testcases + /// executed, and includes all stages (e.g. calibration). This should typically not be used + /// to limit the time of a fuzzing campaign, and is only useful for demonstration purposes. + pub fn set_iterations(&mut self, iterations: usize) -> Result<()> { + debug!(self.as_conf_object(), "set_iterations({iterations})"); + *self.configuration_mut().iterations_mut() = Some(iterations); + + Ok(()) + } + + pub fn get_configuration(&mut self) -> Result { + let value: AttrValueType = self.configuration().clone().try_into()?; + Ok(AttrValue::try_from(value)?.into()) + } + + /// Tokenize an executable file and add extracted tokens to token mutations for the fuzzer + pub fn tokenize_executable(&mut self, executable_file: *mut c_char) -> Result<()> { + let simics_path = unsafe { CStr::from_ptr(executable_file) }.to_str()?; + + let executable_path = lookup_file(simics_path)?; + + debug!( + self.as_conf_object(), + "tokenize_executable({})", + executable_path.display() + ); + + self.configuration_mut() + .tokens_mut() + .extend(tokenize_executable_file(executable_path)?); + + Ok(()) + } + + /// Tokenize a source file and add extracted tokens to token mutations for the fuzzer + pub fn tokenize_src(&mut self, source_file: *mut c_char) -> Result<()> { + let simics_path = unsafe { CStr::from_ptr(source_file) }.to_str()?; + + let source_path = lookup_file(simics_path)?; + + debug!( + self.as_conf_object(), + "tokenize_src({})", + source_path.display() + ); + + self.configuration_mut().tokens_mut().extend( + tokenize_src_file([source_path])? + .iter() + .map(|e| e.as_bytes().to_vec()) + .collect::>(), + ); + + Ok(()) + } + + /// Add tokens from a file of the format below, containing tokens extracted from the fuzz + /// target: + /// ```text,ignore + /// x = "hello" + /// y = "foo\x41bar" + /// ``` + pub fn add_token_file(&mut self, token_file: *mut c_char) -> Result<()> { + let simics_path = unsafe { CStr::from_ptr(token_file) }.to_str()?; + + let token_file = lookup_file(simics_path)?; + + debug!( + self.as_conf_object(), + "add_token_file({})", + token_file.display() + ); + + if token_file.is_file() { + self.configuration_mut().token_files_mut().push(token_file); + } + + Ok(()) + } + + /// Add a processor to be traced. By default, only the processor the start event occurs on + /// is used for tracing. + pub fn add_trace_processor(&mut self, cpu: *mut ConfObject) -> Result<()> { + debug!( + self.as_conf_object(), + "add_trace_processor({:#x})", cpu as usize + ); + + self.add_processor(cpu, false)?; + + Ok(()) + } + + /// Set an architecture hint to be used for a particular processor. This allows overriding + /// the detected or reported architecture for the processor object. This is particularly + /// useful for x86 processors which report as x86-64 processors, or when fuzzing x86 code + /// running on an x86-64 processor in a backward compatibility mode. + pub fn add_architecture_hint(&mut self, cpu: *mut ConfObject, hint: *mut c_char) -> Result<()> { + let hint = unsafe { CStr::from_ptr(hint) }.to_str()?; + let processor_number = get_processor_number(cpu)?; + debug!( + self.as_conf_object(), + "add_architecture_hint({processor_number}, {hint})" + ); + self.configuration_mut() + .architecture_hints_mut() + .insert(processor_number, ArchitectureHint::from_str(hint)?); + + Ok(()) + } + + /// Reproduce a test case execution. This will set the fuzzer's next input through + /// one execution using the provided file as input instead of taking input from the + /// fuzzer. It will stop execution at the first stop, timeout, or other solution + /// instead of continuing the fuzzing loop. + /// + /// This can be called during configuration *or* after stopping the fuzzer once a solution + /// has been found. + pub fn repro(&mut self, testcase_file: *mut c_char) -> Result<()> { + let simics_path = unsafe { CStr::from_ptr(testcase_file) }.to_str()?; + + let testcase_file = lookup_file(simics_path)?; + + debug!(self.as_conf_object(), "repro({})", testcase_file.display()); + + let contents = read(&testcase_file).map_err(|e| { + anyhow!( + "Failed to read repro testcase file {}: {}", + testcase_file.display(), + e + ) + })?; + + *self.repro_testcase_mut() = Some(contents); + + if *self.iterations() > 0 { + // We've done an iteration already, so we need to reset and run + self.restore_initial_snapshot()?; + self.get_and_write_testcase()?; + self.post_timeout_event()?; + + run_alone(|| { + continue_simulation(0)?; + Ok(()) + })?; + } + + Ok(()) + } +} diff --git a/modules/tsffs/src/tsffs/src/lib.rs b/modules/tsffs/src/tsffs/src/lib.rs new file mode 100644 index 00000000..893fd460 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/lib.rs @@ -0,0 +1,499 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! TFFS Module for SIMICS +//! +//! # Overview +//! +//! This crate provides a client and module loadable by SIMICS to enable fuzzing on the SIMICS +//! platform. The client is intended to be used by the `simics-fuzz` crate, but it can be used +//! manually to enable additional use cases. +//! +//! # Capabilities +//! +//! The Module can: +//! +//! - Trace branch hits during an execution of a target on an x86_64 processor. These branches +//! are traced into shared memory in the format understood by the AFL family of tools. +//! - Catch exception/fault events registered in an initial configuration or dynamically using +//! a SIMICS Python script +//! - Catch timeout events registered in an initial configuration or dynamically using a SIMICS +//! Python script +//! - Manage the state of a target under test by taking and restoring a snapshot of its state for +//! deterministic snapshot fuzzing + +#![deny(clippy::all)] +// NOTE: We have to do this a lot, and it sucks to have all these functions be unsafe +#![allow(clippy::not_unsafe_ptr_arg_deref)] +#![deny(clippy::unwrap_used)] + +use crate::{ + interface::TsffsInterfaceInternal, + state::{Solution, SolutionKind}, +}; +use anyhow::{anyhow, Result}; +use arch::{Architecture, ArchitectureOperations}; +use configuration::Configuration; +use fuzzer::{ShutdownMessage, Testcase}; +use getters::Getters; +use libafl::prelude::ExitKind; +use libafl_bolts::{prelude::OwnedMutSlice, AsSlice}; +use libafl_targets::AFLppCmpLogMap; +use serde::{Deserialize, Serialize}; +#[cfg(simics_experimentatl_api_snapshots)] +use simics::api::{restore_snapshot, save_snapshot}; +use simics::{ + api::{ + break_simulation, discard_future, free_attribute, get_class, get_interface, + get_processor_number, object_clock, restore_micro_checkpoint, run_command, + save_micro_checkpoint, AsConfObject, Class, ConfObject, CoreBreakpointMemopHap, + CoreExceptionHap, CoreMagicInstructionHap, CoreSimulationStoppedHap, + CpuInstrumentationSubscribeInterface, Event, EventClassFlag, HapHandle, + MicroCheckpointFlags, + }, + info, +}; +use simics_macro::{class, interface, AsConfObject}; +use state::StopReason; +use std::{ + alloc::{alloc_zeroed, Layout}, + collections::HashMap, + mem::size_of, + ptr::null_mut, + slice::from_raw_parts, + sync::mpsc::{Receiver, Sender}, + thread::JoinHandle, + time::SystemTime, +}; +use tracer::tsffs::{on_instruction_after, on_instruction_before}; +use typed_builder::TypedBuilder; +use util::Utils; + +pub mod arch; +pub mod configuration; +pub mod fuzzer; +pub mod haps; +pub mod init; +pub mod interface; +pub mod state; +pub mod tracer; +pub mod traits; +pub mod util; + +/// The class name used for all operations interfacing with SIMICS + +pub const CLASS_NAME: &str = env!("CARGO_PKG_NAME"); + +#[derive(TypedBuilder, Getters, Serialize, Deserialize, Clone, Debug)] +pub struct StartBuffer { + /// The physical address of the buffer. Must be physical, if the input address was + /// virtual, it should be pre-translated + pub physical_address: u64, + /// Whether the address that translated to this physical address was virtual + /// this should not be used or checked, it's simply informational + pub virt: bool, +} + +#[derive(TypedBuilder, Getters, Serialize, Deserialize, Clone, Debug)] +pub struct StartSize { + #[builder(default, setter(into, strip_option))] + /// The address of the magic start size value, and whether the address that translated + /// to this physical address was virtual. The address must be physical. + pub physical_address: Option<(u64, bool)>, + #[builder(default, setter(into, strip_option))] + // NOTE: There is no need to save the size fo the size, it must be pointer-sized. + /// The initial size of the magic start size + pub initial_size: Option, +} +impl Tsffs { + pub const COVERAGE_MAP_SIZE: usize = 128 * 1024; + pub const TIMEOUT_EVENT_NAME: &'static str = "detector_timeout_event"; + pub const SNAPSHOT_NAME: &'static str = "tsffs-origin-snapshot"; +} + +#[class(name = CLASS_NAME)] +#[derive(TypedBuilder, AsConfObject, Getters)] +#[getters(mutable)] +#[interface] +pub struct Tsffs { + /// The pointer to this instance. This is a self pointer. + instance: *mut ConfObject, + #[builder(default)] + /// The configuration for the fuzzer + configuration: Configuration, + + // Registered HAPs + #[builder(default = { + CoreSimulationStoppedHap::add_callback( + // NOTE: Core_Simulation_Stopped is called with an object, exception and + // error string, but the exception is always + // SimException::SimExc_No_Exception and the error string is always + // null_mut. + move |_, _, _| { + // On stops, call the module's stop callback method, which will in turn call the + // stop callback methods on each of the module's components. The stop reason will + // be retrieved from the module, if one is set. It is an error for the module to + // stop itself without setting a reason + let tsffs: &'static mut Tsffs = instance.into(); + tsffs + .on_simulation_stopped() + .expect("Error calling simulation stopped callback"); + }, + ) + .expect("Failed to register core simulation stopped hap callback") + })] + /// Handle for the core simulation stopped hap + stop_hap_handle: HapHandle, + #[builder(default = { + CoreBreakpointMemopHap::add_callback( + move |trigger_obj, breakpoint_number, memop| { + let tsffs: &'static mut Tsffs = instance.into(); + tsffs + .on_breakpoint_memop(trigger_obj, breakpoint_number, memop) + .expect("Error calling breakpoint memop callback"); + } + ).expect("Failed to register breakpoint memop callback") + })] + breakpoint_memop_hap_handle: HapHandle, + #[builder(default = { + CoreExceptionHap::add_callback( + move |trigger_obj, exception_number| { + let tsffs: &'static mut Tsffs = instance.into(); + tsffs + .on_exception(trigger_obj, exception_number) + .expect("Error calling breakpoint memop callback"); + } + ).expect("Failed to register breakpoint memop callback") + })] + exception_hap_handle: HapHandle, + #[builder(default = { + CoreMagicInstructionHap::add_callback( + move |trigger_obj, magic_number| { + let tsffs: &'static mut Tsffs = instance.into(); + + tsffs + .on_magic_instruction(trigger_obj, magic_number) + .expect("Error calling magic instruction callback"); + }, + ).expect("Failed to register magic instruction callback") + })] + /// The handle for the registered magic HAP, used to + /// listen for magic start and stop if `start_on_harness` + /// or `stop_on_harness` are set. + magic_hap_handle: HapHandle, + + // Fuzzer thread and channels + #[builder(default)] + fuzz_thread: Option>>, + #[builder(default)] + fuzzer_tx: Option>, + #[builder(default)] + fuzzer_rx: Option>, + #[builder(default)] + fuzzer_shutdown: Option>, + + // Fuzzer coverage maps + #[builder(default = OwnedMutSlice::from(vec![0; Tsffs::COVERAGE_MAP_SIZE]))] + /// Coverage map owned by the tracer + coverage_map: OwnedMutSlice<'static, u8>, + #[builder(default = unsafe { + let layout = Layout::new::(); + alloc_zeroed(layout) as *mut AFLppCmpLogMap + })] + /// Comparison logging map owned by the tracer + aflpp_cmp_map_ptr: *mut AFLppCmpLogMap, + #[builder(default = unsafe { &mut *aflpp_cmp_map_ptr})] + aflpp_cmp_map: &'static mut AFLppCmpLogMap, + #[builder(default = 0)] + coverage_prev_loc: u64, + + // Registered events + #[builder(default = Event::builder() + .name(Tsffs::TIMEOUT_EVENT_NAME) + .cls(get_class(CLASS_NAME).expect("Error getting class")) + .flags(EventClassFlag::Sim_EC_No_Flags) + .build() + )] + timeout_event: Event, + + // Micro checkpoint/snapshot management + #[builder(default)] + /// The name of the fuzz snapshot, if saved + snapshot_name: Option, + #[builder(default)] + /// The index of the micro checkpoint saved for the fuzzer. Only present if not using + /// snapshots. + micro_checkpoint_index: Option, + + #[builder(default)] + stop_reason: Option, + #[builder(default)] + /// The buffer and size information, if saved + start_buffer: Option, + #[builder(default)] + start_size: Option, + + // Statistics + #[builder(default = 0)] + /// The number of fuzzing iterations run. Incremented on stop + iterations: usize, + #[builder(default = SystemTime::now())] + /// The time the fuzzer was started at + start_time: SystemTime, + + // State and settings + #[builder(default = false)] + /// Whether cmplog is currently enabled + coverage_enabled: bool, + #[builder(default = false)] + /// Whether cmplog is currently enabled + cmplog_enabled: bool, + #[builder(default)] + /// The number of the processor which starts the fuzzing loop (via magic or manual methods) + start_processor_number: Option, + #[builder(default)] + /// Tracked processors. This always includes the start processor, and may include + /// additional processors that are manually added by the user + processors: HashMap, + #[builder(default)] + /// A testcase to use for repro + repro_testcase: Option>, + #[builder(default)] + repro_bookmark_set: bool, + #[builder(default)] + stopped_for_repro: bool, +} + +impl Class for Tsffs { + fn init(instance: *mut ConfObject) -> simics::Result<*mut ConfObject> { + let tsffs = Self::builder() + .conf_object(unsafe { *instance }) + .instance(instance) + .build(); + + info!(instance, "Initialized instance"); + + Ok(Tsffs::new(instance, tsffs)) + } +} + +/// Implementations for controlling the simulation +impl Tsffs { + pub fn stop_simulation(&mut self, reason: StopReason) -> Result<()> { + let break_string = reason.to_string(); + *self.stop_reason_mut() = Some(reason); + break_simulation(break_string)?; + + Ok(()) + } +} + +/// Implementations for common functionality +impl Tsffs { + pub fn add_processor(&mut self, cpu: *mut ConfObject, is_start: bool) -> Result<()> { + let cpu_number = get_processor_number(cpu)?; + + if !self.processors().contains_key(&cpu_number) { + let architecture = + if let Some(hint) = self.configuration().architecture_hints().get(&cpu_number) { + hint.architecture(cpu)? + } else { + Architecture::new(cpu)? + }; + self.processors_mut().insert(cpu_number, architecture); + let mut cpu_interface: CpuInstrumentationSubscribeInterface = get_interface(cpu)?; + cpu_interface.register_instruction_after_cb( + null_mut(), + Some(on_instruction_after), + self as *mut Self as *mut _, + )?; + cpu_interface.register_instruction_before_cb( + null_mut(), + Some(on_instruction_before), + self as *mut Self as *mut _, + )?; + } + + if is_start { + *self.start_processor_number_mut() = Some(cpu_number); + } + + Ok(()) + } + + pub fn start_processor(&mut self) -> Option<&mut Architecture> { + self.start_processor_number() + .map(|n| self.processors_mut().get_mut(&n)) + .flatten() + } +} + +impl Tsffs { + pub fn save_initial_snapshot(&mut self) -> Result<()> { + if *self.configuration().use_snapshots() && self.snapshot_name().is_none() { + #[cfg(simics_experimental_api_snapshots)] + { + save_snapshot(Self::SNAPSHOT_NAME)?; + *self.snapshot_name_mut() = Some(Self::SNAPSHOT_NAME.to_string()); + } + #[cfg(not(simics_experimental_api_snapshots))] + panic!("Snapshots cannot be used without SIMICS support from recent SIMICS versions."); + } else if !self.configuration().use_snapshots() + && self.snapshot_name().is_none() + && self.micro_checkpoint_index().is_none() + { + save_micro_checkpoint( + Self::SNAPSHOT_NAME, + MicroCheckpointFlags::Sim_MC_ID_User | MicroCheckpointFlags::Sim_MC_Persistent, + )?; + + *self.snapshot_name_mut() = Some(Self::SNAPSHOT_NAME.to_string()); + + *self.micro_checkpoint_index_mut() = Some( + Utils::get_micro_checkpoints()? + .iter() + .enumerate() + .find_map(|(i, c)| (c.name == Self::SNAPSHOT_NAME).then_some(i as i32)) + .ok_or_else(|| { + anyhow!("No micro checkpoint with just-registered name found") + })?, + ); + } + + Ok(()) + } + + pub fn restore_initial_snapshot(&mut self) -> Result<()> { + if *self.configuration().use_snapshots() { + #[cfg(simics_experimental_api_snapshots)] + restore_snapshot(Self::SNAPSHOT_NAME)?; + #[cfg(not(simics_experimental_api_snapshots))] + panic!("Snapshots cannot be used without SIMICS support from recent SIMICS versions."); + } else { + restore_micro_checkpoint(self.micro_checkpoint_index().ok_or_else(|| { + anyhow!("Not using snapshots and no micro checkpoint index present") + })?)?; + + discard_future()?; + } + + Ok(()) + } + + pub fn have_initial_snapshot(&self) -> bool { + (self.snapshot_name().is_some() && *self.configuration().use_snapshots()) + || (self.snapshot_name().is_some() + && self.micro_checkpoint_index().is_some() + && !self.configuration().use_snapshots()) + } + + pub fn save_repro_bookmark_if_needed(&mut self) -> Result<()> { + if self.repro_testcase().is_some() && !self.repro_bookmark_set() { + free_attribute(run_command("set-bookmark start")?)?; + *self.repro_bookmark_set_mut() = true; + } + + Ok(()) + } +} + +impl Tsffs { + /// Get a testcase from the fuzzer and write it to memory along with, optionally, a size + pub fn get_and_write_testcase(&mut self) -> Result<()> { + let testcase = self.get_testcase()?; + + *self.cmplog_enabled_mut() = *testcase.cmplog(); + + // TODO: Fix cloning - refcell? + let start_buffer = self + .start_buffer() + .as_ref() + .ok_or_else(|| anyhow!("No start buffer"))? + .clone(); + let start_size = self + .start_size() + .as_ref() + .ok_or_else(|| anyhow!("No start size"))? + .clone(); + let start_processor = self + .start_processor() + .ok_or_else(|| anyhow!("No start processor"))?; + + start_processor.write_start(testcase.testcase(), &start_buffer, &start_size)?; + + Ok(()) + } + + pub fn post_timeout_event(&mut self) -> Result<()> { + let tsffs_ptr = self.as_conf_object_mut(); + let start_processor = self + .start_processor() + .ok_or_else(|| anyhow!("No start processor"))?; + let start_processor_time = start_processor.cycle().get_time()?; + let start_processor_cpu = start_processor.cpu(); + let start_processor_clock = object_clock(start_processor_cpu)?; + let timeout_time = *self.configuration().timeout() + start_processor_time; + info!( + self.as_conf_object(), + "Posting event on processor at time {} for {}s (time {})", + start_processor_time, + *self.configuration().timeout(), + timeout_time + ); + self.timeout_event().post_time( + start_processor_cpu, + start_processor_clock, + *self.configuration().timeout(), + move |obj| { + let tsffs: &'static mut Tsffs = tsffs_ptr.into(); + info!(tsffs.as_conf_object_mut(), "timeout({:#x})", obj as usize); + tsffs + .stop_simulation(StopReason::Solution( + Solution::builder().kind(SolutionKind::Timeout).build(), + )) + .expect("Error calling timeout callback"); + }, + )?; + + Ok(()) + } + + pub fn cancel_timeout_event(&mut self) -> Result<()> { + if let Some(start_processor) = self.start_processor() { + let start_processor_time = start_processor.cycle().get_time()?; + let start_processor_cpu = start_processor.cpu(); + let start_processor_clock = object_clock(start_processor_cpu)?; + match self + .timeout_event() + .find_next_time(start_processor_clock, start_processor_cpu) + { + Ok(next_time) => info!( + self.as_conf_object(), + "Cancelling event with next time {} (current time {})", + next_time, + start_processor_time + ), + Err(e) => info!( + self.as_conf_object(), + "Not cancelling event with next time due to error: {e}" + ), + } + self.timeout_event() + .cancel_time(start_processor_cpu, start_processor_clock)?; + } + Ok(()) + } + + pub fn coverage_hash(&self) -> u32 { + crc32fast::hash(self.coverage_map().as_slice()) + } + + pub fn cmplog_hash(&self) -> u32 { + crc32fast::hash(unsafe { + from_raw_parts( + *self.aflpp_cmp_map_ptr() as *const u8, + size_of::(), + ) + }) + } +} diff --git a/modules/tsffs/src/tsffs/src/state/mod.rs b/modules/tsffs/src/tsffs/src/state/mod.rs new file mode 100644 index 00000000..4219a385 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/state/mod.rs @@ -0,0 +1,83 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Definitions for tracking the state of the fuzzer + +use anyhow::{anyhow, Error, Result}; +use getters::Getters; +use serde::{Deserialize, Serialize}; +use serde_json::{from_str, to_string}; +use simics::api::ConfObject; +use std::{ptr::null_mut, str::FromStr}; +use typed_builder::TypedBuilder; + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub enum ManualStartSize { + MaximumSize(u64), + SizeAddress(u64), + NoSize, +} + +#[derive(TypedBuilder, Getters, Serialize, Deserialize, Debug, Clone)] +#[getters(mutable)] +pub struct ManualStart { + #[builder(default = null_mut())] + #[serde(skip, default = "null_mut")] + processor: *mut ConfObject, + #[builder(default, setter(into, strip_option))] + buffer: Option, + #[builder(default = ManualStartSize::NoSize)] + size: ManualStartSize, +} + +#[derive(TypedBuilder, Getters, Serialize, Deserialize, Debug, Clone)] +#[getters(mutable)] +pub struct MagicStart { + #[builder(default = null_mut())] + #[serde(skip, default = "null_mut")] + processor: *mut ConfObject, +} + +#[derive(TypedBuilder, Getters, Serialize, Deserialize, Debug, Clone, Default)] +#[getters(mutable)] +pub struct Stop {} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub enum SolutionKind { + Timeout, + Exception, + Breakpoint, + Manual, +} + +#[derive(TypedBuilder, Getters, Serialize, Deserialize, Debug, Clone)] +#[getters(mutable)] +pub struct Solution { + kind: SolutionKind, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +/// Definition of all the reasons the simulator could be stopped by the fuzzer. In general, +/// callbacks in the fuzzer, for example [`Driver::on_magic_instruction`] may be called +/// asynchronously and stop the simulation. +pub enum StopReason { + MagicStart(MagicStart), + MagicStop(Stop), + ManualStart(ManualStart), + ManualStop(Stop), + Solution(Solution), +} + +impl ToString for StopReason { + fn to_string(&self) -> String { + to_string(self).expect("Failed to serialize to string") + } +} + +impl FromStr for StopReason { + type Err = Error; + + fn from_str(s: &str) -> Result { + from_str(s).map_err(|e| anyhow!("Failed to deserialize from string: {e}")) + } +} diff --git a/modules/tsffs/src/tsffs/src/tracer/mod.rs b/modules/tsffs/src/tsffs/src/tracer/mod.rs new file mode 100644 index 00000000..dcf1e700 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/tracer/mod.rs @@ -0,0 +1,327 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::{anyhow, bail, Error, Result}; +use ffi_macro::ffi; +use getters::Getters; +use libafl::prelude::CmpValues; +use libafl_bolts::{AsMutSlice, AsSlice}; +use libafl_targets::{AFLppCmpLogOperands, AFLPP_CMPLOG_MAP_H, AFL_CMP_TYPE_INS}; +use simics::{ + api::{ + get_processor_number, sys::instruction_handle_t, AsConfObject, AttrValue, AttrValueType, + ConfObject, + }, + trace, +}; +use std::{collections::HashMap, ffi::c_void, fmt::Display, num::Wrapping, str::FromStr}; +use typed_builder::TypedBuilder; + +use crate::{arch::ArchitectureOperations, Tsffs}; + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum CmpExpr { + Deref((Box, Option)), + Reg((String, u8)), + Mul((Box, Box)), + Add((Box, Box)), + U8(u8), + I8(i8), + U16(u16), + I16(i16), + U32(u32), + I32(i32), + U64(u64), + I64(i64), + Addr(u64), +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[repr(u8)] +pub enum CmpType { + Equal = 1, + Greater = 2, + Lesser = 4, + Fp = 8, + FpMod = 16, + IntMod = 32, + Transform = 64, +} + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub enum CmpValue { + U8(u8), + I8(i8), + U16(u16), + I16(i16), + U32(u32), + I32(i32), + U64(u64), + I64(i64), + Expr(Box), +} + +impl TryFrom<&CmpExpr> for CmpValue { + type Error = Error; + fn try_from(value: &CmpExpr) -> Result { + Ok(match value { + CmpExpr::U8(u) => CmpValue::U8(*u), + CmpExpr::I8(i) => CmpValue::I8(*i), + CmpExpr::U16(u) => CmpValue::U16(*u), + CmpExpr::I16(i) => CmpValue::I16(*i), + CmpExpr::U32(u) => CmpValue::U32(*u), + CmpExpr::I32(i) => CmpValue::I32(*i), + CmpExpr::U64(u) => CmpValue::U64(*u), + CmpExpr::I64(i) => CmpValue::I64(*i), + _ => bail!("Can't convert directly from non-integral expr"), + }) + } +} + +fn cmp_shape(cmp: &CmpValues) -> Result { + match cmp { + CmpValues::U8(_) => Ok(0), + CmpValues::U16(_) => Ok(1), + CmpValues::U32(_) => Ok(3), + CmpValues::U64(_) => Ok(7), + _ => bail!("Shape not implemented for non-integral types"), + } +} + +fn byte_width(value: u64) -> usize { + if value < 0x10000 { + if value < 0x100 { + 1 + } else { + 2 + } + } else if value < 0x100000000 { + 4 + } else { + 8 + } +} + +/// Hash a value into an index into an array lf length `len` +fn hash_index(value: u64, len: u64) -> u64 { + let value_bytes = value.to_le_bytes(); + let hash_width = byte_width(len - 1); + let hash_iters = value_bytes.len() / hash_width; + let mut buffer = [0u8; 8]; + + for i in 0..hash_iters { + if i == 0 { + buffer[0..hash_width] + .clone_from_slice(&value_bytes[i * hash_width..(i + 1) * hash_width]) + } else { + (0..hash_width).for_each(|j| { + buffer[j] ^= value_bytes[i * hash_width..(i + 1) * hash_width][j]; + }); + } + } + + u64::from_le_bytes(buffer) +} + +#[derive(TypedBuilder, Debug, Clone, Getters, PartialEq, Eq)] +pub struct TraceEntry { + #[builder(default, setter(into, strip_option))] + /// The target of an edge in the trace + edge: Option, + #[builder(default, setter(into, strip_option))] + cmp: Option<(u64, Vec, CmpValues)>, +} + +impl Default for TraceEntry { + fn default() -> Self { + Self::builder().build() + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd, Hash)] +pub enum CoverageMode { + HitCount, + Once, +} + +impl CoverageMode { + const AS_STRING: &'static [(&'static str, Self)] = + &[("hit-count", Self::HitCount), ("once", Self::Once)]; +} + +impl Default for CoverageMode { + fn default() -> Self { + Self::HitCount + } +} + +impl FromStr for CoverageMode { + type Err = Error; + + fn from_str(s: &str) -> Result { + let as_string = Self::AS_STRING.iter().cloned().collect::>(); + + as_string.get(s).cloned().ok_or_else(|| { + anyhow!( + "Invalid coverage mode {}. Expected one of {}", + s, + Self::AS_STRING + .iter() + .map(|i| i.0) + .collect::>() + .join(", ") + ) + }) + } +} + +impl Display for CoverageMode { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let to_string = Self::AS_STRING + .iter() + .map(|(k, v)| (v, k)) + .collect::>(); + if let Some(name) = to_string.get(self) { + write!(f, "{}", name) + } else { + panic!("Invalid state for enum"); + } + } +} + +impl TryFrom for CoverageMode { + type Error = Error; + + fn try_from(value: AttrValue) -> Result { + String::try_from(value)?.parse() + } +} + +impl From for AttrValueType { + fn from(value: CoverageMode) -> Self { + value.to_string().into() + } +} + +impl Tsffs { + fn log_pc(&mut self, pc: u64) -> Result<()> { + let afl_idx = (pc ^ self.coverage_prev_loc) % self.coverage_map().as_slice().len() as u64; + let mut cur_byte: Wrapping = Wrapping(self.coverage_map().as_slice()[afl_idx as usize]); + cur_byte += 1; + self.coverage_map_mut().as_mut_slice()[afl_idx as usize] = cur_byte.0; + self.coverage_prev_loc = (pc >> 1) % self.coverage_map().as_slice().len() as u64; + + Ok(()) + } + + fn log_cmp(&mut self, pc: u64, types: Vec, cmp: CmpValues) -> Result<()> { + // Consistently hash pc to the same header index + let shape = cmp_shape(&cmp)?; + let operands = cmp + .to_u64_tuple() + .ok_or_else(|| anyhow!("Conversion to tuple of non-integral operands not supported"))?; + let pc_index = hash_index(pc, self.aflpp_cmp_map().headers().len() as u64); + + let hits = self.aflpp_cmp_map_mut().headers_mut()[pc_index as usize].hits(); + + if hits == 0 { + trace!( + self.as_conf_object(), + "Logging first hit of comparison with types {types:?} and values {cmp:?} (assume == if no types)" + ); + } + + self.aflpp_cmp_map_mut().headers_mut()[pc_index as usize].set_hits(hits + 1); + self.aflpp_cmp_map_mut().headers_mut()[pc_index as usize].set_shape(shape); + self.aflpp_cmp_map_mut().headers_mut()[pc_index as usize].set__type(AFL_CMP_TYPE_INS); + + if let Some(attribute) = types.iter().map(|t| *t as u32).reduce(|acc, t| acc | t) { + self.aflpp_cmp_map_mut().headers_mut()[pc_index as usize].set_attribute(attribute); + // NOTE: overflow isn't used by aflppredqueen + } else { + // Naively use EQ if we don't have a value + self.aflpp_cmp_map_mut().headers_mut()[pc_index as usize] + .set_attribute(CmpType::Equal as u32); + } + + self.aflpp_cmp_map_mut().values_mut().operands_mut()[pc_index as usize] + [hits as usize % AFLPP_CMPLOG_MAP_H] = AFLppCmpLogOperands::new(operands.0, operands.1); + + Ok(()) + } +} + +#[ffi(from_ptr, expect, self_ty = "*mut c_void")] +impl Tsffs { + #[ffi(arg(rest), arg(self))] + /// Callback after each instruction executed + /// + /// # Arguments + /// + /// * `obj` + /// * `cpu` - The processor the instruction is being executed by + /// * `handle` - An opaque handle to the instruction being executed + pub fn on_instruction_after( + &mut self, + _obj: *mut ConfObject, + cpu: *mut ConfObject, + handle: *mut instruction_handle_t, + ) -> Result<()> { + let processor_number = get_processor_number(cpu)?; + + if *self.coverage_enabled() { + if let Some(arch) = self.processors_mut().get_mut(&processor_number) { + match arch.trace_pc(handle) { + Ok(r) => { + if let Some(pc) = r.edge() { + self.log_pc(*pc)?; + } + } + Err(_) => { + // This is not really an error, but we may want to know about it + // sometimes when debugging + // trace!(self.as_conf_object(), "Error tracing for PC: {e}"); + } + } + } + } + + Ok(()) + } + + #[ffi(arg(rest), arg(self))] + /// Callback after each instruction executed + /// + /// # Arguments + /// + /// * `obj` + /// * `cpu` - The processor the instruction is being executed by + /// * `handle` - An opaque handle to the instruction being executed + pub fn on_instruction_before( + &mut self, + _obj: *mut ConfObject, + cpu: *mut ConfObject, + handle: *mut instruction_handle_t, + ) -> Result<()> { + let processor_number = get_processor_number(cpu)?; + + if *self.configuration().cmplog() && *self.cmplog_enabled() { + if let Some(arch) = self.processors_mut().get_mut(&processor_number) { + match arch.trace_cmp(handle) { + Ok(r) => { + if let Some((pc, types, cmp)) = r.cmp() { + self.log_cmp(*pc, types.clone(), cmp.clone())?; + } + } + Err(_) => { + // This is not really an error, but we may want to know about it + // sometimes when debugging + // trace!(self.as_conf_object(), "Error tracing for CMP: {e}"); + } + } + } + } + + Ok(()) + } +} diff --git a/modules/tsffs/src/tsffs/src/traits/mod.rs b/modules/tsffs/src/tsffs/src/traits/mod.rs new file mode 100644 index 00000000..2d42329a --- /dev/null +++ b/modules/tsffs/src/tsffs/src/traits/mod.rs @@ -0,0 +1,17 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use crate::tracer::{CmpExpr, CmpType}; +use anyhow::Result; + +/// Trait for disassemblers of various architectures to implement to permit branch +/// and compare tracing +pub trait TracerDisassembler { + fn disassemble(&mut self, bytes: &[u8]) -> Result<()>; + fn last_was_control_flow(&self) -> bool; + fn last_was_call(&self) -> bool; + fn last_was_ret(&self) -> bool; + fn last_was_cmp(&self) -> bool; + fn cmp(&self) -> Vec; + fn cmp_type(&self) -> Vec; +} diff --git a/modules/tsffs/src/tsffs/src/util/mod.rs b/modules/tsffs/src/tsffs/src/util/mod.rs new file mode 100644 index 00000000..bfa042a5 --- /dev/null +++ b/modules/tsffs/src/tsffs/src/util/mod.rs @@ -0,0 +1,24 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use anyhow::Result; +use simics::api::{get_attribute, get_object}; +use simics_macro::TryFromAttrValueTypeList; + +#[derive(Debug, Clone, TryFromAttrValueTypeList)] +pub struct MicroCheckpointInfo { + pub name: String, + #[allow(unused)] + pub pages: u64, + #[allow(unused)] + pub zero: u64, +} + +pub struct Utils {} + +impl Utils { + /// Get the list of saved micro checkpoints + pub fn get_micro_checkpoints() -> Result> { + Ok(get_attribute(get_object("sim.rexec")?, "state_info")?.try_into()?) + } +} diff --git a/modules/tsffs/src/util/command-ext/Cargo.toml b/modules/tsffs/src/util/command-ext/Cargo.toml new file mode 100644 index 00000000..55ccbd9d --- /dev/null +++ b/modules/tsffs/src/util/command-ext/Cargo.toml @@ -0,0 +1,17 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[package] +name = "command-ext" +authors = ["Rowan Hart "] +description = "Extension traits for std::process::Command" +edition = "2021" +license = "Apache-2.0" +publish = false +repository = "https://github.com/intel/tsffs" +version = "0.1.0" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +thiserror = "1.0.48" diff --git a/modules/tsffs/src/util/command-ext/src/lib.rs b/modules/tsffs/src/util/command-ext/src/lib.rs new file mode 100644 index 00000000..e0c6d4a3 --- /dev/null +++ b/modules/tsffs/src/util/command-ext/src/lib.rs @@ -0,0 +1,106 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +use std::{ + io::{self}, + process::{Command, Output}, +}; +use thiserror::Error; + +#[derive(Error, Debug)] +/// An error when checking the result of a command +pub enum CommandExtError { + #[error("Command failed to execute with code ({code}), stdout ({stdout}), stderr ({stderr})")] + Check { + code: i32, + stdout: String, + stderr: String, + }, + #[error("I/O error: {source}")] + Io { source: io::Error }, +} + +pub trait CommandExt: CommandExtCheck {} + +/// Extension trait for [`std::process::Command`] to check the output of a command +pub trait CommandExtCheck { + type Error; + + /// Check the result of a command, returning an error containing the output and + /// error stream content if the status is not success + fn check(&mut self) -> Result; +} + +impl CommandExtCheck for Command { + type Error = CommandExtError; + + /// Check the result of a command, returning an error containing the output and + /// error stream content if the status is not success + fn check(&mut self) -> Result { + self.output() + .map_err(|e| CommandExtError::Io { source: e }) + .and_then(|r| { + r.status + .success() + .then_some(r.clone()) + .ok_or_else(|| CommandExtError::Check { + code: r.status.code().unwrap_or(-1), + stdout: String::from_utf8_lossy(&r.stdout).to_string(), + stderr: String::from_utf8_lossy(&r.stderr).to_string(), + }) + }) + } +} + +#[cfg(test)] +mod test { + use std::process::Command; + + use crate::{CommandExtCheck, CommandExtError}; + + #[test] + #[cfg_attr(miri, ignore)] + /// Check that a successful command returns a success output + fn test_success() { + let output = Command::new("echo").arg("x").check(); + match output { + Ok(output) => assert_eq!( + String::from_utf8_lossy(&output.stdout), + "x\n", + "Output mismatch" + ), + Err(e) => panic!("Unexpected error from command: {}", e), + }; + } + + #[test] + #[cfg_attr(miri, ignore)] + /// Test that a command that doesn't exist returns a wrapped IO error + fn test_nocmd() { + let output = Command::new("asdfasdfasdfasdfjkljkljkl").check(); + + match output { + Ok(output) => panic!("Unexpected success from command: {:?}", output), + Err(e) => assert!(matches!(e, CommandExtError::Io { source: _ })), + } + } + + #[test] + #[cfg_attr(miri, ignore)] + /// Test that a command which fails by returning a nonzero status code returns a check error + fn test_failure() { + let output = Command::new("false").check(); + + match output { + Ok(output) => panic!("Unexpected success from command: {:?}", output), + Err(e) => assert!(matches!( + e, + CommandExtError::Check { + code: _, + stdout: _, + stderr: _ + } + )), + } + } +} diff --git a/util/ffi-macro/Cargo.toml b/modules/tsffs/src/util/ffi-macro/Cargo.toml similarity index 97% rename from util/ffi-macro/Cargo.toml rename to modules/tsffs/src/util/ffi-macro/Cargo.toml index 5c9433a3..9a7aa1e4 100644 --- a/util/ffi-macro/Cargo.toml +++ b/modules/tsffs/src/util/ffi-macro/Cargo.toml @@ -25,6 +25,7 @@ proc-macro-error = "1.0.4" quote = "1.0.26" syn = { version = "2.0.15", features = ["full"] } anyhow.workspace = true +darling = "0.20.3" [dev-dependencies] anyhow.workspace = true diff --git a/modules/tsffs/src/util/ffi-macro/src/lib.rs b/modules/tsffs/src/util/ffi-macro/src/lib.rs new file mode 100644 index 00000000..ab969c47 --- /dev/null +++ b/modules/tsffs/src/util/ffi-macro/src/lib.rs @@ -0,0 +1,670 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! The `ffi` macro automatically generates a module containing FFI-compatible functions that +//! wrap a struct or enum's implementation methods, to facilitate their use in callbacks. +//! +//! For example, suppose a C functon that schedules a callback to run at a later time which will +//! compute the sum of two numbers and return the result. As is typical, this callback also takes +//! a user-data `void *` parameter, which will be passed as-is to the callback. +//! +//! ```c,ignore +//! int schedule_add_callback(uint64_t (*cb)(uint64_t, uint64_t, void *), void *userdata); +//! ``` +//! +//! Doing this in Rust requires a large amount of boilerplate. In particular, you must provide a +//! C ABI compatible function as the callback parameter by declaring a separate function like: +//! +//! ```rust,ignore +//! #[no_mangle] +//! pub extern "C" fn cb(a: u64, b: u64, _: *mut std::ffi::c_void) -> u64 { a + b } +//! ``` +//! +//! Complicating matters, suppose the callback is not invoked in a stateless fashion, +//! and your program needs to store information or produce some side effect when this +//! callback is triggered. In this case, you likely have a struct instance containing some state, +//! along with implementations roughly corresponding to your desired callback behavior. This macro +//! automates the process of wrapping those implementation methods in FFI-compatible extern +//! functions that can be used as FFI callbacks, or automating parts of creating a C API to your +//! library. +//! +//! In the above example, suppose we have an accumulator which stores the total sum of all +//! nubers it has been asked to add, as well as returning the result of various mathematical +//! operations. Using `ffi_macro`, this looks like: +//! +//! +//! ```rust,ignore +//! use std::{ffi::c_void, ptr::addr_of_mut}; +//! +//! use anyhow::Result; +//! use ffi_macro::ffi; +//! +//! #[derive(Debug, Default)] +//! pub struct Accumulator { +//! total: u64, +//! } +//! +//! impl From<*mut std::ffi::c_void> for &mut Accumulator { +//! fn from(value: *mut std::ffi::c_void) -> Self { +//! unsafe { *(value as *mut Self) } +//! } +//! } +//! +//! #[ffi(mod_name = "ffi", expect, self_ty = "*mut std::ffi::c_void")] +//! impl Accumulator { +//! #[ffi(arg(rest), arg(self))] +//! pub fn add(&mut self, a: u64, b: u64) -> Result { +//! self.total += a; +//! self.total += b; +//! Ok(a + b) +//! } +//! } +//! +//! fn main() { +//! let mut a = Accumulator::default(); +//! let res = ffi::add(1, 2, addr_of_mut!(a) as *mut c_void); +//! assert_eq!(res, 3); +//! assert_eq!(a.total, 3); +//! } +//! ``` + +#![deny(clippy::unwrap_used)] +#![forbid(unsafe_code)] + +use std::collections::HashMap; + +use darling::{ + ast::NestedMeta, + util::{Flag, WithOriginal}, + Error, FromAttributes, FromMeta, Result, +}; +use proc_macro::TokenStream; +use proc_macro2::TokenStream as TokenStream2; +use proc_macro_error::{abort, proc_macro_error}; +use quote::{format_ident, quote}; +use syn::{ + parse_macro_input, parse_str, FnArg, ImplGenerics, ImplItem, ImplItemFn, ItemImpl, Pat, + PathArguments, ReturnType, Type, TypeGenerics, WhereClause, +}; + +#[derive(Debug, Clone, FromMeta)] +#[darling(and_then = "Self::validate")] +struct FfiMethodOptArg { + #[darling(rename = "self")] + /// Whether this argument needs to be converted to the receiver type + receiver: Flag, + #[darling(default)] + ty: Option, + #[darling(default)] + rename: Option, + rest: Flag, +} + +impl FfiMethodOptArg { + fn validate(self) -> Result { + if self.receiver.is_present() && self.rest.is_present() { + Err(Error::custom( + "An argument may either be self or have rest enabled.", + )) + } else if self.rest.is_present() && (self.ty.is_some() || self.rename.is_some()) { + Err(Error::custom( + "The rest argument may not specify a rename or type change", + )) + } else { + Ok(self) + } + } +} + +#[derive(Debug, FromAttributes)] +#[darling(attributes(ffi))] +struct FfiMethodOpts { + expect: Flag, + #[darling(default)] + visibility: Option, + #[darling(default)] + name: Option, + #[darling(multiple)] + arg: Vec, +} + +impl FfiMethodOpts { + fn visibility(&self) -> TokenStream2 { + if let Some(ref visibility) = self.visibility { + match parse_str(visibility) { + Ok(visibility) => visibility, + Err(e) => Error::from(e).write_errors(), + } + } else { + // NOTE: Default is "pub" because typically this is required for FFI + quote!(pub) + } + } +} + +#[derive(Debug)] +struct FfiMethods<'a> { + ffi_self_ty: Option, + expect: Flag, + self_ty: Type, + self_generics: (ImplGenerics<'a>, TypeGenerics<'a>, Option<&'a WhereClause>), + ffi_methods: Vec>, + other_items: Vec<&'a ImplItem>, +} + +impl<'a> TryFrom<(&'a ItemImpl, Option, Flag)> for FfiMethods<'a> { + type Error = Error; + + fn try_from(value: (&'a ItemImpl, Option, Flag)) -> Result { + let expect = value.2; + let ffi_self_ty = value.1; + let value = value.0; + let self_generics = value.generics.split_for_impl(); + let mut ffi_methods = Vec::new(); + let mut other_items = Vec::new(); + let mut errors = Vec::new(); + + value.items.iter().for_each(|i| { + if let ImplItem::Fn(ref f) = i { + match FfiMethodOpts::from_attributes(&f.attrs) { + Ok(opts) => { + let mut f = f.clone(); + // NOTE: This effectively makes splitting the ffi() macro across multiple invocations + // an error. I'm okay with that, I don't like the syntax and it'll break the argument + // ordering anyway. + f.attrs + .retain(|a| FfiMethodOpts::from_attributes(&[a.clone()]).is_err()); + ffi_methods.push(WithOriginal::new(opts, f)); + } + Err(e) => errors.push(e), + } + } else { + other_items.push(i); + } + }); + + if !errors.is_empty() { + Err(Error::multiple(errors)) + } else { + Ok(Self { + ffi_self_ty, + expect, + self_ty: *value.self_ty.clone(), + self_generics, + ffi_methods, + other_items, + }) + } + } +} + +impl<'a> FfiMethods<'a> { + fn original(&self) -> TokenStream2 { + let orig_ffi_methods = self + .ffi_methods + .iter() + .map(|m| &m.original) + .collect::>(); + + let other_items = &self.other_items; + + quote! { + #(#orig_ffi_methods)* + #(#other_items)* + } + } + + fn ffi_return_ty(return_ty: &ReturnType, expect: bool) -> (TokenStream2, TokenStream2, bool) { + if expect { + if let ReturnType::Type(_, t) = return_ty { + if let Type::Path(p) = &**t { + if let Some(last) = p.path.segments.last() { + if last.ident == "Result" { + if let PathArguments::AngleBracketed(a) = &last.arguments { + return ( + quote!(#return_ty), + a.args + .first() + .map(|a| quote!(-> #a)) + .unwrap_or(quote!(#return_ty)), + true, + ); + } + } + } + } + } + } + + (quote!(#return_ty), quote!(#return_ty), false) + } + + fn ffi(&self) -> TokenStream2 { + // NOTE: by default, the first argument is the receiver. + let mut methods = Vec::new(); + + for method in &self.ffi_methods { + let ffi_func_name = method + .parsed + .name + .as_ref() + .map(|n| { + let name = format_ident!("{n}"); + quote!(#name) + }) + .unwrap_or({ + let name = &method.original.sig.ident; + quote!(#name) + }); + + let (_impl_method_return_ty, ffi_func_return_ty, need_expect) = Self::ffi_return_ty( + &method.original.sig.output, + method.parsed.expect.is_present() || self.expect.is_present(), + ); + + let Some(impl_method_receiver) = method.original.sig.receiver() else { + abort!(method.original, "No receiver on method"); + }; + + let maybe_mut_ref = impl_method_receiver.mutability.map(|m| quote!(#m)); + + let impl_method_args = method.original.sig.inputs.iter().collect::>(); + + let impl_method_args_no_receiver = method + .original + .sig + .inputs + .iter() + .filter(|a| !matches!(a, FnArg::Receiver(_))) + .cloned() + .collect::>(); + + let mut ffi_receiver_name = None; + let mut ffi_func_args = Vec::new(); + let mut ffi_func_renames = HashMap::new(); + + for (i, arg) in method.parsed.arg.iter().enumerate() { + if arg.receiver.is_present() { + let ty = if let Some(ref ty) = arg.ty { + match parse_str::(ty) { + Ok(ty) => quote!(#ty), + Err(e) => return Error::from(e).write_errors(), + } + } else if let Some(ref ty) = self.ffi_self_ty { + quote!(#ty) + } else { + let ty = &self.self_ty; + quote!(#ty) + }; + + let name = arg + .rename + .as_ref() + .map(|n| { + let n = format_ident!("{n}"); + quote!(#n) + }) + .unwrap_or(quote!(slf)); + ffi_func_args.push(quote!(#name: #ty)); + ffi_receiver_name = Some(name); + } else if arg.rest.is_present() { + // If we have already seen the receiver argument, we need to look one + // argument forward + let mut arg_index = i; + + if ffi_receiver_name.is_none() { + arg_index += 1; + } + + ffi_func_args.extend( + impl_method_args_no_receiver + .iter() + .enumerate() + .filter_map(|(i, a)| (i >= arg_index - 1).then_some(a)) + .map(|a| quote!(#a)), + ); + } else if ffi_func_args.len() <= impl_method_args_no_receiver.len() + 1 { + // If we have already seen the receiver argument, we need to look one + // argument forward + let mut arg_index = i; + + if ffi_receiver_name.is_none() { + arg_index += 1; + } + + if let Some(FnArg::Typed(impl_method_arg_pat_type)) = + impl_method_args.get(arg_index) + { + let ty = &impl_method_arg_pat_type.ty; + if let Some(ref rename) = arg.rename { + ffi_func_renames.insert(i, (rename, ty)); + ffi_func_args.push({ + let rename = format_ident!("{rename}"); + quote!(#rename: #ty) + }); + } else { + ffi_func_args.push(quote!(#impl_method_arg_pat_type)); + } + } else { + return Error::custom( + "Argument is not a typed argument while getting ffi function arguments", + ) + .write_errors(); + } + } else { + return Error::custom( + "Argument is not a typed argument while getting ffi function arguments", + ) + .write_errors(); + } + } + + let mut impl_method_call_args = Vec::new(); + + for (i, arg) in impl_method_args_no_receiver.iter().enumerate() { + if let Some((rename, _ty)) = ffi_func_renames.get(&i) { + let ident = format_ident!("{rename}"); + impl_method_call_args.push(quote!(#ident)); + } else { + let FnArg::Typed(ref typed) = arg else { + return Error::custom(format!("Argument {i} is not a typed argument")) + .write_errors(); + }; + let Pat::Ident(ref ident) = &*typed.pat else { + return Error::custom("Pattern is not an identifier").write_errors(); + }; + let ident = &ident.ident; + impl_method_call_args.push(quote!(#ident)); + } + } + + let self_ty = &self.self_ty; + let ffi_func_visibility = method.parsed.visibility(); + let Some(self_name) = ffi_receiver_name else { + return Error::custom("No receiver name").write_errors(); + }; + let impl_method_name = &method.original.sig.ident; + let impl_maybe_expect = need_expect + .then_some({ + let expect_message = + format!("Failed to execute FFI method {}", method.original.sig.ident); + quote!(.expect(#expect_message)) + }) + .unwrap_or_default(); + let (_self_impl_genrics, self_ty_generics, self_where_clause) = &self.self_generics; + + let impl_method_call = quote! { + Into::<&#maybe_mut_ref #self_ty>::into(#self_name).#impl_method_name( + #(#impl_method_call_args),* + )#impl_maybe_expect + }; + + methods.push(quote! { + #[no_mangle] + #ffi_func_visibility extern "C" fn #ffi_func_name #self_ty_generics( + #(#ffi_func_args),* + ) #ffi_func_return_ty #self_where_clause { + #impl_method_call + } + }) + } + + quote! { + #(#methods)* + } + } +} + +#[derive(Debug, FromMeta)] +struct FfiOpts { + #[darling(default, rename = "mod_name")] + name: Option, + #[darling(default)] + visibility: Option, + #[darling(default)] + self_ty: Option, + expect: Flag, + from_ptr: Flag, + from_any_ptr: Flag, +} + +#[proc_macro_attribute] +#[proc_macro_error] +/// FFI helper macro +/// +/// Accepts the following options: +/// +/// ```rust,ignore +/// #[ffi( +/// mod_name = "your_ffi_mod_name", +/// visibility = "pub(crate)", +/// self_ty = "*mut std::ffi::c_void", +/// expect +/// )] +/// impl Foo {} +/// ``` +/// +/// All options are optional. The module name defaults to the name of the implementation's self +/// type (i.e. `Foo` in the example above). The visibility defaults to `pub`. The self type +/// on each method takes priority, followed by the implementation-wide type, then defaults to +/// the self type of the implementation if noneis provided. By default, result types will not +/// be unwrapped with `.expect()` and will be returned as-is. +/// +/// Function items in the implementation accept their own set of arguments. +/// +/// ```rust,ignore +/// #[ffi( +/// mod_name = "your_ffi_mod_name", +/// visibility = "pub(crate)", +/// self_ty = "*mut std::ffi::c_void", +/// expect +/// )] +/// impl Foo { +/// #[ffi( +/// expect, +/// visibility = "pub(crate)", +/// name = "bar_override", +/// arg(self), +/// arg(rest), +/// )] +/// pub fn bar(&self, a: u64, b: Baz) -> anyhow::Result { +/// self.total += a + b.xyzzy(a); +/// Ok(a) +/// } +/// } +/// ``` +/// +/// The first three arguments (expect, visibility, name) are optional. Expect and visibility have +/// the same meaning as the impl-wide settings, and allow more granular control. `arg` can be +/// specified multiple times, with the following flags. `self`, marks the arg in the corresponding +/// position in the FFI callback's parameters as the receiver. `ty = "OtherType"` allows overriding +/// the type of individual FFI parameters (for example, to receive void pointers instead of +/// references. `rename = "othername"` to rename the parameter, and `rest`, which indicates the +/// remaining arguments should be added as-they-are to the FFI function's parameters. +pub fn ffi(args: TokenStream, input: TokenStream) -> TokenStream { + let meta = match NestedMeta::parse_meta_list(args.into()) { + Ok(o) => o, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + }; + + // Extract the options from the #[ffi()] attribute + let impl_item_opts = match FfiOpts::from_list(&meta) { + Ok(o) => o, + Err(e) => return TokenStream::from(e.write_errors()), + }; + + let impl_item = parse_macro_input!(input as ItemImpl); + + // Extract the trait component of the `impl X (for Y) {` item. We need this in addition to the + // generics below because we re-emit the original implementation. + let maybe_trait = impl_item.trait_.as_ref().map(|(not, path, f)| { + let maybe_not = not.map(|not| quote!(#not)).unwrap_or_default(); + quote!(#maybe_not #path #f) + }); + + let impl_generics = &impl_item.generics.params.iter().collect::>(); + let where_clause = &impl_item.generics.where_clause; + + let (impl_item_name, self_ty_generics) = if let Type::Path(p) = &*impl_item.self_ty { + if let Some(last) = p.path.segments.last() { + match last.arguments { + PathArguments::None => { + let name = &impl_item.self_ty; + (quote!(#name), vec![]) + } + PathArguments::AngleBracketed(ref a) => { + let last_ident = &last.ident; + let mut segments = p.path.segments.iter().cloned().collect::>(); + segments.pop(); + let segments = segments.iter().map(|s| quote!(#s)).collect::>(); + let impl_item_name = quote!(#(#segments)::*#last_ident); + let ty_generics = a.args.clone().into_iter().collect::>(); + (impl_item_name, ty_generics) + } + PathArguments::Parenthesized(_) => abort!( + impl_item, + "Parenthesized path arguments are not allowed here" + ), + } + } else { + abort!(impl_item, "Self type must have segments"); + } + } else { + abort!(impl_item, "Self type must be path"); + }; + + let impl_methods = match FfiMethods::try_from(( + &impl_item, + impl_item_opts + .self_ty + .as_ref() + .and_then(|s| parse_str::(s).ok()), + impl_item_opts.expect, + )) { + Ok(o) => o, + Err(e) => return e.write_errors().into(), + }; + + let impl_methods_original = &impl_methods.original(); + + let ffi_mod_name = match impl_item_opts.name.map(|n| { + let n = format_ident!("{n}"); + quote!(#n) + }) { + Some(n) => n, + None => { + let Type::Path(path) = impl_item.self_ty.as_ref() else { + abort!(impl_item, "Implementation self type is not a path"); + }; + let Some(name) = path.path.segments.first() else { + abort!(path, "Path has no segments"); + }; + let ffi_mod_name = format_ident!("{}", name.ident.to_string().to_ascii_lowercase()); + quote!(#ffi_mod_name) + } + }; + + let ffi_mod_visibility = if let Some(ref visibility) = impl_item_opts.visibility { + match parse_str(visibility) { + Ok(visibility) => visibility, + Err(e) => return TokenStream::from(Error::from(e).write_errors()), + } + } else { + // NOTE: Defaults to public visibility, because this is typically requred for FFI + quote!(pub) + }; + + let ffi_mod_methods = &impl_methods.ffi(); + + let mut impl_generics_from = self_ty_generics + .iter() + .map(|g| quote!(#g)) + .collect::>(); + + if impl_item_opts.from_any_ptr.is_present() { + impl_generics_from.push(quote!(T)); + } + + let maybe_from_any_ptr = impl_item_opts.from_any_ptr.is_present().then_some(quote! { + impl<#(#impl_generics_from),*> From<*mut T> for &'static mut #impl_item_name<#(#self_ty_generics),*> { + fn from(value: *mut T) -> Self { + let ptr: *mut #impl_item_name <#(#self_ty_generics),*>= value as *mut #impl_item_name <#(#self_ty_generics),*>; + unsafe { &mut *ptr } + } + } + + impl<#(#impl_generics_from),*> From<*mut T> for &'static #impl_item_name<#(#self_ty_generics),*> { + fn from(value: *mut T) -> Self { + let ptr: *mut #impl_item_name <#(#self_ty_generics),*> = value as *mut #impl_item_name <#(#self_ty_generics),*>; + unsafe { &*ptr } + } + } + + impl<#(#impl_generics_from),*> From<*const T> for &'static #impl_item_name<#(#self_ty_generics),*> { + fn from(value: *const T) -> Self { + let ptr: *const #impl_item_name <#(#self_ty_generics),*> = value as *const #impl_item_name <#(#self_ty_generics),*>; + unsafe { &*ptr } + } + } + }).unwrap_or_default(); + + let maybe_from_ptr = if impl_item_opts.from_ptr.is_present() { + impl_item_opts + .self_ty + .as_ref() + .and_then(|st| { + parse_str(st).ok().map(|stp: Type| { + quote! { + impl<#(#impl_generics_from),*> From<#stp> for &'static mut #impl_item_name<#(#self_ty_generics),*> { + fn from(value: #stp) -> Self { + let ptr: *mut #impl_item_name <#(#self_ty_generics),*>= value as *mut #impl_item_name <#(#self_ty_generics),*>; + unsafe { &mut *ptr } + } + } + + impl<#(#impl_generics_from),*> From<#stp> for &'static #impl_item_name<#(#self_ty_generics),*> { + fn from(value: #stp) -> Self { + let ptr: *mut #impl_item_name <#(#self_ty_generics),*> = value as *mut #impl_item_name <#(#self_ty_generics),*>; + unsafe { &*ptr } + } + } + } + }) + }) + .unwrap_or_default() + } else { + quote!() + }; + + let maybe_impl_generics = if impl_generics.is_empty() { + quote!() + } else { + quote!(<#(#impl_generics),*>) + }; + + let maybe_self_ty_generics = if self_ty_generics.is_empty() { + quote!() + } else { + quote!(<#(#self_ty_generics),*>) + }; + + let q: TokenStream = quote! { + impl #maybe_impl_generics #maybe_trait #impl_item_name #maybe_self_ty_generics #where_clause { + #impl_methods_original + } + + #maybe_from_ptr + + #maybe_from_any_ptr + + #ffi_mod_visibility mod #ffi_mod_name { + use super::*; + #ffi_mod_methods + } + } + .into(); + + // println!("{q}"); + + q +} diff --git a/modules/tsffs/src/util/ffi-macro/tests/example.rs b/modules/tsffs/src/util/ffi-macro/tests/example.rs new file mode 100644 index 00000000..9f2d71e7 --- /dev/null +++ b/modules/tsffs/src/util/ffi-macro/tests/example.rs @@ -0,0 +1,32 @@ +use std::{ffi::c_void, ptr::addr_of_mut}; + +use anyhow::Result; +use ffi_macro::ffi; + +#[derive(Debug, Default)] +pub struct Accumulator { + total: u64, +} + +impl From<*mut std::ffi::c_void> for &mut Accumulator { + fn from(value: *mut std::ffi::c_void) -> Self { + unsafe { *(value as *mut Self) } + } +} + +#[ffi(mod_name = "ffi", expect, self_ty = "*mut std::ffi::c_void")] +impl Accumulator { + #[ffi(arg(rest), arg(self))] + pub fn add(&mut self, a: u64, b: u64) -> Result { + self.total += a; + self.total += b; + Ok(a + b) + } +} + +fn main() { + let mut a = Accumulator::default(); + let res = ffi::add(1, 2, addr_of_mut!(a) as *mut c_void); + assert_eq!(res, 3); + assert_eq!(a.total, 3); +} diff --git a/modules/tsffs/src/util/ffi-macro/tests/test_basic_ffi.rs b/modules/tsffs/src/util/ffi-macro/tests/test_basic_ffi.rs new file mode 100644 index 00000000..d2da41bf --- /dev/null +++ b/modules/tsffs/src/util/ffi-macro/tests/test_basic_ffi.rs @@ -0,0 +1,135 @@ +use ffi_macro::ffi; +use std::ffi::c_void; + +pub struct Test { + x: u64, +} + +impl From<*mut c_void> for &Test { + fn from(value: *mut c_void) -> Self { + unsafe { *(value as *mut Self) } + } +} + +#[ffi(mod_name = "test_ffi_forward", self_ty = "*mut std::ffi::c_void")] +impl Test { + #[ffi(arg(self), arg(), arg(), arg())] + pub fn test_forward(&self, a: u64, b: u64, c: u64) -> u64 { + a + b + c + self.x + } +} + +#[ffi(mod_name = "test_ffi_reverse", self_ty = "*mut std::ffi::c_void")] +impl Test { + #[ffi(arg(), arg(), arg(), arg(self))] + pub fn test_reverse(&self, a: u64, b: u64, c: u64) -> u64 { + a + b + c + self.x + } +} + +#[ffi(mod_name = "test_ffi_middle", self_ty = "*mut std::ffi::c_void")] +impl Test { + #[ffi(arg(), arg(self), arg(), arg())] + pub fn test_middle(&self, a: u64, b: u64, c: u64) -> u64 { + a + b + c + self.x + } +} + +#[ffi(mod_name = "test_ffi_forward_rest", self_ty = "*mut std::ffi::c_void")] +impl Test { + #[ffi(arg(self), arg(rest))] + pub fn test_forward_rest(&self, a: u64, b: u64, c: u64) -> u64 { + a + b + c + self.x + } +} + +#[ffi(mod_name = "test_ffi_reverse_rest", self_ty = "*mut std::ffi::c_void")] +impl Test { + #[ffi(arg(rest), arg(self))] + pub fn test_reverse_rest(&self, a: u64, b: u64, c: u64) -> u64 { + a + b + c + self.x + } +} + +#[ffi(mod_name = "test_ffi_middle_rest", self_ty = "*mut std::ffi::c_void")] +impl Test { + #[ffi(arg(), arg(self), arg(rest))] + pub fn test_middle_rest(&self, a: u64, b: u64, c: u64) -> u64 { + a + b + c + self.x + } +} + +#[ffi( + mod_name = "test_ffi_forward_expect", + expect, + self_ty = "*mut std::ffi::c_void" +)] +impl Test { + #[ffi(arg(self), arg(), arg(), arg())] + pub fn test_forward_expect(&self, a: u64, b: u64, c: u64) -> anyhow::Result { + Ok(a + b + c + self.x) + } +} + +#[ffi( + mod_name = "test_ffi_reverse_expect", + expect, + self_ty = "*mut std::ffi::c_void" +)] +impl Test { + #[ffi(arg(), arg(), arg(), arg(self))] + pub fn test_reverse_expect(&self, a: u64, b: u64, c: u64) -> anyhow::Result { + Ok(a + b + c + self.x) + } +} + +#[ffi( + mod_name = "test_ffi_middle_expect", + expect, + self_ty = "*mut std::ffi::c_void" +)] +impl Test { + #[ffi(arg(), arg(self), arg(), arg())] + pub fn test_middle_expect(&self, a: u64, b: u64, c: u64) -> anyhow::Result { + Ok(a + b + c + self.x) + } +} + +#[ffi( + mod_name = "test_ffi_forward_rest_expect", + expect, + self_ty = "*mut std::ffi::c_void" +)] +impl Test { + #[ffi(arg(self), arg(rest))] + pub fn test_forward_rest_expect(&self, a: u64, b: u64, c: u64) -> anyhow::Result { + Ok(a + b + c + self.x) + } +} + +#[ffi( + mod_name = "test_ffi_reverse_rest_expect", + expect, + self_ty = "*mut std::ffi::c_void" +)] +impl Test { + #[ffi(arg(rest), arg(self))] + pub fn test_reverse_rest_expect(&self, a: u64, b: u64, c: u64) -> anyhow::Result { + Ok(a + b + c + self.x) + } +} + +#[ffi( + mod_name = "test_ffi_middle_rest_expect", + expect, + self_ty = "*mut std::ffi::c_void" +)] +impl Test { + #[ffi(arg(), arg(self), arg(rest))] + pub fn test_middle_rest_expect(&self, a: u64, b: u64, c: u64) -> anyhow::Result { + Ok(a + b + c + self.x) + } +} + +#[cfg(test)] +mod test {} diff --git a/modules/tsffs/src/util/ffi-macro/tests/test_lifetime.rs b/modules/tsffs/src/util/ffi-macro/tests/test_lifetime.rs new file mode 100644 index 00000000..879c26d0 --- /dev/null +++ b/modules/tsffs/src/util/ffi-macro/tests/test_lifetime.rs @@ -0,0 +1,21 @@ +use ffi_macro::ffi; +use std::ffi::c_void; + +pub struct Test<'a> +where + 'a: 'static, +{ + x: &'a mut u64, +} + +#[ffi(from_ptr, expect, self_ty = "*mut c_void")] +impl<'a> Test<'a> +where + 'a: 'static, +{ + #[ffi(arg(rest), arg(self))] + pub fn get(&mut self, y: u64) -> u64 { + *self.x += y; + *self.x + } +} diff --git a/modules/tsffs/src/util/ffi-macro/tests/ui.rs b/modules/tsffs/src/util/ffi-macro/tests/ui.rs new file mode 100644 index 00000000..936d66f5 --- /dev/null +++ b/modules/tsffs/src/util/ffi-macro/tests/ui.rs @@ -0,0 +1,9 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#[test] +#[cfg_attr(miri, ignore)] +fn ui() { + // let t = trybuild::TestCases::new(); + // t.compile_fail("tests/ui/test_missing_params.rs"); +} diff --git a/modules/tsffs/src/util/getters/Cargo.toml b/modules/tsffs/src/util/getters/Cargo.toml new file mode 100644 index 00000000..cca3005d --- /dev/null +++ b/modules/tsffs/src/util/getters/Cargo.toml @@ -0,0 +1,31 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[package] +name = "getters" +categories.workspace = true +description = "Macro for deriving getters and mutable getters for all fields of a struct" +edition.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +publish.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lib] +proc-macro = true + +[dependencies] +proc-macro2 = "1.0.56" +quote = "1.0.26" +syn = { version = "2.0.15", features = ["full"] } +darling = "0.20.3" + +[dev-dependencies] +anyhow.workspace = true +trybuild = "1.0.80" + diff --git a/modules/tsffs/src/util/getters/src/lib.rs b/modules/tsffs/src/util/getters/src/lib.rs new file mode 100644 index 00000000..8a32b8ae --- /dev/null +++ b/modules/tsffs/src/util/getters/src/lib.rs @@ -0,0 +1,112 @@ +use darling::{ast::Data, util::Flag, FromDeriveInput, FromField}; +use proc_macro::TokenStream; +use proc_macro2::TokenStream as TokenStream2; +use quote::{format_ident, quote, ToTokens}; +use syn::{parse_macro_input, DeriveInput, Generics, Ident, Type}; + +#[derive(Debug, FromField)] +#[darling(attributes(getters))] +struct GettersField { + ident: Option, + ty: Type, + mutable: Flag, + skip: Flag, +} + +#[derive(Debug, FromDeriveInput)] +#[darling( + attributes(getters), + supports(struct_named), + forward_attrs(allow, doc, cfg) +)] +struct Getters { + ident: Ident, + generics: Generics, + data: Data<(), GettersField>, + mutable: Flag, +} + +impl ToTokens for Getters { + fn to_tokens(&self, tokens: &mut TokenStream2) { + let ident = &self.ident; + let (impl_generics, ty_generics, where_clause) = self.generics.split_for_impl(); + + let fields = self + .data + .as_ref() + .take_struct() + .expect("Expected named struct") + .fields; + + let fields = fields + .iter() + .filter(|f| !f.skip.is_present()) + .map(|f| { + let ident = f.ident.as_ref().unwrap(); + let ty = &f.ty; + let mutable = f.mutable.is_present() || self.mutable.is_present(); + + let immutable = quote! { + #[inline(always)] + /// Return a reference to the #ident field + pub fn #ident(&self) -> &#ty { + &self.#ident + } + }; + + if mutable { + let ident_mut = format_ident!("{}_mut", ident); + quote! { + #immutable + + #[inline(always)] + /// Return a mutable reference to the #ident field + pub fn #ident_mut(&mut self) -> &mut #ty { + &mut self.#ident + } + } + } else { + immutable + } + }) + .collect::(); + + tokens.extend(quote! { + impl #impl_generics #ident #ty_generics #where_clause { + #fields + } + }); + } +} + +#[proc_macro_derive(Getters, attributes(getters))] +#[allow(non_snake_case)] +/// Add immutable and (optionally) mutable accessors for every field of a struct +/// +/// ```rust,ignore +/// use getters::Getters; +/// +/// #[derive(Getters)] +/// pub struct Foo { +/// x: i32, +/// } +/// +/// let f = Foo { x: 0 }; +/// assert_eq!(f.x(), 0); +/// *f.eq_mut() = 1; +/// assert_eq!(f.x(), 1); +/// ``` +pub fn Getters(input: TokenStream) -> TokenStream { + let getters = match Getters::from_derive_input(&parse_macro_input!(input as DeriveInput)) { + Ok(g) => g, + Err(e) => { + return TokenStream::from(e.write_errors()); + } + }; + + let mut tokens = TokenStream2::new(); + + getters.to_tokens(&mut tokens); + + tokens.into() +} diff --git a/util/raw-cstr/Cargo.toml b/modules/tsffs/src/util/raw-cstr/Cargo.toml similarity index 100% rename from util/raw-cstr/Cargo.toml rename to modules/tsffs/src/util/raw-cstr/Cargo.toml diff --git a/util/raw-cstr/fuzz/.gitignore b/modules/tsffs/src/util/raw-cstr/fuzz/.gitignore similarity index 100% rename from util/raw-cstr/fuzz/.gitignore rename to modules/tsffs/src/util/raw-cstr/fuzz/.gitignore diff --git a/util/raw-cstr/fuzz/Cargo.lock b/modules/tsffs/src/util/raw-cstr/fuzz/Cargo.lock similarity index 100% rename from util/raw-cstr/fuzz/Cargo.lock rename to modules/tsffs/src/util/raw-cstr/fuzz/Cargo.lock diff --git a/util/raw-cstr/fuzz/Cargo.toml b/modules/tsffs/src/util/raw-cstr/fuzz/Cargo.toml similarity index 100% rename from util/raw-cstr/fuzz/Cargo.toml rename to modules/tsffs/src/util/raw-cstr/fuzz/Cargo.toml diff --git a/util/raw-cstr/fuzz/fuzz_targets/fuzz_raw_cstr.rs b/modules/tsffs/src/util/raw-cstr/fuzz/fuzz_targets/fuzz_raw_cstr.rs similarity index 100% rename from util/raw-cstr/fuzz/fuzz_targets/fuzz_raw_cstr.rs rename to modules/tsffs/src/util/raw-cstr/fuzz/fuzz_targets/fuzz_raw_cstr.rs diff --git a/util/raw-cstr/src/lib.rs b/modules/tsffs/src/util/raw-cstr/src/lib.rs similarity index 71% rename from util/raw-cstr/src/lib.rs rename to modules/tsffs/src/util/raw-cstr/src/lib.rs index a49501ab..b159419b 100644 --- a/util/raw-cstr/src/lib.rs +++ b/modules/tsffs/src/util/raw-cstr/src/lib.rs @@ -3,7 +3,7 @@ #![deny(clippy::unwrap_used)] -use anyhow::Result; +use anyhow::{bail, Result}; use std::{cell::RefCell, collections::HashMap, ffi::CString}; struct RawCStrs(RefCell>); @@ -57,3 +57,37 @@ where } pub use byte_strings::c_str; + +pub trait AsRawCstr { + /// Get a type as a raw C string + fn as_raw_cstr(&self) -> Result<*mut i8>; +} + +impl AsRawCstr for &'static [u8] { + /// Get a static slice as a raw C string. Useful for interfaces. + fn as_raw_cstr(&self) -> Result<*mut i8> { + if self.last().is_some_and(|l| *l == 0) { + Ok(self.as_ptr() as *const i8 as *mut i8) + } else { + bail!("Empty slice or last element is nonzero: {:?}", self); + } + } +} + +impl AsRawCstr for *mut i8 { + fn as_raw_cstr(&self) -> Result<*mut i8> { + Ok(*self) + } +} + +impl AsRawCstr for &str { + fn as_raw_cstr(&self) -> Result<*mut i8> { + raw_cstr(self) + } +} + +impl AsRawCstr for String { + fn as_raw_cstr(&self) -> Result<*mut i8> { + raw_cstr(self) + } +} diff --git a/util/raw-cstr/tests/test.rs b/modules/tsffs/src/util/raw-cstr/tests/test.rs similarity index 100% rename from util/raw-cstr/tests/test.rs rename to modules/tsffs/src/util/raw-cstr/tests/test.rs diff --git a/util/tmp-dir/Cargo.toml b/modules/tsffs/src/util/tmp-dir/Cargo.toml similarity index 100% rename from util/tmp-dir/Cargo.toml rename to modules/tsffs/src/util/tmp-dir/Cargo.toml diff --git a/util/tmp-dir/src/lib.rs b/modules/tsffs/src/util/tmp-dir/src/lib.rs similarity index 100% rename from util/tmp-dir/src/lib.rs rename to modules/tsffs/src/util/tmp-dir/src/lib.rs diff --git a/util/version-tools/Cargo.toml b/modules/tsffs/src/util/version-tools/Cargo.toml similarity index 91% rename from util/version-tools/Cargo.toml rename to modules/tsffs/src/util/version-tools/Cargo.toml index 22fa5002..1358e399 100644 --- a/util/version-tools/Cargo.toml +++ b/modules/tsffs/src/util/version-tools/Cargo.toml @@ -18,4 +18,5 @@ version.workspace = true [dependencies] anyhow.workspace = true -versions = "5.0.0" +serde.workspace = true +versions.workspace = true diff --git a/util/version-tools/fuzz/.gitignore b/modules/tsffs/src/util/version-tools/fuzz/.gitignore similarity index 100% rename from util/version-tools/fuzz/.gitignore rename to modules/tsffs/src/util/version-tools/fuzz/.gitignore diff --git a/util/version-tools/fuzz/Cargo.lock b/modules/tsffs/src/util/version-tools/fuzz/Cargo.lock similarity index 100% rename from util/version-tools/fuzz/Cargo.lock rename to modules/tsffs/src/util/version-tools/fuzz/Cargo.lock diff --git a/util/version-tools/fuzz/Cargo.toml b/modules/tsffs/src/util/version-tools/fuzz/Cargo.toml similarity index 100% rename from util/version-tools/fuzz/Cargo.toml rename to modules/tsffs/src/util/version-tools/fuzz/Cargo.toml diff --git a/util/version-tools/fuzz/fuzz_targets/fuzz_version_constraint_parse.rs b/modules/tsffs/src/util/version-tools/fuzz/fuzz_targets/fuzz_version_constraint_parse.rs similarity index 100% rename from util/version-tools/fuzz/fuzz_targets/fuzz_version_constraint_parse.rs rename to modules/tsffs/src/util/version-tools/fuzz/fuzz_targets/fuzz_version_constraint_parse.rs diff --git a/util/version-tools/src/lib.rs b/modules/tsffs/src/util/version-tools/src/lib.rs similarity index 89% rename from util/version-tools/src/lib.rs rename to modules/tsffs/src/util/version-tools/src/lib.rs index 71d658ae..b3cac350 100644 --- a/util/version-tools/src/lib.rs +++ b/modules/tsffs/src/util/version-tools/src/lib.rs @@ -22,8 +22,9 @@ #![forbid(unsafe_code)] use anyhow::{anyhow, bail, Error, Result}; -use std::str::FromStr; -use versions::{Chunk, Versioning}; +use serde::{de::Error as _, Deserialize, Deserializer}; +use std::{fmt::Display, str::FromStr}; +pub use versions::*; #[non_exhaustive] #[derive(Debug, Clone, Hash, Eq, PartialEq)] @@ -51,6 +52,25 @@ pub enum Op { Wildcard, } +impl Display for Op { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}", + match self { + Op::Exact => "==", + Op::Greater => ">", + Op::GreaterEq => ">=", + Op::Less => "<", + Op::LessEq => "<=", + Op::Tilde => "~", + Op::Caret => "^", + Op::Wildcard => "*", + } + ) + } +} + #[derive(Debug, Clone, Hash, Eq, PartialEq)] /// A version constraint with an operation and a version, unless the operation is a wildcard /// in which case the version is omitted. @@ -59,6 +79,24 @@ pub struct VersionConstraint { version: Option, } +impl VersionConstraint { + pub fn op(&self) -> &Op { + &self.op + } + + pub fn version(&self) -> Option<&Versioning> { + self.version.as_ref() + } +} + +impl From<&str> for VersionConstraint { + fn from(value: &str) -> Self { + value + .parse() + .unwrap_or_else(|_| panic!("Invalid version constraint {}", value)) + } +} + impl FromStr for VersionConstraint { type Err = Error; @@ -98,6 +136,20 @@ impl FromStr for VersionConstraint { } } +impl Display for VersionConstraint { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{}{}", + self.op, + self.version + .as_ref() + .map(|v| v.to_string()) + .unwrap_or_default() + ) + } +} + /// Checks whether two versioning triples are "tilde-compatible", that is v2's patch version /// may be greater than v1's, but its major and minor versions may not be. /// For tilde matches, the v2 patch can be greater than the v1 patch @@ -213,6 +265,28 @@ impl Default for VersionConstraint { } } +pub fn versioning_from_string<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let s: String = Deserialize::deserialize(deserializer)?; + + Versioning::new(&s) + .ok_or_else(|| anyhow!("Unable to deserialize {} as versioning", s)) + .map_err(D::Error::custom) +} + +pub fn version_constraint_from_string<'de, D>( + deserializer: D, +) -> Result +where + D: Deserializer<'de>, +{ + let s: String = Deserialize::deserialize(deserializer)?; + + s.parse().map_err(D::Error::custom) +} + #[cfg(test)] mod tests { use crate::VersionConstraint; diff --git a/modules/tsffs/tests-restricted/Cargo.toml b/modules/tsffs/tests-restricted/Cargo.toml new file mode 100644 index 00000000..ed775706 --- /dev/null +++ b/modules/tsffs/tests-restricted/Cargo.toml @@ -0,0 +1,21 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[package] +name = "tests-restricted" +description = "Tests for the TSFFS fuzzer" +edition = "2021" +license = "Apache 2.0" +publish = false +version = "0.1.0" + +[dev-dependencies] + +[build-dependencies] +anyhow = "1.0.75" +command-ext = { path = "../src/util/command-ext" } +simics-codegen = { path = "../src/simics/simics-codegen" } + +[dependencies] +anyhow = "1.0.75" +command-ext = { path = "../src/util/command-ext" } diff --git a/modules/tsffs/tests-restricted/SUITEINFO b/modules/tsffs/tests-restricted/SUITEINFO new file mode 100644 index 00000000..f1d686bc --- /dev/null +++ b/modules/tsffs/tests-restricted/SUITEINFO @@ -0,0 +1,2 @@ +timeout: 360 +tags: tsffs \ No newline at end of file diff --git a/modules/tsffs/tests-restricted/build.rs b/modules/tsffs/tests-restricted/build.rs new file mode 100644 index 00000000..3b8c1d93 --- /dev/null +++ b/modules/tsffs/tests-restricted/build.rs @@ -0,0 +1,48 @@ +use anyhow::{anyhow, Result}; +use command_ext::CommandExtCheck; +use simics_codegen::simics_tests; +use std::{ + env::var, + fs::{read_dir, write}, + path::PathBuf, + process::Command, +}; + +const CARGO_MANIFEST_DIR: &str = "CARGO_MANIFEST_DIR"; +const OUT_DIR_ENV: &str = "OUT_DIR"; +const TESTS_FILE: &str = "tests.rs"; + +fn main() -> Result<()> { + let out_dir = PathBuf::from( + var(OUT_DIR_ENV) + .map_err(|e| anyhow!("No environment variable {OUT_DIR_ENV} found: {e}"))?, + ); + let tests_out_file = out_dir.join(TESTS_FILE); + + let tests_tokens = simics_tests("../../../"); + write(tests_out_file, tests_tokens.to_string()) + .map_err(|e| anyhow!("Failed to write tests out file: {e}"))?; + + let manifest_dir = PathBuf::from( + var(CARGO_MANIFEST_DIR) + .map_err(|e| anyhow!("No environment variable {OUT_DIR_ENV} found: {e}"))?, + ); + + let targets_dir = manifest_dir.join("targets"); + + if targets_dir.is_dir() { + read_dir(targets_dir)? + .filter_map(|d| d.ok()) + .filter(|d| d.path().is_dir()) + .map(|d| d.path()) + .for_each(|d| { + Command::new("ninja") + .current_dir(&d) + .check() + .expect("failed to build"); + println!("cargo:rerun-if-changed={}", d.display()); + }); + } + + Ok(()) +} diff --git a/simics-api/src/safe/traits/mod.rs b/modules/tsffs/tests-restricted/src/lib.rs similarity index 62% rename from simics-api/src/safe/traits/mod.rs rename to modules/tsffs/tests-restricted/src/lib.rs index fa066eb0..83b5fc68 100644 --- a/simics-api/src/safe/traits/mod.rs +++ b/modules/tsffs/tests-restricted/src/lib.rs @@ -1,6 +1,4 @@ // Copyright (C) 2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 -pub mod module; - -pub use module::*; +include!(concat!(env!("OUT_DIR"), "/tests.rs")); diff --git a/modules/tsffs/tests/Cargo.toml b/modules/tsffs/tests/Cargo.toml new file mode 100644 index 00000000..022a4031 --- /dev/null +++ b/modules/tsffs/tests/Cargo.toml @@ -0,0 +1,31 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[package] +name = "tests" +categories.workspace = true +description = "Tests for the TSFFS fuzzer" +edition.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +publish.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + +[dependencies] +anyhow = { workspace = true } +command-ext.workspace = true +getters.workspace = true +indoc = "2.0.4" +ispm-wrapper.workspace = true +typed-builder = "0.18.0" +walkdir = "2.4.0" + +[dev-dependencies] + +[build-dependencies] +anyhow.workspace = true +command-ext.workspace = true +simics-codegen.workspace = true diff --git a/modules/tsffs/tests/SUITEINFO b/modules/tsffs/tests/SUITEINFO new file mode 100644 index 00000000..f1d686bc --- /dev/null +++ b/modules/tsffs/tests/SUITEINFO @@ -0,0 +1,2 @@ +timeout: 360 +tags: tsffs \ No newline at end of file diff --git a/modules/tsffs/tests/build.rs b/modules/tsffs/tests/build.rs new file mode 100644 index 00000000..3c91f6f0 --- /dev/null +++ b/modules/tsffs/tests/build.rs @@ -0,0 +1,47 @@ +use anyhow::{anyhow, Result}; +use command_ext::CommandExtCheck; +use simics_codegen::simics_tests; +use std::{ + env::var, + fs::{read_dir, write}, + path::PathBuf, + process::Command, +}; + +const CARGO_MANIFEST_DIR: &str = "CARGO_MANIFEST_DIR"; +const OUT_DIR_ENV: &str = "OUT_DIR"; +const TESTS_FILE: &str = "tests.rs"; + +fn main() -> Result<()> { + let out_dir = PathBuf::from( + var(OUT_DIR_ENV) + .map_err(|e| anyhow!("No environment variable {OUT_DIR_ENV} found: {e}"))?, + ); + let tests_out_file = out_dir.join(TESTS_FILE); + + let tests_tokens = simics_tests("../../../"); + write(tests_out_file, tests_tokens.to_string())?; + + let manifest_dir = PathBuf::from( + var(CARGO_MANIFEST_DIR) + .map_err(|e| anyhow!("No environment variable {OUT_DIR_ENV} found: {e}"))?, + ); + let targets_dir = manifest_dir.join("targets"); + + read_dir(targets_dir)? + .filter_map(|d| d.ok()) + .filter(|d| d.path().is_dir()) + .map(|d| d.path()) + // Blocklist a few that aren't working + .filter(|d| d.ends_with("riscv-64-edk2")) + .for_each(|d| { + println!("cargo:rerun-if-changed={}", d.to_string_lossy()); + Command::new("ninja") + .current_dir(&d) + .check() + .expect("failed to build"); + }); + println!("cargo:rerun-if-changed=build.rs"); + + Ok(()) +} diff --git a/examples/harnessing-uefi/rsrc/minimal_boot_disk.craff b/modules/tsffs/tests/rsrc/minimal_boot_disk.craff similarity index 100% rename from examples/harnessing-uefi/rsrc/minimal_boot_disk.craff rename to modules/tsffs/tests/rsrc/minimal_boot_disk.craff diff --git a/modules/tsffs/tests/s-load-tsffs.py b/modules/tsffs/tests/s-load-tsffs.py new file mode 100644 index 00000000..f0f7e9f3 --- /dev/null +++ b/modules/tsffs/tests/s-load-tsffs.py @@ -0,0 +1,6 @@ +# Test that we can successfully load the TSFFS module and create the TSFFS object + +import simics + +simics.SIM_load_module("tsffs") +tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) diff --git a/modules/tsffs/tests/s-test-fail.py b/modules/tsffs/tests/s-test-fail.py new file mode 100644 index 00000000..34ad3e8b --- /dev/null +++ b/modules/tsffs/tests/s-test-fail.py @@ -0,0 +1,6 @@ +# Simplest possible failure test case, test that a failure can be checked for (test cases whose +# names end in -fail) are expected to fail. + +from stest import fail + +fail("Expected failure to test Rust test suite generation") diff --git a/modules/tsffs/tests/s-test-success.py b/modules/tsffs/tests/s-test-success.py new file mode 100644 index 00000000..bf5dc1fe --- /dev/null +++ b/modules/tsffs/tests/s-test-success.py @@ -0,0 +1,3 @@ +# Simplest possible test case -- test that simics can be imported + +import simics diff --git a/modules/tsffs/tests/s-tsffs-configure.py b/modules/tsffs/tests/s-tsffs-configure.py new file mode 100644 index 00000000..fa8c65f7 --- /dev/null +++ b/modules/tsffs/tests/s-tsffs-configure.py @@ -0,0 +1,33 @@ +# Test that we can successfully load and configure the TSFFS module. + +import simics +import stest + +simics.SIM_load_module("tsffs") +tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) +tsffs.iface.tsffs.set_start_on_harness(True) +tsffs.iface.tsffs.set_stop_on_harness(True) +tsffs.iface.tsffs.set_use_snapshots(True) +tsffs.iface.tsffs.set_timeout(60.0) +tsffs.iface.tsffs.add_exception_solution(6) +tsffs.iface.tsffs.add_exception_solution(14) +tsffs.iface.tsffs.remove_exception_solution(6) +tsffs.iface.tsffs.set_all_exceptions_are_solutions(True) +tsffs.iface.tsffs.set_all_exceptions_are_solutions(False) +tsffs.iface.tsffs.add_breakpoint_solution(0) +tsffs.iface.tsffs.add_breakpoint_solution(1) +tsffs.iface.tsffs.remove_breakpoint_solution(0) +tsffs.iface.tsffs.set_all_breakpoints_are_solutions(True) +tsffs.iface.tsffs.set_all_breakpoints_are_solutions(False) +# tsffs.iface.tsffs.set_tracing_mode("once") +tsffs.iface.tsffs.set_cmplog_enabled(False) +# tsffs.iface.tsffs.set_corpus_directory("%simics%/corpus/") +# tsffs.iface.tsffs.set_solutions_directory("%simics%/solutions") +tsffs.iface.tsffs.set_generate_random_corpus(True) +tsffs_config = tsffs.iface.tsffs.get_configuration() +print(tsffs_config) + +# stest.expect_equal( +# tsffs_config, +# {'detector': {'all_breakpoints_are_solutions': 0 , 'all_exceptions_are_solutions': 0 , 'breakpoints': [1] , 'exceptions': [14] , 'timeout': 60.0}, 'driver': {'magic_start': 1 , 'magic_stop': 2 , 'start_on_harness': 1 , 'stop_on_harness': 1 , 'use_snapshots': 1 }, 'tracer': {'cmplog': 0 , 'coverage_mode': 'once'}}, +# ) diff --git a/modules/tsffs/tests/src/lib.rs b/modules/tsffs/tests/src/lib.rs new file mode 100644 index 00000000..f228e25e --- /dev/null +++ b/modules/tsffs/tests/src/lib.rs @@ -0,0 +1,405 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! SIMICS test utilities for test environment setup and configuration + +use anyhow::{anyhow, bail, ensure, Result}; +use getters::Getters; +use ispm_wrapper::{ + data::ProjectPackage, + ispm::{ + self, + packages::{InstallOptions, UninstallOptions}, + projects::CreateOptions, + GlobalOptions, + }, + Internal, +}; +use std::{ + collections::HashSet, + fs::{copy, create_dir_all, read_dir, write}, + path::{Path, PathBuf}, +}; +use typed_builder::TypedBuilder; +use walkdir::WalkDir; + +include!(concat!(env!("OUT_DIR"), "/tests.rs")); + +/// Copy the contents of one directory to another, recursively, overwriting files if they exist but +/// without replacing directories or their contents if they already exist +pub fn copy_dir_contents

(src_dir: P, dst_dir: P) -> Result<()> +where + P: AsRef, +{ + let src_dir = src_dir.as_ref().to_path_buf(); + ensure!(src_dir.is_dir(), "Source must be a directory"); + let dst_dir = dst_dir.as_ref().to_path_buf(); + if !dst_dir.is_dir() { + create_dir_all(&dst_dir)?; + } + + for (src, dst) in WalkDir::new(&src_dir) + .into_iter() + .filter_map(|p| p.ok()) + .filter_map(|p| { + let src = p.path().to_path_buf(); + match src.strip_prefix(&src_dir) { + Ok(suffix) => Some((src.clone(), dst_dir.join(suffix))), + Err(_) => None, + } + }) + { + if src.is_dir() { + create_dir_all(&dst)?; + } else if src.is_file() { + copy(&src, &dst)?; + } + } + Ok(()) +} + +/// Abstract install procedure for public and internal ISPM +pub fn local_or_remote_pkg_install(mut options: InstallOptions) -> Result<()> { + if Internal::is_internal()? { + ispm::packages::install(&options)?; + } else { + let installed = ispm::packages::list(options.global())?; + + for package in options.packages() { + let Some(installed) = installed.installed_packages() else { + bail!("Did not get any installed packages"); + }; + let Some(available) = installed.iter().find(|p| { + p.package_number() == package.package_number() && p.version() == package.version() + }) else { + bail!("Did not find package {package:?}"); + }; + let Some(path) = available.paths().first() else { + bail!("No paths for available package {available:?}"); + }; + let Some(install_dir) = options.global().install_dir() else { + bail!("No install dir for global options {options:?}"); + }; + + copy_dir_contents(install_dir, path)?; + } + + // Clear the remote packages to install, we can install local paths no problem + options.packages_mut().clear(); + + ispm::packages::install(&options)?; + } + + Ok(()) +} + +#[derive(Debug)] +pub enum Architecture { + X86, + Riscv, +} + +impl Architecture { + fn packages(&self) -> Vec { + match self { + Architecture::X86 => vec![ + ProjectPackage::builder() + .package_number(1000) + .version("latest") + .build(), + // QSP-x86 + ProjectPackage::builder() + .package_number(2096) + .version("latest") + .build(), + // QSP-CPU + ProjectPackage::builder() + .package_number(8112) + .version("latest") + .build(), + ], + Architecture::Riscv => vec![ + ProjectPackage::builder() + .package_number(1000) + .version("latest") + .build(), + // RISC-V-CPU + ProjectPackage::builder() + .package_number(2050) + .version("latest") + .build(), + // RISC-V-Simple + ProjectPackage::builder() + .package_number(2053) + .version("latest") + .build(), + ], + } + } +} + +#[derive(TypedBuilder, Debug)] +pub struct TestEnvSpec { + #[builder(setter(into))] + cargo_manifest_dir: String, + #[builder(setter(into))] + cargo_target_tmpdir: String, + #[builder(setter(into))] + name: String, + + #[builder(default, setter(strip_option, into))] + arch: Option, + #[builder(default, setter(into))] + extra_packages: Vec, + #[builder(default, setter(into))] + extra_nonrepo_packages: Vec, + #[builder(default = true)] + tsffs: bool, + #[builder(default, setter(into))] + files: Vec<(String, Vec)>, + #[builder(default, setter(into, strip_option))] + simics_home: Option, + #[builder(default, setter(into, strip_option))] + package_repo: Option, + #[builder(default = false)] + install_all: bool, +} + +impl TestEnvSpec { + pub fn to_env(&self) -> Result { + TestEnv::build(self) + } +} + +#[derive(Getters)] +pub struct TestEnv { + /// The base of the test environment, e.g. the `CARGO_TARGET_TMPDIR` directory + test_base: PathBuf, + /// The subdirectory in the test environment for this test + test_dir: PathBuf, + /// The project subdirectory in the test environment for this test + project_dir: PathBuf, + /// The simics home subdirectory in the test environment for this test + simics_home_dir: PathBuf, +} + +impl TestEnv { + pub fn simics_base_dir(&self) -> Result { + read_dir(self.simics_home_dir())? + .filter_map(|d| d.ok()) + .filter(|d| d.path().is_dir()) + .map(|d| d.path()) + .find(|d| { + d.file_name() + .is_some_and(|n| n.to_string_lossy().starts_with("simics-6.")) + }) + .ok_or_else(|| anyhow!("No simics base")) + } +} + +impl TestEnv { + fn install_tsffs(simics_home_dir: P, cargo_manifest_dir: S) -> Result<()> + where + P: AsRef, + S: AsRef, + { + // NOTE: Uninstall and reinstall the tsffs module (installs the latest build) + ispm::packages::uninstall( + &UninstallOptions::builder() + .packages([ProjectPackage::builder() + .package_number(31337) + .version("latest") + .build()]) + .global( + GlobalOptions::builder() + .install_dir(simics_home_dir.as_ref()) + .build(), + ) + .build(), + ) + .map_err(|e| eprintln!("Not uninstalling package: {}", e)) + .ok(); + + local_or_remote_pkg_install( + InstallOptions::builder() + .package_paths([PathBuf::from(cargo_manifest_dir.as_ref()) + .join("../../../") + .join("linux64") + .join("packages") + .join("simics-pkg-31337-6.0.0-linux64.ispm")]) + .global( + GlobalOptions::builder() + .install_dir(simics_home_dir.as_ref()) + .trust_insecure_packages(true) + .build(), + ) + .build(), + )?; + + Ok(()) + } + + pub fn install_files

(project_dir: P, files: &Vec<(String, Vec)>) -> Result<()> + where + P: AsRef, + { + for (name, content) in files { + let target = project_dir.as_ref().join(name); + + if let Some(target_parent) = target.parent() { + if target_parent != project_dir.as_ref() { + create_dir_all(target_parent)?; + } + } + write(target, content)?; + } + + Ok(()) + } + + fn build(spec: &TestEnvSpec) -> Result { + let test_base = PathBuf::from(&spec.cargo_target_tmpdir); + let test_dir = test_base.join(&spec.name); + + let project_dir = test_dir.join("project"); + + let simics_home_dir = if let Some(simics_home) = spec.simics_home.as_ref() { + simics_home.clone() + } else { + create_dir_all(test_dir.join("simics"))?; + + test_dir.join("simics") + }; + + // Install nonrepo packages which do not use a possibly-provided package repo + if !spec.extra_nonrepo_packages.is_empty() { + println!("installing extra nonrepo packages"); + local_or_remote_pkg_install( + InstallOptions::builder() + .global( + GlobalOptions::builder() + .install_dir(&simics_home_dir) + .trust_insecure_packages(true) + .build(), + ) + .packages(spec.extra_nonrepo_packages.clone()) + .build(), + )?; + } + + let mut installed_packages = spec + .extra_nonrepo_packages + .iter() + .cloned() + .collect::>(); + + let mut packages = spec.extra_packages.clone(); + + if let Some(arch) = spec.arch.as_ref() { + packages.extend(arch.packages().clone()); + } + + if let Some(package_repo) = &spec.package_repo { + if !packages.is_empty() { + println!("Installing extra and arch packages with package repo"); + local_or_remote_pkg_install( + InstallOptions::builder() + .packages(packages.clone()) + .global( + GlobalOptions::builder() + .install_dir(&simics_home_dir) + .trust_insecure_packages(true) + .package_repo([package_repo.to_string()]) + .build(), + ) + .build(), + )?; + } + } else if !packages.is_empty() { + println!("Installing extra and arch packages without package repo"); + local_or_remote_pkg_install( + InstallOptions::builder() + .packages(packages.clone()) + .global( + GlobalOptions::builder() + .install_dir(&simics_home_dir) + .trust_insecure_packages(true) + .build(), + ) + .build(), + )?; + } + + installed_packages.extend(packages); + + if spec.install_all { + if let Some(package_repo) = &spec.package_repo { + println!("Installing all packages without package repo"); + local_or_remote_pkg_install( + InstallOptions::builder() + .install_all(spec.install_all) + .global( + GlobalOptions::builder() + .install_dir(&simics_home_dir) + .trust_insecure_packages(true) + .package_repo([package_repo.to_string()]) + .build(), + ) + .build(), + )?; + + let installed = ispm::packages::list( + &GlobalOptions::builder() + .install_dir(&simics_home_dir) + .build(), + )?; + + if let Some(installed) = installed.installed_packages() { + installed_packages.extend(installed.iter().map(|ip| { + ProjectPackage::builder() + .package_number(*ip.package_number()) + .version(ip.version().clone()) + .build() + })); + } + } + } + + // Install TSFFS separately from local package + if spec.tsffs { + Self::install_tsffs(&simics_home_dir, &spec.cargo_manifest_dir)?; + + installed_packages.insert( + ProjectPackage::builder() + .package_number(31337) + .version("latest") + .build(), + ); + } + + // Create the project using the installed packages + ispm::projects::create( + &CreateOptions::builder() + .packages(installed_packages) + .global( + GlobalOptions::builder() + .install_dir(&simics_home_dir) + .trust_insecure_packages(true) + .build(), + ) + .ignore_existing_files(true) + .build(), + &project_dir, + ) + .ok(); + + Self::install_files(&project_dir, &spec.files)?; + + Ok(Self { + test_base, + test_dir, + project_dir, + simics_home_dir, + }) + } +} diff --git a/modules/tsffs/tests/targets/.gitignore b/modules/tsffs/tests/targets/.gitignore new file mode 100644 index 00000000..37c5d2b9 --- /dev/null +++ b/modules/tsffs/tests/targets/.gitignore @@ -0,0 +1,15 @@ +*.efi +*.o +Image +.ninja_log +*.ext2 +*.tar.gz +*.ko +*.elf +*.lib +test* +!test.[ch] +!test-/ + +# We always copy the header from the root headers directory so it is up to date +tsffs*.h \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/Dockerfile b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/Dockerfile new file mode 100644 index 00000000..88d9aa53 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/Dockerfile @@ -0,0 +1,51 @@ +# hadolint global ignore=DL3008 +FROM ghcr.io/tianocore/containers/ubuntu-22-build:a0dd931 AS riscv-gnu-toolchain-edk2 + +ENV DEBIAN_FRONTEND=noninteractive + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Install riscv64-gcc +RUN apt-get -y update && \ + apt-get -y install autoconf automake autotools-dev curl python3 python3-pip \ + libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex gperf \ + libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev texinfo + +WORKDIR /riscv-gnu-toolchain +# RUN ./configure --with-arch=rv32gc --with-abi=ilp32d +RUN git clone https://github.com/riscv/riscv-gnu-toolchain . && \ + ./configure --enable-multilib && \ + make && \ + make install && \ + rm -rf /riscv-gnu-toolchain + + +FROM riscv-gnu-toolchain-edk2 AS riscv-edk2 + +ENV DEBIAN_FRONTEND=noninteractive +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + + +ENV GCC_RISCV64_PREFIX="riscv64-unknown-elf-" +ENV EDK2_REPO_URL "https://github.com/tianocore/edk2.git" +ENV EDK2_REPO_HASH "a671a14e63fdaa9490e5c61cf11346416f1d1463" +ENV EDK2_PATH "/edk2" + + +RUN git clone "${EDK2_REPO_URL}" "${EDK2_PATH}" && \ + git -C "${EDK2_PATH}" checkout "${EDK2_REPO_HASH}" && \ + python3 -m pip install --no-cache-dir -r "${EDK2_PATH}/pip-requirements.txt" && \ + stuart_setup -c "${EDK2_PATH}/.pytool/CISettings.py" TOOL_CHAIN_TAG=GCC && \ + stuart_update -c "${EDK2_PATH}/.pytool/CISettings.py" TOOL_CHAIN_TAG=GCC + +COPY src "${EDK2_PATH}/HelloWorld/" + +RUN stuart_setup -c "${EDK2_PATH}/HelloWorld/PlatformBuild.py" TOOL_CHAIN_TAG=GCC && \ + stuart_update -c "${EDK2_PATH}/HelloWorld/PlatformBuild.py" TOOL_CHAIN_TAG=GCC && \ + python3 "${EDK2_PATH}/BaseTools/Edk2ToolsBuild.py" -t GCC + +WORKDIR "${EDK2_PATH}" + +RUN source ${EDK2_PATH}/edksetup.sh && \ + ( build -a RISCV64 -t GCC -p HelloWorld/HelloWorld.dsc \ + || ( cat ${EDK2_PATH}/HelloWorld/Build/BUILDLOG.txt && exit 1 ) ) diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/build.sh b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/build.sh new file mode 100755 index 00000000..1193d049 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/build.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +# Build the HelloWorld.efi module and copy it into the resource directory for the example +# this only needs to be run if you want to modify the source code for the HelloWorld.efi module, +# otherwise, the EFI is included in the source tree for ease of use + +SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) +IMAGE_NAME="edk2-build-tsffs-gcc-riscv64-test" +CONTAINER_UID=$(echo "${RANDOM}" | sha256sum | head -c 8) +CONTAINER_NAME="${IMAGE_NAME}-tmp-${CONTAINER_UID}" + +pushd "${SCRIPT_DIR}" || exit 1 + +cp "${SCRIPT_DIR}/../../../../../harness/tsffs-gcc-riscv64.h" "${SCRIPT_DIR}/src/tsffs-gcc-riscv64.h" + +docker build -t "${IMAGE_NAME}" -f "Dockerfile" . +docker create --name "${CONTAINER_NAME}" "${IMAGE_NAME}" +docker cp \ + "${CONTAINER_NAME}:/edk2/HelloWorld/Build/HelloWorld/DEBUG_GCC/RISCV64/HelloWorld.efi" \ + "${SCRIPT_DIR}/test.efi" +docker rm -f "${CONTAINER_NAME}" diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.c b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.c new file mode 100644 index 00000000..c60a93b4 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.c @@ -0,0 +1,73 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +/** @file + This sample application bases on HelloWorld PCD setting + to print "UEFI Hello World!" to the UEFI Console. + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include +#include +#include +#include +#include +#include +#include + +#include "tsffs-gcc-riscv64.h" + +/** + The user Entry Point for Application. The user code starts with this function + as the real entry point for the application. + @param[in] ImageHandle The firmware allocated handle for the EFI image. + @param[in] SystemTable A pointer to the EFI System Table. + @retval EFI_SUCCESS The entry point is executed successfully. + @retval other Some error occurs when executing this entry point. +**/ +EFI_STATUS +EFIAPI +UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { + UINTN input_size = 64; + UINTN *input_size_ptr = &input_size; + UINT8 *input = (UINT8 *)AllocatePages(EFI_SIZE_TO_PAGES(input_size)); + + if (!input) { + return EFI_OUT_OF_RESOURCES; + } + + SetMem((VOID *)input, input_size, 0x44); + + HARNESS_START(input, input_size_ptr); + + switch (*input) { + case 'A': { + // Invalid opcode + __asm__(".byte 0x06"); + } + case 'B': { + // Sleep for 10 seconds, this is a "hang" + + // NOTE: gBS is the global Boot Services table + gBS->Stall(10 * 1000 * 1000); + } + case 'C': { + // This will page fault + UINT8 *ptr = (UINT8 *)0xffffffffffffffff; + *ptr = 0x00; + } + default: { + // Nothing, this is a "success" + Print(L"Working...\n"); + } + } + + HARNESS_STOP(); + + if (input) { + FreePages(input, EFI_SIZE_TO_PAGES(input_size)); + } + + return EFI_SUCCESS; +} \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.dsc b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.dsc new file mode 100644 index 00000000..46419496 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.dsc @@ -0,0 +1,43 @@ +[Defines] + PLATFORM_NAME = HelloWorld + PLATFORM_GUID = 0458dade-8b6e-4e45-b773-1b27cbda3e06 + PLATFORM_VERSION = 0.01 + DSC_SPECIFICATION = 0x00010006 + OUTPUT_DIRECTORY = Build/HelloWorld + SUPPORTED_ARCHITECTURES = IA32|X64|ARM|AARCH64|RISCV64 + BUILD_TARGETS = DEBUG|RELEASE|NOOPT + SKUID_IDENTIFIER = DEFAULT + DEFINE DEBUG_ENABLE_OUTPUT = FALSE # Set to TRUE to enable debug output + DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x80000040 # Flags to control amount of debug output + DEFINE DEBUG_PROPERTY_MASK = 0 + +!include MdePkg/MdeLibs.dsc.inc + +[PcdsFeatureFlag] + +[PcdsFixedAtBuild] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|$(DEBUG_PROPERTY_MASK) + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL) + +[LibraryClasses] + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + + # Include the Debug Library if needed + !if $(DEBUG_ENABLE_OUTPUT) + DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf + DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf + !else ## DEBUG_ENABLE_OUTPUT + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + !endif ## DEBUG_ENABLE_OUTPUT + +[Components] + HelloWorld/HelloWorld.inf \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.inf b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.inf new file mode 100755 index 00000000..b43f119d --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorld.inf @@ -0,0 +1,35 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = HelloWorld + MODULE_UNI_FILE = HelloWorld.uni + FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2116 + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + ENTRY_POINT = UefiMain + UEFI_HII_RESOURCE_SECTION = TRUE + +[Sources] + HelloWorld.c + HelloWorldStr.uni + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + UefiApplicationEntryPoint + UefiLib + PcdLib + +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable + +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintString + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes + +[UserExtensions.TianoCore."ExtraFiles"] + HelloWorldExtra.uni \ No newline at end of file diff --git a/examples/hello-world/src/HelloWorldExtra.uni b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorldExtra.uni similarity index 100% rename from examples/hello-world/src/HelloWorldExtra.uni rename to modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorldExtra.uni diff --git a/examples/hello-world/src/HelloWorldStr.uni b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorldStr.uni similarity index 100% rename from examples/hello-world/src/HelloWorldStr.uni rename to modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/HelloWorldStr.uni diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/PlatformBuild.py b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/PlatformBuild.py new file mode 100755 index 00000000..1aa7c19b --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/PlatformBuild.py @@ -0,0 +1,112 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +""" + +Script to build HelloWorld firmware + +See: https://www.tianocore.org/edk2-pytool-extensions/integrate/porting/ +for more info +""" + +# mypy: ignore-errors +# flake8: noqa +# pylint: disable=undefined-variable,import-error,invalid-name,too-few-public-methods + +from os.path import abspath, dirname, join +from typing import Iterable, List + +from edk2toolext.environment.uefi_build import UefiBuilder +from edk2toolext.invocables.edk2_platform_build import BuildSettingsManager +from edk2toolext.invocables.edk2_setup import RequiredSubmodule, SetupSettingsManager +from edk2toolext.invocables.edk2_update import UpdateSettingsManager +from edk2toollib.utility_functions import GetHostInfo + + +class HelloWorldSettingsManager( + UpdateSettingsManager, SetupSettingsManager, BuildSettingsManager +): + """ + Settings manager for HelloWorld EFI application build + """ + + def __init__(self) -> None: + """ + Initialize the settings manager + """ + script_path = dirname(abspath(__file__)) + + # Initialize the workspace (ws) path + self.ws = script_path + + def GetWorkspaceRoot(self) -> str: + """ + Returns the absolute path to the workspace root + """ + return self.ws + + def GetActiveScopes(self) -> List[str]: + """ + Returns scope names this settings manager will remain active for + """ + return ["HelloWorld"] + + def GetPackagesSupported(self) -> Iterable[str]: + """ + Returns paths from the edk2 repository root of edk2 packages + supported by this build + """ + return ("HelloWorld",) + + def GetRequiredSubmodules(self) -> Iterable[RequiredSubmodule]: + """ + Returns submodules required for this package. + """ + # We don't have any required submodules, so we just return an empty list. + return [] + + def GetArchitecturesSupported(self) -> Iterable[str]: + """ + Returns edk2 architectures supported by this build. + """ + return ("RISCV64",) + + def GetTargetsSupported(self) -> Iterable[str]: + """ + Returns target tags supported by this build. + """ + return ("DEBUG",) + + def GetPackagesPath(self) -> Iterable[str]: + """ + Returns the paths to the edk2 package + """ + return [abspath(join(self.GetWorkspaceRoot(), ".."))] + + +class PlatformBuilder(UefiBuilder): + """ + Platform build for HelloWorld module + """ + + def SetPlatformEnv(self) -> int: + """ + Set environment variables for the platform + """ + self.env.SetValue( + "ACTIVE_PLATFORM", + "HelloWorld/HelloWorld.dsc", + "Platform hardcoded", + ) + self.env.SetValue("PRODUCT_NAME", "HelloWorld", "Platform hardcoded") + self.env.SetValue("TARGET_ARCH", "RISCV64", "Platform hardcoded") + self.env.SetValue( + "GCC_RISCV64_PREFIX", "riscv64-unknown-elf-", "Platform hardcoded" + ) + os = GetHostInfo().os + if os.lower() == "windows": + self.env.SetValue("TOOL_CHAIN_TAG", "VS2017", "Platform Hardcoded", True) + else: + self.env.SetValue("TOOL_CHAIN_TAG", "GCC", "Platform Hardcoded", True) + + return 0 diff --git a/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/tsffs-gcc-riscv64.h b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/tsffs-gcc-riscv64.h new file mode 100644 index 00000000..24243dcc --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64-edk2/src/tsffs-gcc-riscv64.h @@ -0,0 +1,42 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +#define __srai_extended(value, testcase_ptr, size_ptr) \ + __asm__ __volatile__("mv a0, %0; mv a1, %1; srai zero, zero, %2" \ + : \ + : "r"(testcase_ptr), "r"(size_ptr), "I"(value) \ + : "a0", "a1"); + +#define __srai(value) \ + __asm__ __volatile__("srai zero, zero, %0" : : "I"(value) :) + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + __srai_extended(start, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + __srai(stop); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/Dockerfile b/modules/tsffs/tests/targets/minimal-riscv-64/Dockerfile new file mode 100644 index 00000000..e79fbfc6 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/Dockerfile @@ -0,0 +1,45 @@ +# hadolint global ignore=DL3008 +FROM ubuntu:22.04 AS buildroot + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get -y update && \ + apt-get -y install \ + bash \ + bc \ + build-essential \ + cpio \ + file \ + git \ + gcc \ + g++ \ + rsync \ + unzip \ + wget + +RUN git clone \ + https://github.com/buildroot/buildroot.git + +WORKDIR /buildroot + +# Build user-space test program +RUN mkdir -p /test/usr/ +COPY test-kernel-modules /test/test-kernel-modules/ +COPY simics_simple_riscv_defconfig configs/simics_simple_riscv_defconfig +COPY test.c /test/usr/test.c +COPY test-mod.c /test/usr/test-mod.c +COPY test-mod-userspace.c /test/usr/test-mod-userspace.c +COPY tsffs-gcc-riscv64.h /test/usr/tsffs-gcc-riscv64.h + +# Build Linux, Linux Kernel Modules & RootFS +RUN make BR2_EXTERNAL=/test/test-kernel-modules/ simics_simple_riscv_defconfig && \ + make && \ + tar -C output/images -czvf images.tar.gz Image fw_jump.elf rootfs.ext2 && \ + cp images.tar.gz /test/ && \ + /buildroot/output/host/bin/riscv64-buildroot-linux-gnu-gcc -o /test/usr/test /test/usr/test.c && \ + /buildroot/output/host/bin/riscv64-buildroot-linux-gnu-gcc -o /test/usr/test-mod /test/usr/test-mod.c && \ + /buildroot/output/host/bin/riscv64-buildroot-linux-gnu-gcc -o /test/usr/test-mod-userspace /test/usr/test-mod-userspace.c && \ + make clean + diff --git a/tsffs_module/stubs/tsffs_module/simics_start.py b/modules/tsffs/tests/targets/minimal-riscv-64/build.ninja similarity index 54% rename from tsffs_module/stubs/tsffs_module/simics_start.py rename to modules/tsffs/tests/targets/minimal-riscv-64/build.ninja index 6a16273c..8e092850 100644 --- a/tsffs_module/stubs/tsffs_module/simics_start.py +++ b/modules/tsffs/tests/targets/minimal-riscv-64/build.ninja @@ -1,2 +1,7 @@ # Copyright (C) 2023 Intel Corporation # SPDX-License-Identifier: Apache-2.0 + +rule runbuild + command = bash build.sh + +build test: runbuild diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/build.sh b/modules/tsffs/tests/targets/minimal-riscv-64/build.sh new file mode 100755 index 00000000..977ed5f6 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/build.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +# Build the HelloWorld.efi module and copy it into the resource directory for the example +# this only needs to be run if you want to modify the source code for the HelloWorld.efi module, +# otherwise, the EFI is included in the source tree for ease of use + +SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) +IMAGE_NAME="buildroot-build-tsffs-gcc-riscv64-test" +CONTAINER_UID=$(echo "${RANDOM}" | sha256sum | head -c 8) +CONTAINER_NAME="${IMAGE_NAME}-tmp-${CONTAINER_UID}" + +pushd "${SCRIPT_DIR}" || exit 1 + +cp "${SCRIPT_DIR}/../../../../../harness/tsffs-gcc-riscv64.h" "${SCRIPT_DIR}/tsffs-gcc-riscv64.h" +cp "${SCRIPT_DIR}/../../../../../harness/tsffs-gcc-riscv64.h" "${SCRIPT_DIR}/test-kernel-modules/package/kernel-modules/test-mod/tsffs-gcc-riscv64.h" + +docker build -t "${IMAGE_NAME}" -f "Dockerfile" . +docker create --name "${CONTAINER_NAME}" "${IMAGE_NAME}" +docker cp \ + "${CONTAINER_NAME}:/buildroot/images.tar.gz" \ + "${SCRIPT_DIR}/images.tar.gz" +docker cp \ + "${CONTAINER_NAME}:/test/usr/test" \ + "${SCRIPT_DIR}/test" +docker cp \ + "${CONTAINER_NAME}:/test/usr/test-mod" \ + "${SCRIPT_DIR}/test-mod" +docker cp \ + "${CONTAINER_NAME}:/test/usr/test-mod-userspace" \ + "${SCRIPT_DIR}/test-mod-userspace" +docker cp \ + "${CONTAINER_NAME}:/buildroot/output/build/test-mod-1.0/test-mod.ko" \ + "${SCRIPT_DIR}/test-mod.ko" +docker rm -f "${CONTAINER_NAME}" +tar -xvf images.tar.gz diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/simics_simple_riscv_defconfig b/modules/tsffs/tests/targets/minimal-riscv-64/simics_simple_riscv_defconfig new file mode 100644 index 00000000..74316ed2 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/simics_simple_riscv_defconfig @@ -0,0 +1,4468 @@ +# +# Automatically generated file; DO NOT EDIT. +# Buildroot 2023.08-841-ga9d2040b06 Configuration +# +BR2_HAVE_DOT_CONFIG=y +BR2_EXTERNAL_NAMES="TEST_KERNEL_MODULES" +BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH="/test/test-kernel-modules" +BR2_EXTERNAL_TEST_KERNEL_MODULES_VERSION="" +BR2_HOST_GCC_AT_LEAST_4_9=y +BR2_HOST_GCC_AT_LEAST_5=y +BR2_HOST_GCC_AT_LEAST_6=y +BR2_HOST_GCC_AT_LEAST_7=y +BR2_HOST_GCC_AT_LEAST_8=y +BR2_HOST_GCC_AT_LEAST_9=y + +# +# Target options +# +BR2_ARCH_IS_64=y +BR2_USE_MMU=y +# BR2_arcle is not set +# BR2_arceb is not set +# BR2_arm is not set +# BR2_armeb is not set +# BR2_aarch64 is not set +# BR2_aarch64_be is not set +# BR2_i386 is not set +# BR2_m68k is not set +# BR2_microblazeel is not set +# BR2_microblazebe is not set +# BR2_mips is not set +# BR2_mipsel is not set +# BR2_mips64 is not set +# BR2_mips64el is not set +# BR2_nios2 is not set +# BR2_or1k is not set +# BR2_powerpc is not set +# BR2_powerpc64 is not set +# BR2_powerpc64le is not set +BR2_riscv=y +# BR2_s390x is not set +# BR2_sh is not set +# BR2_sparc is not set +# BR2_sparc64 is not set +# BR2_x86_64 is not set +# BR2_xtensa is not set +BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_4_8=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_5=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_6=y +BR2_ARCH_NEEDS_GCC_AT_LEAST_7=y +BR2_ARCH="riscv64" +BR2_NORMALIZED_ARCH="riscv" +BR2_ENDIAN="LITTLE" +BR2_GCC_TARGET_ABI="lp64d" +BR2_BINFMT_SUPPORTS_SHARED=y +BR2_READELF_ARCH_NAME="RISC-V" +BR2_riscv_g=y +# BR2_riscv_custom is not set + +# +# Instruction Set Extensions +# +BR2_RISCV_ISA_RVI=y +BR2_RISCV_ISA_RVM=y +BR2_RISCV_ISA_RVA=y +BR2_RISCV_ISA_RVF=y +BR2_RISCV_ISA_RVD=y +# BR2_RISCV_ISA_RVC is not set +# BR2_RISCV_ISA_RVV is not set +# BR2_RISCV_32 is not set +BR2_RISCV_64=y +BR2_RISCV_USE_MMU=y +# BR2_RISCV_ABI_LP64 is not set +# BR2_RISCV_ABI_LP64F is not set +BR2_RISCV_ABI_LP64D=y +BR2_BINFMT_ELF=y + +# +# Toolchain +# +BR2_TOOLCHAIN=y +BR2_TOOLCHAIN_USES_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT=y +# BR2_TOOLCHAIN_EXTERNAL is not set + +# +# Toolchain Buildroot Options +# +BR2_TOOLCHAIN_BUILDROOT_VENDOR="buildroot" +# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set +BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc" + +# +# Kernel Header Options +# +BR2_KERNEL_HEADERS_AS_KERNEL=y +# BR2_KERNEL_HEADERS_4_19 is not set +# BR2_KERNEL_HEADERS_5_4 is not set +# BR2_KERNEL_HEADERS_5_10 is not set +# BR2_KERNEL_HEADERS_5_15 is not set +# BR2_KERNEL_HEADERS_6_1 is not set +# BR2_KERNEL_HEADERS_6_5 is not set +# BR2_KERNEL_HEADERS_VERSION is not set +# BR2_KERNEL_HEADERS_CUSTOM_TARBALL is not set +# BR2_KERNEL_HEADERS_CUSTOM_GIT is not set +BR2_KERNEL_HEADERS_LATEST=y +BR2_PACKAGE_LINUX_HEADERS=y +BR2_PACKAGE_MUSL_ARCH_SUPPORTS=y +BR2_PACKAGE_MUSL_SUPPORTS=y +BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS=y +BR2_PACKAGE_UCLIBC_SUPPORTS=y +BR2_PACKAGE_GLIBC_ARCH_SUPPORTS=y +BR2_PACKAGE_GLIBC_SUPPORTS=y + +# +# Glibc Options +# +BR2_PACKAGE_GLIBC=y +# BR2_PACKAGE_GLIBC_KERNEL_COMPAT is not set +# BR2_PACKAGE_GLIBC_UTILS is not set + +# +# Binutils Options +# +BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI=y +# BR2_BINUTILS_VERSION_2_39_X is not set +# BR2_BINUTILS_VERSION_2_40_X is not set +BR2_BINUTILS_VERSION_2_41_X=y +BR2_BINUTILS_VERSION="2.41" +# BR2_BINUTILS_GPROFNG is not set +BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="" + +# +# GCC Options +# +# BR2_GCC_VERSION_11_X is not set +# BR2_GCC_VERSION_12_X is not set +BR2_GCC_VERSION_13_X=y +BR2_GCC_VERSION="13.2.0" +BR2_EXTRA_GCC_CONFIG_OPTIONS="" +# BR2_TOOLCHAIN_BUILDROOT_CXX is not set +# BR2_TOOLCHAIN_BUILDROOT_FORTRAN is not set +# BR2_GCC_ENABLE_OPENMP is not set +# BR2_GCC_ENABLE_GRAPHITE is not set +BR2_PACKAGE_GCC_FINAL=y +BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS=y + +# +# Host GDB Options +# +# BR2_PACKAGE_HOST_GDB is not set + +# +# Toolchain Generic Options +# +BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS=y +BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK=y +BR2_USE_WCHAR=y +BR2_ENABLE_LOCALE=y +BR2_TOOLCHAIN_HAS_THREADS=y +BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y +BR2_TOOLCHAIN_HAS_THREADS_NPTL=y +BR2_TOOLCHAIN_HAS_SSP=y +BR2_TOOLCHAIN_HAS_SSP_STRONG=y +BR2_TOOLCHAIN_HAS_UCONTEXT=y +BR2_TOOLCHAIN_SUPPORTS_PIE=y +# BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY is not set +BR2_TOOLCHAIN_EXTRA_LIBS="" +BR2_TOOLCHAIN_HAS_FULL_GETTEXT=y +BR2_TARGET_OPTIMIZATION="" +BR2_TARGET_LDFLAGS="" +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_18=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_0=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_2=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_3=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_4=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_5=y +BR2_TOOLCHAIN_HEADERS_LATEST=y +BR2_TOOLCHAIN_HEADERS_AT_LEAST="6.5" +BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_6=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_7=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_8=y +BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y +BR2_TOOLCHAIN_GCC_AT_LEAST_5=y +BR2_TOOLCHAIN_GCC_AT_LEAST_6=y +BR2_TOOLCHAIN_GCC_AT_LEAST_7=y +BR2_TOOLCHAIN_GCC_AT_LEAST_8=y +BR2_TOOLCHAIN_GCC_AT_LEAST_9=y +BR2_TOOLCHAIN_GCC_AT_LEAST_10=y +BR2_TOOLCHAIN_GCC_AT_LEAST_11=y +BR2_TOOLCHAIN_GCC_AT_LEAST_12=y +BR2_TOOLCHAIN_GCC_AT_LEAST_13=y +BR2_TOOLCHAIN_GCC_AT_LEAST="13" +BR2_TOOLCHAIN_HAS_MNAN_OPTION=y +BR2_TOOLCHAIN_HAS_SYNC_1=y +BR2_TOOLCHAIN_HAS_SYNC_2=y +BR2_TOOLCHAIN_HAS_SYNC_4=y +BR2_TOOLCHAIN_HAS_SYNC_8=y +BR2_TOOLCHAIN_HAS_LIBATOMIC=y +BR2_TOOLCHAIN_HAS_ATOMIC=y + +# +# Build options +# + +# +# Commands +# +BR2_WGET="wget --passive-ftp -nd -t 3" +BR2_SVN="svn --non-interactive" +BR2_BZR="bzr" +BR2_GIT="git" +BR2_CVS="cvs" +BR2_LOCALFILES="cp" +BR2_SCP="scp" +BR2_SFTP="sftp" +BR2_HG="hg" +BR2_ZCAT="gzip -d -c" +BR2_BZCAT="bzcat" +BR2_XZCAT="xzcat" +BR2_LZCAT="lzip -d -c" +BR2_TAR_OPTIONS="" +BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig" +BR2_DL_DIR="$(TOPDIR)/dl" +BR2_HOST_DIR="$(BASE_DIR)/host" + +# +# Mirrors and Download locations +# +BR2_PRIMARY_SITE="" +BR2_BACKUP_SITE="https://sources.buildroot.net" +BR2_KERNEL_MIRROR="https://cdn.kernel.org/pub" +BR2_GNU_MIRROR="http://ftpmirror.gnu.org" +BR2_LUAROCKS_MIRROR="http://rocks.moonscript.org" +BR2_CPAN_MIRROR="https://cpan.metacpan.org" +BR2_JLEVEL=0 +# BR2_CCACHE is not set +# BR2_ENABLE_DEBUG is not set +# BR2_ENABLE_RUNTIME_DEBUG is not set +# BR2_STRIP_strip is not set +# BR2_OPTIMIZE_0 is not set +# BR2_OPTIMIZE_1 is not set +# BR2_OPTIMIZE_2 is not set +# BR2_OPTIMIZE_3 is not set +# BR2_OPTIMIZE_G is not set +BR2_OPTIMIZE_S=y +# BR2_OPTIMIZE_FAST is not set +# BR2_ENABLE_LTO is not set + +# +# static only needs a toolchain w/ uclibc or musl +# +BR2_SHARED_LIBS=y +# BR2_SHARED_STATIC_LIBS is not set +BR2_PACKAGE_OVERRIDE_FILE="$(CONFIG_DIR)/local.mk" +BR2_GLOBAL_PATCH_DIR="" + +# +# Advanced +# +# BR2_FORCE_HOST_BUILD is not set +# BR2_REPRODUCIBLE is not set +# BR2_PER_PACKAGE_DIRECTORIES is not set + +# +# Security Hardening Options +# +BR2_PIC_PIE_ARCH_SUPPORTS=y +BR2_PIC_PIE=y +# BR2_SSP_NONE is not set +# BR2_SSP_REGULAR is not set +BR2_SSP_STRONG=y +# BR2_SSP_ALL is not set +BR2_SSP_OPTION="-fstack-protector-strong" +# BR2_RELRO_NONE is not set +# BR2_RELRO_PARTIAL is not set +BR2_RELRO_FULL=y +BR2_FORTIFY_SOURCE_ARCH_SUPPORTS=y +# BR2_FORTIFY_SOURCE_NONE is not set +BR2_FORTIFY_SOURCE_1=y +# BR2_FORTIFY_SOURCE_2 is not set +# BR2_FORTIFY_SOURCE_3 is not set + +# +# System configuration +# +BR2_ROOTFS_SKELETON_DEFAULT=y +# BR2_ROOTFS_SKELETON_CUSTOM is not set +BR2_TARGET_GENERIC_HOSTNAME="buildroot" +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot" +BR2_TARGET_GENERIC_PASSWD_SHA256=y +# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set +BR2_TARGET_GENERIC_PASSWD_METHOD="sha-256" +BR2_INIT_BUSYBOX=y +# BR2_INIT_SYSV is not set +# BR2_INIT_OPENRC is not set +# BR2_INIT_SYSTEMD is not set +# BR2_INIT_NONE is not set +# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set +BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt" +# BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is not set +# BR2_ROOTFS_MERGED_USR is not set +BR2_TARGET_ENABLE_ROOT_LOGIN=y +BR2_TARGET_GENERIC_ROOT_PASSWD="" +BR2_SYSTEM_BIN_SH_BUSYBOX=y + +# +# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS +# +# BR2_SYSTEM_BIN_SH_NONE is not set +BR2_TARGET_GENERIC_GETTY=y +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" +BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set +# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set +BR2_TARGET_GENERIC_GETTY_BAUDRATE="0" +BR2_TARGET_GENERIC_GETTY_TERM="vt100" +BR2_TARGET_GENERIC_GETTY_OPTIONS="" +BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y +BR2_SYSTEM_DHCP="eth0" +BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin" +BR2_ENABLE_LOCALE_PURGE=y +BR2_ENABLE_LOCALE_WHITELIST="C en_US" +BR2_GENERATE_LOCALE="" +# BR2_SYSTEM_ENABLE_NLS is not set +# BR2_TARGET_TZ_INFO is not set +BR2_ROOTFS_USERS_TABLES="" +BR2_ROOTFS_OVERLAY="" +BR2_ROOTFS_PRE_BUILD_SCRIPT="" +BR2_ROOTFS_POST_BUILD_SCRIPT="" +BR2_ROOTFS_POST_FAKEROOT_SCRIPT="" +BR2_ROOTFS_POST_IMAGE_SCRIPT="" + +# +# Kernel +# +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_LATEST_VERSION=y +# BR2_LINUX_KERNEL_LATEST_CIP_VERSION is not set +# BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION is not set +# BR2_LINUX_KERNEL_CUSTOM_VERSION is not set +# BR2_LINUX_KERNEL_CUSTOM_TARBALL is not set +# BR2_LINUX_KERNEL_CUSTOM_GIT is not set +# BR2_LINUX_KERNEL_CUSTOM_HG is not set +# BR2_LINUX_KERNEL_CUSTOM_SVN is not set +BR2_LINUX_KERNEL_VERSION="6.5.9" +BR2_LINUX_KERNEL_PATCH="" +# BR2_LINUX_KERNEL_USE_DEFCONFIG is not set +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +# BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG is not set +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="" +BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH="" +BR2_LINUX_KERNEL_IMAGE=y +# BR2_LINUX_KERNEL_IMAGEGZ is not set +# BR2_LINUX_KERNEL_VMLINUX is not set +# BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is not set +BR2_LINUX_KERNEL_GZIP=y +# BR2_LINUX_KERNEL_LZ4 is not set +# BR2_LINUX_KERNEL_LZMA is not set +# BR2_LINUX_KERNEL_LZO is not set +# BR2_LINUX_KERNEL_XZ is not set +# BR2_LINUX_KERNEL_ZSTD is not set +# BR2_LINUX_KERNEL_DTS_SUPPORT is not set +BR2_LINUX_KERNEL_INSTALL_TARGET=y +# BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL is not set +# BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF is not set +# BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE is not set + +# +# Linux Kernel Extensions +# +# BR2_LINUX_KERNEL_EXT_EV3DEV_LINUX_DRIVERS is not set +# BR2_LINUX_KERNEL_EXT_FBTFT is not set +# BR2_LINUX_KERNEL_EXT_AUFS is not set + +# +# Linux Kernel Tools +# +# BR2_PACKAGE_LINUX_TOOLS_CPUPOWER is not set +# BR2_PACKAGE_LINUX_TOOLS_GPIO is not set +# BR2_PACKAGE_LINUX_TOOLS_IIO is not set +# BR2_PACKAGE_LINUX_TOOLS_PCI is not set +# BR2_PACKAGE_LINUX_TOOLS_PERF is not set + +# +# selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS and a toolchain w/ dynamic library and headers >= 3.14 +# +# BR2_PACKAGE_LINUX_TOOLS_USBTOOLS is not set +# BR2_PACKAGE_LINUX_TOOLS_TMON is not set + +# +# Target packages +# +BR2_PACKAGE_BUSYBOX=y +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" +# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set +# BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set +# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set +BR2_PACKAGE_SKELETON=y +BR2_PACKAGE_HAS_SKELETON=y +BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv" +BR2_PACKAGE_SKELETON_INIT_COMMON=y +BR2_PACKAGE_SKELETON_INIT_SYSV=y + +# +# Audio and video applications +# +# BR2_PACKAGE_ALSA_UTILS is not set +# BR2_PACKAGE_ATEST is not set +# BR2_PACKAGE_AUMIX is not set +# BR2_PACKAGE_BLUEZ_ALSA is not set +# BR2_PACKAGE_DVBLAST is not set +# BR2_PACKAGE_DVDAUTHOR is not set + +# +# dvdrw-tools needs a toolchain w/ threads, C++, wchar +# + +# +# espeak needs a toolchain w/ C++, wchar, threads, dynamic library +# +# BR2_PACKAGE_FAAD2 is not set +BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS=y +# BR2_PACKAGE_FFMPEG is not set +# BR2_PACKAGE_FLAC is not set +# BR2_PACKAGE_FLITE is not set +# BR2_PACKAGE_FLUID_SOUNDFONT is not set + +# +# fluidsynth needs a toolchain w/ threads, wchar, dynamic library, C++ +# +# BR2_PACKAGE_GMRENDER_RESURRECT is not set +# BR2_PACKAGE_GSTREAMER1 is not set +# BR2_PACKAGE_JACK1 is not set + +# +# jack2 needs a toolchain w/ threads, C++, dynamic library +# +BR2_PACKAGE_KODI_ARCH_SUPPORTS=y + +# +# kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 9.x +# + +# +# kodi needs udev support for gbm +# + +# +# kodi needs an OpenGL EGL backend with OpenGL or GLES support +# +# BR2_PACKAGE_LAME is not set +# BR2_PACKAGE_MADPLAY is not set +# BR2_PACKAGE_MIMIC is not set +# BR2_PACKAGE_MINIMODEM is not set + +# +# miraclecast needs systemd and a glibc toolchain w/ threads and wchar +# + +# +# mjpegtools needs a toolchain w/ C++, threads +# + +# +# modplugtools needs a toolchain w/ C++ +# +# BR2_PACKAGE_MOTION is not set + +# +# mpd needs a toolchain w/ C++, threads, wchar, gcc >= 8, host gcc >= 8 +# +# BR2_PACKAGE_MPD_MPC is not set +# BR2_PACKAGE_MPG123 is not set + +# +# mpv needs a toolchain w/ C++, NPTL, gcc >= 4.9 +# +# BR2_PACKAGE_MULTICAT is not set +# BR2_PACKAGE_MUSEPACK is not set + +# +# ncmpc needs a toolchain w/ C++, wchar, threads, gcc >= 10 +# +# BR2_PACKAGE_OPUS_TOOLS is not set +# BR2_PACKAGE_PIPEWIRE is not set +BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC=y +# BR2_PACKAGE_PULSEAUDIO is not set +# BR2_PACKAGE_SOX is not set +# BR2_PACKAGE_SPEECHD is not set +# BR2_PACKAGE_SQUEEZELITE is not set +# BR2_PACKAGE_TINYCOMPRESS is not set +# BR2_PACKAGE_TSTOOLS is not set +# BR2_PACKAGE_TWOLAME is not set +# BR2_PACKAGE_UDPXY is not set + +# +# upmpdcli needs a toolchain w/ C++, NPTL, gcc >= 4.9 +# + +# +# v4l2grab needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0 +# +# BR2_PACKAGE_V4L2LOOPBACK is not set + +# +# vlc needs a toolchain w/ C++, dynamic library, wchar, threads, gcc >= 4.9, headers >= 3.7 +# +# BR2_PACKAGE_VORBIS_TOOLS is not set +# BR2_PACKAGE_WAVPACK is not set +# BR2_PACKAGE_YAVTA is not set +# BR2_PACKAGE_YMPD is not set + +# +# zynaddsubfx needs a toolchain w/ C++11 and threads +# + +# +# Compressors and decompressors +# +# BR2_PACKAGE_BROTLI is not set +# BR2_PACKAGE_BZIP2 is not set + +# +# lrzip needs a toolchain w/ wchar, threads, C++ +# + +# +# lzip needs a toolchain w/ C++ +# +# BR2_PACKAGE_LZOP is not set + +# +# p7zip needs a toolchain w/ threads, wchar, C++ +# +# BR2_PACKAGE_PIGZ is not set +# BR2_PACKAGE_PIXZ is not set + +# +# unrar needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# +# BR2_PACKAGE_XZ is not set +# BR2_PACKAGE_ZIP is not set +# BR2_PACKAGE_ZSTD is not set + +# +# Debugging, profiling and benchmark +# +# BR2_PACKAGE_BABELTRACE2 is not set +# BR2_PACKAGE_BLKTRACE is not set + +# +# bonnie++ needs a toolchain w/ C++ +# +# BR2_PACKAGE_CACHE_CALIBRATOR is not set + +# +# clinfo needs an OpenCL provider +# + +# +# clpeak needs an OpenCL provider, a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_COREMARK is not set +# BR2_PACKAGE_COREMARK_PRO is not set + +# +# dacapo needs OpenJDK +# +# BR2_PACKAGE_DHRYSTONE is not set +# BR2_PACKAGE_DIEHARDER is not set +# BR2_PACKAGE_DMALLOC is not set +# BR2_PACKAGE_DROPWATCH is not set +# BR2_PACKAGE_DSTAT is not set +# BR2_PACKAGE_DT is not set + +# +# duma needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_FIO is not set +BR2_PACKAGE_GDB_ARCH_SUPPORTS=y + +# +# gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_IOZONE is not set +# BR2_PACKAGE_KMEMD is not set +# BR2_PACKAGE_LATENCYTOP is not set +# BR2_PACKAGE_LIBBPF is not set +# BR2_PACKAGE_LMBENCH is not set +BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y +# BR2_PACKAGE_LTP_TESTSUITE is not set +# BR2_PACKAGE_LTTNG_BABELTRACE is not set +# BR2_PACKAGE_LTTNG_MODULES is not set + +# +# lttng-tools needs a toolchain w/ threads, dynamic library, C++ +# +# BR2_PACKAGE_MBPOLL is not set +# BR2_PACKAGE_MBW is not set +# BR2_PACKAGE_MEMSTAT is not set +# BR2_PACKAGE_NETPERF is not set + +# +# netsniff-ng needs a toolchain w/ NPTL, C++, headers >= 3.0 +# +# BR2_PACKAGE_NMON is not set +# BR2_PACKAGE_PAX_UTILS is not set +BR2_PACKAGE_PERFTEST_ARCH_SUPPORTS=y +# BR2_PACKAGE_PERFTEST is not set + +# +# piglit needs a glibc or musl toolchain w/ C++ +# +# BR2_PACKAGE_POKE is not set +# BR2_PACKAGE_PV is not set +# BR2_PACKAGE_RAMSMP is not set +# BR2_PACKAGE_RAMSPEED is not set +# BR2_PACKAGE_RT_TESTS is not set + +# +# rwmem needs a toolchain w/ C++, wchar, gcc >= 10 +# + +# +# signal-estimator needs a toochain w/ C++, threads, gcc >= 7 +# +# BR2_PACKAGE_SPIDEV_TEST is not set +# BR2_PACKAGE_STRACE is not set +# BR2_PACKAGE_STRESS is not set +# BR2_PACKAGE_STRESS_NG is not set + +# +# sysdig needs a glibc toolchain w/ C++, threads, gcc >= 5, dynamic library, a Linux kernel, and luajit or lua 5.1 to be built +# +# BR2_PACKAGE_TINYMEMBENCH is not set +# BR2_PACKAGE_TRACE_CMD is not set +# BR2_PACKAGE_UCLIBC_NG_TEST is not set +# BR2_PACKAGE_VMTOUCH is not set +# BR2_PACKAGE_WHETSTONE is not set + +# +# Development tools +# +# BR2_PACKAGE_AVOCADO is not set +# BR2_PACKAGE_BINUTILS is not set +# BR2_PACKAGE_BITWISE is not set +# BR2_PACKAGE_BSDIFF is not set +# BR2_PACKAGE_CHECK is not set +BR2_PACKAGE_CMAKE_ARCH_SUPPORTS=y + +# +# ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.9, NPTL +# + +# +# cppunit needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_CUKINIA is not set +# BR2_PACKAGE_CUNIT is not set +# BR2_PACKAGE_CVS is not set + +# +# cxxtest needs a toolchain w/ C++ support +# +# BR2_PACKAGE_FLEX is not set +# BR2_PACKAGE_GETTEXT is not set +BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny" +# BR2_PACKAGE_GIT is not set + +# +# git-crypt needs a toolchain w/ C++, gcc >= 4.9 +# + +# +# gperf needs a toolchain w/ C++ +# +# BR2_PACKAGE_JO is not set +# BR2_PACKAGE_JQ is not set +# BR2_PACKAGE_LIBTOOL is not set +# BR2_PACKAGE_MAKE is not set +# BR2_PACKAGE_MAWK is not set +# BR2_PACKAGE_PKGCONF is not set +# BR2_PACKAGE_SUBVERSION is not set +# BR2_PACKAGE_TREE is not set +# BR2_PACKAGE_UNIFDEF is not set + +# +# Filesystem and flash utilities +# +# BR2_PACKAGE_ABOOTIMG is not set +# BR2_PACKAGE_AUFS_UTIL is not set +# BR2_PACKAGE_AUTOFS is not set +# BR2_PACKAGE_BTRFS_PROGS is not set +# BR2_PACKAGE_CIFS_UTILS is not set +# BR2_PACKAGE_CPIO is not set +# BR2_PACKAGE_CRAMFS is not set +# BR2_PACKAGE_CURLFTPFS is not set +# BR2_PACKAGE_DAVFS2 is not set +# BR2_PACKAGE_DOSFSTOOLS is not set +# BR2_PACKAGE_E2FSPROGS is not set +# BR2_PACKAGE_E2TOOLS is not set +# BR2_PACKAGE_ECRYPTFS_UTILS is not set +# BR2_PACKAGE_EROFS_UTILS is not set +# BR2_PACKAGE_EXFAT is not set +# BR2_PACKAGE_EXFAT_UTILS is not set +# BR2_PACKAGE_EXFATPROGS is not set +# BR2_PACKAGE_F2FS_TOOLS is not set +# BR2_PACKAGE_FIRMWARE_UTILS is not set +# BR2_PACKAGE_FLASHBENCH is not set +# BR2_PACKAGE_FSCRYPTCTL is not set +# BR2_PACKAGE_FUSE_OVERLAYFS is not set +# BR2_PACKAGE_FWUP is not set +# BR2_PACKAGE_GENEXT2FS is not set +# BR2_PACKAGE_GENPART is not set +# BR2_PACKAGE_GENROMFS is not set +# BR2_PACKAGE_GOCRYPTFS is not set +# BR2_PACKAGE_IMX_USB_LOADER is not set +# BR2_PACKAGE_MMC_UTILS is not set +# BR2_PACKAGE_MTD is not set +# BR2_PACKAGE_MTOOLS is not set +# BR2_PACKAGE_NFS_UTILS is not set +# BR2_PACKAGE_NILFS_UTILS is not set +# BR2_PACKAGE_NTFS_3G is not set +# BR2_PACKAGE_SP_OOPS_EXTRACT is not set +# BR2_PACKAGE_SQUASHFS is not set +# BR2_PACKAGE_SSHFS is not set +# BR2_PACKAGE_UDFTOOLS is not set +# BR2_PACKAGE_UNIONFS is not set + +# +# xfsprogs needs a toolchain w/ threads, C++ +# +# BR2_PACKAGE_ZEROFREE is not set + +# +# zfs needs udev /dev management +# + +# +# Fonts, cursors, icons, sounds and themes +# + +# +# Cursors +# +# BR2_PACKAGE_COMIX_CURSORS is not set +# BR2_PACKAGE_OBSIDIAN_CURSORS is not set + +# +# Fonts +# +# BR2_PACKAGE_BITSTREAM_VERA is not set +# BR2_PACKAGE_CANTARELL is not set +# BR2_PACKAGE_DEJAVU is not set +# BR2_PACKAGE_FONT_AWESOME is not set +# BR2_PACKAGE_GHOSTSCRIPT_FONTS is not set +# BR2_PACKAGE_INCONSOLATA is not set +# BR2_PACKAGE_LIBERATION is not set +# BR2_PACKAGE_WQY_ZENHEI is not set + +# +# Icons +# +# BR2_PACKAGE_HICOLOR_ICON_THEME is not set + +# +# Sounds +# +# BR2_PACKAGE_SOUND_THEME_BOREALIS is not set +# BR2_PACKAGE_SOUND_THEME_FREEDESKTOP is not set + +# +# Themes +# + +# +# Games +# +# BR2_PACKAGE_ASCII_INVADERS is not set +# BR2_PACKAGE_CHOCOLATE_DOOM is not set + +# +# flare-engine needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_FROTZ is not set + +# +# gnuchess needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LBREAKOUT2 is not set +# BR2_PACKAGE_LTRIS is not set +# BR2_PACKAGE_OPENTYRIAN is not set +# BR2_PACKAGE_PRBOOM is not set +# BR2_PACKAGE_SL is not set + +# +# solarus needs OpenGL and a toolchain w/ C++, gcc >= 4.9, NPTL, dynamic library, and luajit or lua 5.1 +# + +# +# stella needs a toolchain w/ dynamic library, C++, threads, gcc >= 7 +# +# BR2_PACKAGE_XORCURSES is not set + +# +# Graphic libraries and applications (graphic/text) +# + +# +# Graphic applications +# + +# +# cage needs udev, EGL w/ Wayland backend and OpenGL ES support +# + +# +# cog needs wpewebkit and a toolchain w/ threads +# +# BR2_PACKAGE_FSWEBCAM is not set +# BR2_PACKAGE_GHOSTSCRIPT is not set + +# +# glmark2 needs a toolchain w/ C++, gcc >= 4.9 +# + +# +# glslsandbox-player needs openGL ES and EGL driver +# +# BR2_PACKAGE_GNUPLOT is not set +# BR2_PACKAGE_JHEAD is not set + +# +# kmscube needs EGL, GBM and OpenGL ES, and a toolchain w/ thread support +# + +# +# libva-utils needs a toolchain w/ C++, threads, dynamic library +# +BR2_PACKAGE_MIDORI_ARCH_SUPPORTS=y + +# +# midori needs a glibc toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 8 +# + +# +# midori needs libgtk3 w/ X11 or wayland backend +# +BR2_PACKAGE_NETSURF_ARCH_SUPPORTS=y +# BR2_PACKAGE_NETSURF is not set +# BR2_PACKAGE_PNGQUANT is not set +# BR2_PACKAGE_RRDTOOL is not set + +# +# spirv-tools needs a toolchain w/ C++, gcc >= 7 +# + +# +# stellarium needs Qt5 and an OpenGL provider +# + +# +# sway needs systemd, udev, EGL w/ Wayland backend and OpenGL ES support +# + +# +# sway needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9 +# +# BR2_PACKAGE_SWAYBG is not set + +# +# tesseract-ocr needs a toolchain w/ threads, C++, gcc >= 7, dynamic library, wchar +# +# BR2_PACKAGE_TINIFIER is not set + +# +# Graphic libraries +# + +# +# cegui needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 5 +# + +# +# directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library +# + +# +# efl needs a toolchain w/ C++, dynamic library, gcc >= 4.9, host gcc >= 4.9, threads, wchar +# +# BR2_PACKAGE_FB_TEST_APP is not set +# BR2_PACKAGE_FBDUMP is not set +# BR2_PACKAGE_FBGRAB is not set + +# +# fbterm needs a toolchain w/ C++, wchar, locale +# +# BR2_PACKAGE_FBV is not set + +# +# flutter-gallery needs flutter-engine +# + +# +# flutter-pi needs flutter-engine +# + +# +# flutter-pi needs GBM, systemd, and udev +# + +# +# freerdp needs a toolchain w/ wchar, dynamic library, threads, C++ +# +# BR2_PACKAGE_GRAPHICSMAGICK is not set +# BR2_PACKAGE_IMAGEMAGICK is not set +# BR2_PACKAGE_LIBGLVND is not set +# BR2_PACKAGE_LINUX_FUSION is not set + +# +# mesa3d needs a toolchain w/ gcc >=8, C++, NPTL, dynamic library +# + +# +# ocrad needs a toolchain w/ C++ +# + +# +# ogre needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads, wchar +# +# BR2_PACKAGE_PSPLASH is not set +# BR2_PACKAGE_SDL is not set +# BR2_PACKAGE_SDL2 is not set + +# +# spirv-headers needs a toolchain w/ C++ +# +# BR2_PACKAGE_VULKAN_HEADERS is not set + +# +# vulkan-loader needs a toolchain w/ C++, dynamic library, threads +# + +# +# vulkan-tools needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.9 +# + +# +# Other GUIs +# + +# +# Qt5 needs host g++ >= 5.0, and a toolchain w/ gcc >= 5.0, wchar, NPTL, C++, dynamic library +# + +# +# tekui needs a Lua interpreter and a toolchain w/ threads, dynamic library +# + +# +# weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0 +# +# BR2_PACKAGE_XORG7 is not set + +# +# apitrace needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 7 +# + +# +# mupdf needs a toolchain w/ C++, gcc >= 4.9 +# + +# +# vte needs a uClibc or glibc toolchain w/ wchar, threads, C++, gcc >= 10 +# + +# +# vte needs an OpenGL or an OpenGL-EGL/wayland backend +# +# BR2_PACKAGE_XKEYBOARD_CONFIG is not set + +# +# Hardware handling +# + +# +# Firmware +# +# BR2_PACKAGE_ARMBIAN_FIRMWARE is not set +# BR2_PACKAGE_B43_FIRMWARE is not set +# BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI is not set +# BR2_PACKAGE_LINUX_FIRMWARE is not set +# BR2_PACKAGE_MURATA_CYW_FW is not set +# BR2_PACKAGE_ODROIDC2_FIRMWARE is not set +# BR2_PACKAGE_QCOM_DB410C_FIRMWARE is not set +# BR2_PACKAGE_QORIQ_FM_UCODE is not set +# BR2_PACKAGE_RCW_SMARC_SAL28 is not set +# BR2_PACKAGE_UX500_FIRMWARE is not set +# BR2_PACKAGE_WILC1000_FIRMWARE is not set +# BR2_PACKAGE_WILC3000_FIRMWARE is not set +# BR2_PACKAGE_WILINK_BT_FIRMWARE is not set +# BR2_PACKAGE_ZD1211_FIRMWARE is not set +# BR2_PACKAGE_18XX_TI_UTILS is not set +# BR2_PACKAGE_ACPICA is not set +# BR2_PACKAGE_ACPID is not set + +# +# acpitool needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_AER_INJECT is not set +# BR2_PACKAGE_ALTERA_STAPL is not set + +# +# apcupsd needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_AVRDUDE is not set + +# +# bcache-tools needs udev /dev management +# + +# +# brickd needs udev /dev management, a toolchain w/ threads, wchar +# +# BR2_PACKAGE_BRLTTY is not set + +# +# cc-tool needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_CDRKIT is not set +# BR2_PACKAGE_CRUCIBLE is not set +# BR2_PACKAGE_CRYPTSETUP is not set +# BR2_PACKAGE_CWIID is not set +# BR2_PACKAGE_DAHDI_LINUX is not set +# BR2_PACKAGE_DAHDI_TOOLS is not set +# BR2_PACKAGE_DBUS is not set + +# +# dbusbroker needs systemd and a toolchain w/ threads +# + +# +# dbus-cxx needs a toolchain w/ C++, threads, gcc >= 7 and dynamic library support +# +# BR2_PACKAGE_DFU_PROGRAMMER is not set +# BR2_PACKAGE_DFU_UTIL is not set +# BR2_PACKAGE_DMRAID is not set + +# +# dt-utils needs udev /dev management +# +# BR2_PACKAGE_DTBOCFG is not set +# BR2_PACKAGE_DTV_SCAN_TABLES is not set +# BR2_PACKAGE_DUMP1090 is not set +# BR2_PACKAGE_DVB_APPS is not set +# BR2_PACKAGE_DVBSNOOP is not set + +# +# edid-decode needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_ESP_HOSTED is not set + +# +# eudev needs eudev /dev management +# +# BR2_PACKAGE_EVEMU is not set +# BR2_PACKAGE_EVTEST is not set +# BR2_PACKAGE_FAN_CTRL is not set +# BR2_PACKAGE_FCONFIG is not set +BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS=y +# BR2_PACKAGE_FLASHROM is not set +# BR2_PACKAGE_FMTOOLS is not set +# BR2_PACKAGE_FREEIPMI is not set +# BR2_PACKAGE_FXLOAD is not set +# BR2_PACKAGE_GPM is not set +# BR2_PACKAGE_GPSD is not set + +# +# gptfdisk needs a toolchain w/ C++ +# +# BR2_PACKAGE_GVFS is not set +# BR2_PACKAGE_HDDTEMP is not set +# BR2_PACKAGE_HWDATA is not set +# BR2_PACKAGE_HWLOC is not set +# BR2_PACKAGE_INPUT_EVENT_DAEMON is not set +# BR2_PACKAGE_IPMITOOL is not set +# BR2_PACKAGE_IRDA_UTILS is not set +# BR2_PACKAGE_KBD is not set +# BR2_PACKAGE_LCDPROC is not set + +# +# ledmon needs udev and a toolchain w/ threads +# + +# +# libiec61850 needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBMANETTE is not set +# BR2_PACKAGE_LIBUBOOTENV is not set +# BR2_PACKAGE_LIBUIO is not set +# BR2_PACKAGE_LINUX_BACKPORTS is not set +# BR2_PACKAGE_LINUX_SERIAL_TEST is not set +# BR2_PACKAGE_LINUXCONSOLETOOLS is not set + +# +# lirc-tools needs a toolchain w/ threads, dynamic library, C++ +# +# BR2_PACKAGE_LM_SENSORS is not set + +# +# lshw needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LSSCSI is not set +# BR2_PACKAGE_LSUIO is not set +# BR2_PACKAGE_LUKSMETA is not set +# BR2_PACKAGE_LVM2 is not set +# BR2_PACKAGE_MBPFAN is not set +# BR2_PACKAGE_MDADM is not set +# BR2_PACKAGE_MDEVD is not set +# BR2_PACKAGE_MDIO_TOOLS is not set +# BR2_PACKAGE_MEMTESTER is not set +# BR2_PACKAGE_MEMTOOL is not set +# BR2_PACKAGE_MHZ is not set +# BR2_PACKAGE_MINICOM is not set +# BR2_PACKAGE_NANOCOM is not set +# BR2_PACKAGE_NEARD is not set +# BR2_PACKAGE_NVIDIA_MODPROBE is not set +# BR2_PACKAGE_NVIDIA_PERSISTENCED is not set +# BR2_PACKAGE_NVME is not set +# BR2_PACKAGE_OFONO is not set + +# +# ola needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# +# BR2_PACKAGE_OPEN2300 is not set + +# +# openfpgaloader needs a toolchain w/ threads, C++, gcc >= 4.9 +# +# BR2_PACKAGE_OPENIPMI is not set +# BR2_PACKAGE_OPENOCD is not set +# BR2_PACKAGE_PARTED is not set +# BR2_PACKAGE_PCIUTILS is not set +# BR2_PACKAGE_PDBG is not set +# BR2_PACKAGE_PICOCOM is not set + +# +# powertop needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_PPS_TOOLS is not set +# BR2_PACKAGE_QORIQ_CADENCE_DP_FIRMWARE is not set +# BR2_PACKAGE_RASPI_GPIO is not set +# BR2_PACKAGE_RDMA_CORE is not set +# BR2_PACKAGE_READ_EDID is not set +# BR2_PACKAGE_RNG_TOOLS is not set +# BR2_PACKAGE_RS485CONF is not set +# BR2_PACKAGE_RTC_TOOLS is not set +# BR2_PACKAGE_RTL8188EU is not set +# BR2_PACKAGE_RTL8189ES is not set +# BR2_PACKAGE_RTL8189FS is not set +# BR2_PACKAGE_RTL8192EU is not set +# BR2_PACKAGE_RTL8723BU is not set +# BR2_PACKAGE_RTL8723DS is not set +# BR2_PACKAGE_RTL8723DS_BT is not set +# BR2_PACKAGE_RTL8812AU_AIRCRACK_NG is not set +# BR2_PACKAGE_RTL8821AU is not set +# BR2_PACKAGE_RTL8821CU is not set +# BR2_PACKAGE_RTL8822CS is not set +# BR2_PACKAGE_SANE_BACKENDS is not set +# BR2_PACKAGE_SDPARM is not set +# BR2_PACKAGE_SETSERIAL is not set +# BR2_PACKAGE_SG3_UTILS is not set +# BR2_PACKAGE_SIGROK_CLI is not set +# BR2_PACKAGE_SISPMCTL is not set + +# +# smartmontools needs a toolchain w/ C++ +# +# BR2_PACKAGE_SMSTOOLS3 is not set +# BR2_PACKAGE_SPI_TOOLS is not set +# BR2_PACKAGE_SREDIRD is not set +# BR2_PACKAGE_STATSERIAL is not set +# BR2_PACKAGE_STM32FLASH is not set +# BR2_PACKAGE_SYSSTAT is not set + +# +# targetcli-fb depends on Python +# +# BR2_PACKAGE_TI_UIM is not set +# BR2_PACKAGE_TI_UTILS is not set +# BR2_PACKAGE_TIO is not set +# BR2_PACKAGE_TRIGGERHAPPY is not set +# BR2_PACKAGE_UBOOT_TOOLS is not set +# BR2_PACKAGE_UBUS is not set + +# +# udisks needs udev /dev management +# +# BR2_PACKAGE_UHUBCTL is not set +# BR2_PACKAGE_UMTPRD is not set + +# +# upower needs udev /dev management +# +# BR2_PACKAGE_USB_MODESWITCH is not set +# BR2_PACKAGE_USB_MODESWITCH_DATA is not set + +# +# usbguard needs a toolchain w/ C++, threads, dynamic library, gcc >= 8 +# + +# +# usbmount requires udev to be enabled +# + +# +# usbutils needs udev /dev management and toolchain w/ threads, gcc >= 4.9 +# +# BR2_PACKAGE_W_SCAN is not set +# BR2_PACKAGE_WILC_DRIVER is not set +# BR2_PACKAGE_WIPE is not set +# BR2_PACKAGE_XORRISO is not set +# BR2_PACKAGE_XR819_XRADIO is not set + +# +# Interpreter languages and scripting +# +# BR2_PACKAGE_4TH is not set +# BR2_PACKAGE_ENSCRIPT is not set +BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS=y +BR2_PACKAGE_ERLANG_ARCH_SUPPORTS=y +# BR2_PACKAGE_ERLANG is not set +# BR2_PACKAGE_EXECLINE is not set +# BR2_PACKAGE_FICL is not set +# BR2_PACKAGE_GUILE is not set +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_JANET is not set +# BR2_PACKAGE_JIMTCL is not set +# BR2_PACKAGE_LUA is not set +BR2_PACKAGE_PROVIDES_HOST_LUAINTERPRETER="host-lua" +# BR2_PACKAGE_MICROPYTHON is not set +# BR2_PACKAGE_MOARVM is not set +BR2_PACKAGE_HOST_MONO_ARCH_SUPPORTS=y + +# +# octave needs a toolchain w/ C++ and fortran, gcc >= 4.8 +# +BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS=y +# BR2_PACKAGE_PERL is not set +BR2_PACKAGE_PHP_ARCH_SUPPORTS=y +# BR2_PACKAGE_PHP is not set +# BR2_PACKAGE_PYTHON3 is not set +# BR2_PACKAGE_QUICKJS is not set +# BR2_PACKAGE_RUBY is not set +# BR2_PACKAGE_TCL is not set + +# +# Libraries +# + +# +# Audio/Sound +# +# BR2_PACKAGE_ALSA_LIB is not set + +# +# alure needs a toolchain w/ C++, gcc >= 4.9, NPTL, wchar +# +# BR2_PACKAGE_AUBIO is not set +# BR2_PACKAGE_BCG729 is not set + +# +# caps needs a toolchain w/ C++, dynamic library +# +# BR2_PACKAGE_LIBAO is not set +# BR2_PACKAGE_LIBBROADVOICE is not set +# BR2_PACKAGE_LIBCDAUDIO is not set +# BR2_PACKAGE_LIBCDDB is not set +# BR2_PACKAGE_LIBCDIO is not set +# BR2_PACKAGE_LIBCDIO_PARANOIA is not set +# BR2_PACKAGE_LIBCODEC2 is not set +# BR2_PACKAGE_LIBCUE is not set +# BR2_PACKAGE_LIBCUEFILE is not set +# BR2_PACKAGE_LIBEBUR128 is not set +# BR2_PACKAGE_LIBG7221 is not set +# BR2_PACKAGE_LIBGSM is not set +# BR2_PACKAGE_LIBID3TAG is not set +# BR2_PACKAGE_LIBILBC is not set +# BR2_PACKAGE_LIBLO is not set +# BR2_PACKAGE_LIBMAD is not set + +# +# libmodplug needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBMPD is not set +# BR2_PACKAGE_LIBMPDCLIENT is not set +# BR2_PACKAGE_LIBREPLAYGAIN is not set +# BR2_PACKAGE_LIBSAMPLERATE is not set + +# +# libsidplay2 needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSILK is not set +# BR2_PACKAGE_LIBSNDFILE is not set + +# +# libsoundtouch needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSOXR is not set +# BR2_PACKAGE_LIBVORBIS is not set +# BR2_PACKAGE_LILV is not set +# BR2_PACKAGE_LV2 is not set + +# +# mp4v2 needs a toolchain w/ C++ +# +BR2_PACKAGE_OPENAL_ARCH_SUPPORTS=y + +# +# openal needs a toolchain w/ NPTL, C++, gcc >= 4.9 +# + +# +# opencore-amr needs a toolchain w/ C++ +# +# BR2_PACKAGE_OPUS is not set +# BR2_PACKAGE_OPUSFILE is not set +# BR2_PACKAGE_PORTAUDIO is not set +# BR2_PACKAGE_SBC is not set +# BR2_PACKAGE_SPANDSP is not set +# BR2_PACKAGE_SPEEX is not set +# BR2_PACKAGE_SPEEXDSP is not set +# BR2_PACKAGE_SRATOM is not set + +# +# taglib needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_TINYALSA is not set +# BR2_PACKAGE_TREMOR is not set +# BR2_PACKAGE_VO_AACENC is not set + +# +# Compression and decompression +# +# BR2_PACKAGE_LIBARCHIVE is not set +# BR2_PACKAGE_LIBDEFLATE is not set +# BR2_PACKAGE_LIBMSPACK is not set + +# +# libsquish needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBZIP is not set +# BR2_PACKAGE_LZ4 is not set +# BR2_PACKAGE_LZO is not set +# BR2_PACKAGE_MINIZIP is not set +# BR2_PACKAGE_MINIZIP_ZLIB is not set + +# +# snappy needs a toolchain w/ C++ +# +# BR2_PACKAGE_SZIP is not set +# BR2_PACKAGE_ZCHUNK is not set +BR2_PACKAGE_ZLIB_NG_ARCH_SUPPORTS=y +# BR2_PACKAGE_ZLIB is not set +BR2_PACKAGE_PROVIDES_HOST_ZLIB="host-libzlib" +# BR2_PACKAGE_ZZIPLIB is not set + +# +# Crypto +# +# BR2_PACKAGE_BEARSSL is not set +# BR2_PACKAGE_BEECRYPT is not set +BR2_PACKAGE_BOTAN_ARCH_SUPPORTS=y + +# +# botan needs a toolchain w/ C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_CA_CERTIFICATES is not set +# BR2_PACKAGE_CRYPTODEV_LINUX is not set + +# +# cryptopp needs a toolchain w/ C++, dynamic library, wchar +# +# BR2_PACKAGE_GCR is not set +# BR2_PACKAGE_GNUTLS is not set +# BR2_PACKAGE_LIBARGON2 is not set +# BR2_PACKAGE_LIBASSUAN is not set +# BR2_PACKAGE_LIBB2 is not set +# BR2_PACKAGE_LIBGCRYPT is not set +BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBGPG_ERROR is not set +BR2_PACKAGE_LIBGPG_ERROR_SYSCFG="riscv64-unknown-linux-gnu" +# BR2_PACKAGE_LIBGPGME is not set +# BR2_PACKAGE_LIBKCAPI is not set +# BR2_PACKAGE_LIBKSBA is not set +# BR2_PACKAGE_LIBMD is not set +# BR2_PACKAGE_LIBMHASH is not set +# BR2_PACKAGE_LIBNSS is not set + +# +# libolm needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_LIBP11 is not set +# BR2_PACKAGE_LIBSCRYPT is not set +# BR2_PACKAGE_LIBSECRET is not set +# BR2_PACKAGE_LIBSHA1 is not set +# BR2_PACKAGE_LIBSODIUM is not set +# BR2_PACKAGE_LIBSSH is not set +# BR2_PACKAGE_LIBSSH2 is not set +# BR2_PACKAGE_LIBTOMCRYPT is not set +# BR2_PACKAGE_LIBUECC is not set +# BR2_PACKAGE_LIBXCRYPT is not set +# BR2_PACKAGE_MBEDTLS is not set +# BR2_PACKAGE_NETTLE is not set +# BR2_PACKAGE_OPENSSL is not set +BR2_PACKAGE_PROVIDES_HOST_OPENSSL="host-libopenssl" +# BR2_PACKAGE_PKCS11_HELPER is not set +# BR2_PACKAGE_RHASH is not set +# BR2_PACKAGE_TINYDTLS is not set +# BR2_PACKAGE_TPM2_PKCS11 is not set +# BR2_PACKAGE_TPM2_TSS is not set +# BR2_PACKAGE_TROUSERS is not set +# BR2_PACKAGE_USTREAM_SSL is not set +BR2_PACKAGE_WOLFSSL_ASM_SUPPORTS=y +# BR2_PACKAGE_WOLFSSL is not set +# BR2_PACKAGE_WOLFTPM is not set + +# +# Database +# +# BR2_PACKAGE_BERKELEYDB is not set +# BR2_PACKAGE_GDBM is not set +# BR2_PACKAGE_HIREDIS is not set + +# +# kompexsqlite needs a toolchain w/ C++, wchar, threads, dynamic library +# + +# +# leveldb needs a toolchain w/ C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_LIBDBI is not set +# BR2_PACKAGE_LIBDBI_DRIVERS is not set +# BR2_PACKAGE_LIBGIT2 is not set +# BR2_PACKAGE_LIBMDBX is not set + +# +# libodb needs a toolchain w/ C++, threads +# + +# +# mysql needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_POSTGRESQL is not set +# BR2_PACKAGE_REDIS is not set + +# +# redis-plus-plus needs a toolchain w/ C++ +# +# BR2_PACKAGE_SQLCIPHER is not set +# BR2_PACKAGE_SQLITE is not set +# BR2_PACKAGE_UNIXODBC is not set + +# +# Filesystem +# +# BR2_PACKAGE_GAMIN is not set +# BR2_PACKAGE_LIBCONFIG is not set +# BR2_PACKAGE_LIBCONFUSE is not set +# BR2_PACKAGE_LIBFUSE is not set +# BR2_PACKAGE_LIBFUSE3 is not set +# BR2_PACKAGE_LIBLOCKFILE is not set +# BR2_PACKAGE_LIBNFS is not set +# BR2_PACKAGE_LIBSYSFS is not set +# BR2_PACKAGE_LOCKDEV is not set + +# +# physfs needs a toolchain w/ C++, threads +# + +# +# Graphics +# + +# +# assimp needs a toolchain w/ C++, wchar, gcc >= 7 +# +# BR2_PACKAGE_AT_SPI2_CORE is not set + +# +# atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# atkmm (2.28.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# bullet needs a toolchain w/ C++, dynamic library, threads, wchar +# +# BR2_PACKAGE_CAIRO is not set + +# +# cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# cairomm (1.14.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# chipmunk needs an OpenGL backend +# + +# +# exempi needs a toolchain w/ C++, dynamic library, threads, wchar +# + +# +# exiv2 needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library, threads +# +# BR2_PACKAGE_FONTCONFIG is not set +# BR2_PACKAGE_FREETYPE is not set +# BR2_PACKAGE_GD is not set +# BR2_PACKAGE_GDK_PIXBUF is not set +# BR2_PACKAGE_GIFLIB is not set + +# +# granite needs libgtk3 and a toolchain w/ wchar, threads, gcc >= 4.9 +# + +# +# graphite2 needs a toolchain w/ C++ +# + +# +# gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# harfbuzz needs a toolchain w/ C++, gcc >= 4.9 +# +# BR2_PACKAGE_IJS is not set +# BR2_PACKAGE_IMLIB2 is not set + +# +# intel-gmmlib needs a toolchain w/ dynamic library, C++, threads +# + +# +# irrlicht needs a toolchain w/ C++ +# +# BR2_PACKAGE_JASPER is not set +# BR2_PACKAGE_JBIG2DEC is not set +# BR2_PACKAGE_JPEG is not set + +# +# kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 4.11, wchar +# +# BR2_PACKAGE_LCMS2 is not set + +# +# lensfun needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_LEPTONICA is not set +# BR2_PACKAGE_LIBART is not set + +# +# libdecor needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# +# BR2_PACKAGE_LIBDMTX is not set +# BR2_PACKAGE_LIBDRM is not set + +# +# libepoxy needs an OpenGL and/or OpenGL EGL backend +# +# BR2_PACKAGE_LIBEXIF is not set + +# +# libfm needs X.org and a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# +# BR2_PACKAGE_LIBFM_EXTRA is not set + +# +# libfreeglut depends on X.org and needs an OpenGL backend +# + +# +# libfreeimage needs a toolchain w/ C++, dynamic library, wchar +# + +# +# libgeotiff needs a toolchain w/ C++, gcc >= 4.7, threads, wchar +# + +# +# libglew depends on X.org and needs an OpenGL backend +# + +# +# libglfw depends on X.org or Wayland and an OpenGL or GLES backend +# + +# +# libglu needs an OpenGL backend +# +# BR2_PACKAGE_LIBGTA is not set + +# +# libgtk3 needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# + +# +# libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend +# + +# +# libjxl needs a toolchain with C++, threads, gcc >= 7, dynamic library +# +# BR2_PACKAGE_LIBMEDIAART is not set +# BR2_PACKAGE_LIBMNG is not set +# BR2_PACKAGE_LIBPNG is not set +# BR2_PACKAGE_LIBQRENCODE is not set + +# +# libraw needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBSVG is not set +# BR2_PACKAGE_LIBSVG_CAIRO is not set +# BR2_PACKAGE_LIBSVGTINY is not set +# BR2_PACKAGE_LIBVA is not set + +# +# libvips needs a toolchain w/ wchar, threads, C++ +# + +# +# libwpe needs a toolchain w/ C++, dynamic library and an OpenEGL-capable backend +# +# BR2_PACKAGE_MENU_CACHE is not set +BR2_PACKAGE_ONEVPL_ARCH_SUPPORTS=y + +# +# onevpl needs a toolchain w/ dynamic library, gcc >= 7, C++, threads +# + +# +# onevpl-intel-gpu needs a toolchain w/ dynamic library, gcc >= 7, C++, NPTL +# + +# +# opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library +# + +# +# opencv4 needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 4.8 +# +# BR2_PACKAGE_OPENJPEG is not set + +# +# pango needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 +# + +# +# pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# pangomm (2.46.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# +# BR2_PACKAGE_PIXMAN is not set + +# +# poppler needs a toolchain w/ wchar, C++, threads, dynamic library, gcc >= 7 +# +# BR2_PACKAGE_STB is not set +# BR2_PACKAGE_TIFF is not set +# BR2_PACKAGE_WAYLAND is not set +BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS=y + +# +# webkitgtk needs libgtk3 and a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 9, host gcc >= 4.9 +# +# BR2_PACKAGE_WEBP is not set + +# +# wlroots needs udev, EGL w/ Wayland backend and OpenGL ES support +# + +# +# woff2 needs a toolchain w/ C++ +# + +# +# wpebackend-fdo needs a toolchain w/ C++, wchar, threads, dynamic library and an OpenEGL-capable Wayland backend +# +BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS=y + +# +# wpewebkit needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 9, host gcc >= 4.9 +# + +# +# wpewebkit needs an OpenGL ES w/ EGL-capable Wayland backend +# + +# +# zbar needs a toolchain w/ threads, C++ and headers >= 3.0 +# + +# +# zxing-cpp needs a toolchain w/ C++, wchar, dynamic library +# + +# +# Hardware handling +# +# BR2_PACKAGE_ACSCCID is not set +# BR2_PACKAGE_C_PERIPHERY is not set +# BR2_PACKAGE_CCID is not set +# BR2_PACKAGE_DTC is not set +# BR2_PACKAGE_HACKRF is not set + +# +# hidapi needs udev /dev management and a toolchain w/ NPTL, threads, gcc >= 4.9 +# +# BR2_PACKAGE_JITTERENTROPY_LIBRARY is not set + +# +# lcdapi needs a toolchain w/ C++, threads +# + +# +# let-me-create needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBAIO is not set + +# +# libatasmart requires udev to be enabled +# + +# +# libblockdev needs udev /dev management and a toolchain w/ wchar, threads, dynamic library, locale +# + +# +# libcec needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.7 +# +# BR2_PACKAGE_LIBDISPLAY_INFO is not set +# BR2_PACKAGE_LIBFREEFARE is not set +# BR2_PACKAGE_LIBFTDI is not set +# BR2_PACKAGE_LIBFTDI1 is not set +# BR2_PACKAGE_LIBGPHOTO2 is not set +# BR2_PACKAGE_LIBGPIOD is not set + +# +# libgudev needs udev /dev handling and a toolchain w/ wchar, threads +# +# BR2_PACKAGE_LIBHID is not set +# BR2_PACKAGE_LIBIIO is not set + +# +# libinput needs udev /dev management +# +# BR2_PACKAGE_LIBIQRF is not set +# BR2_PACKAGE_LIBLLCP is not set +# BR2_PACKAGE_LIBMBIM is not set +# BR2_PACKAGE_LIBNFC is not set +# BR2_PACKAGE_LIBNVME is not set +# BR2_PACKAGE_LIBPCIACCESS is not set +# BR2_PACKAGE_LIBPHIDGET is not set +# BR2_PACKAGE_LIBPRI is not set +# BR2_PACKAGE_LIBQMI is not set +# BR2_PACKAGE_LIBQRTR_GLIB is not set +# BR2_PACKAGE_LIBRAW1394 is not set +# BR2_PACKAGE_LIBRTLSDR is not set + +# +# libserial needs a toolchain w/ C++, gcc >= 5, threads, wchar +# +# BR2_PACKAGE_LIBSERIALPORT is not set +# BR2_PACKAGE_LIBSIGROK is not set +# BR2_PACKAGE_LIBSIGROKDECODE is not set +# BR2_PACKAGE_LIBSOC is not set +# BR2_PACKAGE_LIBSS7 is not set +# BR2_PACKAGE_LIBUSB is not set +# BR2_PACKAGE_LIBUSBGX is not set + +# +# libv4l needs a toolchain w/ threads, C++ and headers >= 3.0 +# +# BR2_PACKAGE_LIBXKBCOMMON is not set +# BR2_PACKAGE_MTDEV is not set +# BR2_PACKAGE_NEARDAL is not set +# BR2_PACKAGE_OPENSC is not set +# BR2_PACKAGE_OWFS is not set +# BR2_PACKAGE_PCSC_LITE is not set +# BR2_PACKAGE_TSLIB is not set + +# +# uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 5 +# + +# +# urg needs a toolchain w/ C++ +# + +# +# Javascript +# +# BR2_PACKAGE_ANGULARJS is not set +# BR2_PACKAGE_BOOTSTRAP is not set +# BR2_PACKAGE_CHARTJS is not set +# BR2_PACKAGE_DATATABLES is not set +# BR2_PACKAGE_DUKTAPE is not set +# BR2_PACKAGE_EXPLORERCANVAS is not set +# BR2_PACKAGE_FLOT is not set +# BR2_PACKAGE_FORGE is not set +# BR2_PACKAGE_JQUERY is not set +# BR2_PACKAGE_JSMIN is not set +# BR2_PACKAGE_JSON_JAVASCRIPT is not set +# BR2_PACKAGE_JSZIP is not set +# BR2_PACKAGE_OPENLAYERS is not set +# BR2_PACKAGE_POPPERJS is not set +# BR2_PACKAGE_VIS_NETWORK is not set +# BR2_PACKAGE_VUEJS is not set + +# +# JSON/XML +# + +# +# benejson needs a toolchain w/ C++ +# +# BR2_PACKAGE_CJSON is not set +# BR2_PACKAGE_EXPAT is not set +# BR2_PACKAGE_JANSSON is not set +# BR2_PACKAGE_JOSE is not set +# BR2_PACKAGE_JSMN is not set +# BR2_PACKAGE_JSON_C is not set + +# +# json-for-modern-cpp needs a toolchain w/ C++, gcc >= 4.9 +# +# BR2_PACKAGE_JSON_GLIB is not set + +# +# jsoncpp needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBBSON is not set +# BR2_PACKAGE_LIBFASTJSON is not set + +# +# libjson needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBROXML is not set +# BR2_PACKAGE_LIBUCL is not set +# BR2_PACKAGE_LIBXML2 is not set + +# +# libxml++ needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# +# BR2_PACKAGE_LIBXMLRPC is not set +# BR2_PACKAGE_LIBXSLT is not set +# BR2_PACKAGE_LIBYAML is not set +# BR2_PACKAGE_MXML is not set + +# +# pugixml needs a toolchain w/ C++ +# + +# +# rapidjson needs a toolchain w/ C++ +# +# BR2_PACKAGE_RAPIDXML is not set +# BR2_PACKAGE_RAPTOR is not set +# BR2_PACKAGE_SERD is not set +# BR2_PACKAGE_SORD is not set + +# +# tinyxml needs a toolchain w/ C++ +# + +# +# tinyxml2 needs a toolchain w/ C++ +# + +# +# valijson needs a toolchain w/ C++ +# + +# +# xerces-c++ needs a toolchain w/ C++, dynamic library, wchar +# + +# +# xml-security-c needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 4.7 +# +# BR2_PACKAGE_YAJL is not set + +# +# yaml-cpp needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# Logging +# + +# +# glog needs a toolchain w/ C++ +# + +# +# hawktracer needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_LIBLOG4C_LOCALTIME is not set +# BR2_PACKAGE_LIBLOGGING is not set + +# +# log4cplus needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 +# + +# +# log4cpp needs a toolchain w/ C++, threads +# + +# +# log4cxx needs a toolchain w/ C++, threads, dynamic library +# + +# +# log4qt needs qt5 +# + +# +# opentracing-cpp needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# + +# +# spdlog needs a toolchain w/ C++, threads, wchar +# + +# +# ulog needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_ZLOG is not set + +# +# Multimedia +# + +# +# bento4 support needs a toolchain with C++ +# +# BR2_PACKAGE_BITSTREAM is not set +# BR2_PACKAGE_DAV1D is not set + +# +# kvazaar needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBAACS is not set + +# +# libass needs a toolchain w/ C++, gcc >= 4.9 +# +# BR2_PACKAGE_LIBBDPLUS is not set +# BR2_PACKAGE_LIBBLURAY is not set +BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS=y + +# +# libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 +# + +# +# libcamera-apps needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 +# + +# +# libde265 needs a toolchain w/ threads, C++ +# +# BR2_PACKAGE_LIBDVBCSA is not set +# BR2_PACKAGE_LIBDVBPSI is not set + +# +# libdvbsi++ needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_LIBDVDCSS is not set +# BR2_PACKAGE_LIBDVDNAV is not set +# BR2_PACKAGE_LIBDVDREAD is not set + +# +# libebml needs a toolchain w/ C++, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_LIBHDHOMERUN is not set + +# +# libheif needs a toolchain w/ C++, gcc >= 4.8 +# + +# +# libmatroska needs a toolchain w/ C++, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_LIBMMS is not set +# BR2_PACKAGE_LIBMPEG2 is not set +# BR2_PACKAGE_LIBOGG is not set +# BR2_PACKAGE_LIBOPENAPTX is not set +# BR2_PACKAGE_LIBOPUSENC is not set +# BR2_PACKAGE_LIBTHEORA is not set +# BR2_PACKAGE_LIBUDFREAD is not set +# BR2_PACKAGE_LIBVPX is not set + +# +# libyuv needs a toolchain w/ C++, dynamic library +# + +# +# live555 needs a toolchain w/ C++ +# + +# +# mediastreamer needs a toolchain w/ threads, C++, dynamic library, gcc >= 5 +# +# BR2_PACKAGE_X264 is not set + +# +# x265 needs a toolchain w/ C++, threads, dynamic library +# + +# +# Networking +# + +# +# agent++ needs a toolchain w/ threads, C++, dynamic library +# + +# +# azmq needs a toolchain w/ C++11, wchar and threads +# + +# +# azure-iot-sdk-c needs a toolchain w/ C++, NPTL and wchar +# +# BR2_PACKAGE_BATMAN_ADV is not set + +# +# belle-sip needs a toolchain w/ threads, C++, dynamic library, wchar +# +# BR2_PACKAGE_C_ARES is not set +# BR2_PACKAGE_CGIC is not set +# BR2_PACKAGE_CNI_PLUGINS is not set + +# +# cppzmq needs a toolchain w/ C++, threads +# + +# +# curlpp needs a toolchain w/ C++, dynamic library +# + +# +# czmq needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_DAQ is not set +# BR2_PACKAGE_DAQ3 is not set +# BR2_PACKAGE_DAVICI is not set +# BR2_PACKAGE_DHT is not set +# BR2_PACKAGE_ENET is not set + +# +# filemq needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_FLICKCURL is not set +# BR2_PACKAGE_FREERADIUS_CLIENT is not set +# BR2_PACKAGE_GENSIO is not set +# BR2_PACKAGE_GEOIP is not set +# BR2_PACKAGE_GLIB_NETWORKING is not set + +# +# grpc needs a toolchain w/ C++, threads, dynamic library, gcc >= 5 +# +# BR2_PACKAGE_GSSDP is not set +# BR2_PACKAGE_GUPNP is not set +# BR2_PACKAGE_GUPNP_AV is not set +# BR2_PACKAGE_GUPNP_DLNA is not set + +# +# ibrcommon needs a toolchain w/ C++, threads +# + +# +# ibrdtn needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBCGI is not set + +# +# libcgicc needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBCOAP is not set + +# +# libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale +# +# BR2_PACKAGE_LIBCURL is not set +# BR2_PACKAGE_LIBDNET is not set +# BR2_PACKAGE_LIBEXOSIP2 is not set +# BR2_PACKAGE_LIBEST is not set +# BR2_PACKAGE_LIBFCGI is not set +# BR2_PACKAGE_LIBGSASL is not set +# BR2_PACKAGE_LIBHTP is not set +# BR2_PACKAGE_LIBHTTPPARSER is not set + +# +# libhttpserver needs a toolchain w/ C++, threads, gcc >= 5 +# +# BR2_PACKAGE_LIBIDN is not set +# BR2_PACKAGE_LIBIDN2 is not set +# BR2_PACKAGE_LIBISCSI is not set +# BR2_PACKAGE_LIBKRB5 is not set +# BR2_PACKAGE_LIBLDNS is not set +# BR2_PACKAGE_LIBMAXMINDDB is not set +# BR2_PACKAGE_LIBMBUS is not set + +# +# libmemcached needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBMICROHTTPD is not set +# BR2_PACKAGE_LIBMINIUPNPC is not set +# BR2_PACKAGE_LIBMNL is not set +# BR2_PACKAGE_LIBMODBUS is not set + +# +# libmodsecurity needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_LIBNATPMP is not set +# BR2_PACKAGE_LIBNDP is not set +# BR2_PACKAGE_LIBNET is not set +# BR2_PACKAGE_LIBNETCONF2 is not set +# BR2_PACKAGE_LIBNETFILTER_ACCT is not set +# BR2_PACKAGE_LIBNETFILTER_CONNTRACK is not set +# BR2_PACKAGE_LIBNETFILTER_CTHELPER is not set +# BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT is not set +# BR2_PACKAGE_LIBNETFILTER_LOG is not set +# BR2_PACKAGE_LIBNETFILTER_QUEUE is not set +# BR2_PACKAGE_LIBNFNETLINK is not set +# BR2_PACKAGE_LIBNFTNL is not set +# BR2_PACKAGE_LIBNICE is not set +# BR2_PACKAGE_LIBNIDS is not set +# BR2_PACKAGE_LIBNL is not set + +# +# libnpupnp needs a toolchain w/ C++, threads, gcc >= 4.9 +# +# BR2_PACKAGE_LIBOAUTH is not set +# BR2_PACKAGE_LIBOPING is not set +# BR2_PACKAGE_LIBOSIP2 is not set +# BR2_PACKAGE_LIBPAGEKITE is not set +# BR2_PACKAGE_LIBPCAP is not set + +# +# libpjsip needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBPSL is not set +# BR2_PACKAGE_LIBRELP is not set +# BR2_PACKAGE_LIBRSYNC is not set +# BR2_PACKAGE_LIBSHAIRPLAY is not set +# BR2_PACKAGE_LIBSHOUT is not set +# BR2_PACKAGE_LIBSOCKETCAN is not set +# BR2_PACKAGE_LIBSOUP is not set +# BR2_PACKAGE_LIBSOUP3 is not set +# BR2_PACKAGE_LIBSRTP is not set +# BR2_PACKAGE_LIBSTROPHE is not set +# BR2_PACKAGE_LIBTEAM is not set +# BR2_PACKAGE_LIBTELNET is not set +# BR2_PACKAGE_LIBTIRPC is not set + +# +# libtorrent needs a toolchain w/ C++, threads +# + +# +# libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_LIBUEV is not set +# BR2_PACKAGE_LIBUHTTPD is not set +# BR2_PACKAGE_LIBUPNP is not set + +# +# libupnpp needs a toolchain w/ C++, threads, gcc >= 4.9 +# +# BR2_PACKAGE_LIBURIPARSER is not set + +# +# libutp support needs a toolchain with C++ +# +# BR2_PACKAGE_LIBUWSC is not set +# BR2_PACKAGE_LIBVNCSERVER is not set +# BR2_PACKAGE_LIBWEBSOCK is not set +# BR2_PACKAGE_LIBWEBSOCKETS is not set +# BR2_PACKAGE_LIBYANG is not set +# BR2_PACKAGE_LKSCTP_TOOLS is not set +# BR2_PACKAGE_MBUFFER is not set +# BR2_PACKAGE_MDNSD is not set +# BR2_PACKAGE_MONGOOSE is not set +# BR2_PACKAGE_NANOMSG is not set +# BR2_PACKAGE_NEON is not set + +# +# netopeer2 needs a toolchain w/ gcc >= 4.8, C++, threads, dynamic library +# +# BR2_PACKAGE_NGHTTP2 is not set + +# +# norm needs a toolchain w/ C++, threads, dynamic library +# +# BR2_PACKAGE_NSS_MYHOSTNAME is not set +# BR2_PACKAGE_NSS_PAM_LDAPD is not set + +# +# omniORB needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_OPEN_ISNS is not set +# BR2_PACKAGE_OPEN62541 is not set +# BR2_PACKAGE_OPENLDAP is not set + +# +# openmpi needs a toolchain w/ dynamic library, NPTL, wchar, C++ +# +# BR2_PACKAGE_OPENPGM is not set + +# +# openzwave needs a toolchain w/ C++, dynamic library, NPTL, wchar +# + +# +# ortp needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_PAHO_MQTT_C is not set + +# +# paho-mqtt-cpp needs a toolchain w/ threads, C++ +# + +# +# pistache needs a toolchain w/ C++, gcc >= 7, threads, wchar, not binutils bug 27597 +# +# BR2_PACKAGE_QDECODER is not set + +# +# qpid-proton needs a toolchain w/ C++, dynamic library, threads +# +# BR2_PACKAGE_RABBITMQ_C is not set + +# +# resiprocate needs a toolchain w/ C++, threads, wchar +# + +# +# restclient-cpp needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_RTMPDUMP is not set +# BR2_PACKAGE_SIPROXD is not set +# BR2_PACKAGE_SLIRP is not set +# BR2_PACKAGE_SLIRP4NETNS is not set + +# +# snmp++ needs a toolchain w/ threads, C++, dynamic library +# +# BR2_PACKAGE_SOFIA_SIP is not set +# BR2_PACKAGE_SSCEP is not set + +# +# sysrepo needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 4.8 +# + +# +# thrift needs a toolchain w/ C++, wchar, threads +# +# BR2_PACKAGE_USBREDIR is not set + +# +# wampcc needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 4.9 +# + +# +# websocketpp needs a toolchain w/ C++ and gcc >= 4.8 +# + +# +# zeromq needs a toolchain w/ C++, threads +# + +# +# zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7 +# + +# +# zyre needs a toolchain w/ C++, threads +# + +# +# Other +# + +# +# ACE needs a glibc toolchain, dynamic library, C++, gcc >= 4.8 +# +# BR2_PACKAGE_APR is not set +# BR2_PACKAGE_APR_UTIL is not set + +# +# armadillo needs a toolchain w/ C++ +# + +# +# atf needs a toolchain w/ C++ +# +# BR2_PACKAGE_AVRO_C is not set + +# +# bctoolbox needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_BDWGC is not set + +# +# belr needs a toolchain w/ threads, C++ +# + +# +# boost needs a toolchain w/ C++, threads, wchar +# + +# +# c-capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735 +# + +# +# capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735 +# + +# +# catch2 needs a toolchain w/ C++, wchar, threads, gcc >= 5 +# + +# +# cctz needs a toolchain w/ C++, threads, gcc >= 4.8 +# + +# +# cereal needs a toolchain w/ C++, gcc >= 4.7, threads, wchar +# + +# +# clang needs a toolchain w/ wchar, threads, C++, gcc >= 7, dynamic library, host gcc >= 7 +# +# BR2_PACKAGE_CMOCKA is not set + +# +# cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library +# +# BR2_PACKAGE_CRACKLIB is not set + +# +# dawgdic needs a toolchain w/ C++, gcc >= 4.6 +# +# BR2_PACKAGE_DING_LIBS is not set +# BR2_PACKAGE_DOTCONF is not set + +# +# double-conversion needs a toolchain w/ C++ +# + +# +# eigen needs a toolchain w/ C++ +# +# BR2_PACKAGE_ELFUTILS is not set +# BR2_PACKAGE_ELL is not set +# BR2_PACKAGE_FFTW is not set + +# +# flann needs a toolchain w/ C++, dynamic library, gcc >= 4.7 +# + +# +# flatbuffers needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_FLATCC is not set +# BR2_PACKAGE_FXDIV is not set +# BR2_PACKAGE_GCONF is not set + +# +# gdal needs a toolchain w/ C++, dynamic library, gcc >= 4.7, not binutils bug 27597, threads, wchar +# + +# +# gflags needs a toolchain w/ C++ +# + +# +# gli needs a toolchain w/ C++ +# + +# +# glibmm needs a toolchain w/ C++, wchar, threads, gcc >= 7 +# + +# +# glibmm (2.66.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 +# + +# +# glm needs a toolchain w/ C++ +# +# BR2_PACKAGE_GMP is not set +BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS=y + +# +# gobject-introspection needs python3 +# +# BR2_PACKAGE_GSL is not set + +# +# gtest needs a toolchain w/ C++, wchar, threads, gcc >= 5 +# +# BR2_PACKAGE_GUMBO_PARSER is not set + +# +# highway needs a toolchain w/ C++, gcc >= 7 +# +BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS=y +# BR2_PACKAGE_JEMALLOC is not set +BR2_PACKAGE_LAPACK_ARCH_SUPPORTS=y + +# +# lapack/blas needs a toolchain w/ fortran +# +BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS=y + +# +# libabseil-cpp needs a toolchain w/ gcc >= 4.9, C++, threads, dynamic library +# +# BR2_PACKAGE_LIBARGTABLE2 is not set +BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBATOMIC_OPS is not set +# BR2_PACKAGE_LIBAVL is not set +# BR2_PACKAGE_LIBB64 is not set +# BR2_PACKAGE_LIBBACKTRACE is not set +BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBBSD is not set +# BR2_PACKAGE_LIBBYTESIZE is not set +# BR2_PACKAGE_LIBCAP is not set +# BR2_PACKAGE_LIBCAP_NG is not set + +# +# libcgroup needs a toolchain w/ C++ +# +# BR2_PACKAGE_LIBCLC is not set +# BR2_PACKAGE_LIBCORRECT is not set + +# +# libcrossguid needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBCSV is not set +# BR2_PACKAGE_LIBDAEMON is not set +# BR2_PACKAGE_LIBDILL is not set +# BR2_PACKAGE_LIBEE is not set +# BR2_PACKAGE_LIBEV is not set +# BR2_PACKAGE_LIBEVDEV is not set +# BR2_PACKAGE_LIBEVENT is not set + +# +# libexecinfo needs a musl or uclibc toolchain w/ dynamic library +# +# BR2_PACKAGE_LIBFFI is not set + +# +# libfutils needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBGEE is not set + +# +# libgeos needs a toolchain w/ C++, wchar, threads not binutils bug 27597 +# +# BR2_PACKAGE_LIBGLIB2 is not set +# BR2_PACKAGE_LIBGLOB is not set + +# +# libical needs a toolchain w/ C++, dynamic library, wchar +# +# BR2_PACKAGE_LIBITE is not set + +# +# libks needs a toolchain w/ C++, NPTL, dynamic library +# + +# +# liblinear needs a toolchain w/ C++ +# + +# +# libloki needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBNPTH is not set +BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT=y +# BR2_PACKAGE_LIBNSPR is not set + +# +# libosmium needs a toolchain w/ C++, wchar, threads, gcc >= 4.7 +# + +# +# libpeas needs python3 +# +# BR2_PACKAGE_LIBPFM4 is not set + +# +# libplist needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_LIBPTHREAD_STUBS is not set +# BR2_PACKAGE_LIBPTHSEM is not set +# BR2_PACKAGE_LIBPWQUALITY is not set +# BR2_PACKAGE_LIBQB is not set +BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBSECCOMP is not set + +# +# libshdata needs a toolchain w/ C++, threads +# + +# +# libsigc++ needs a toolchain w/ C++, gcc >= 7 +# + +# +# libsigc++ (2.x.x) needs a toolchain w/ C++, gcc >= 4.9 +# +BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS=y +# BR2_PACKAGE_LIBSIGSEGV is not set +# BR2_PACKAGE_LIBSOLV is not set + +# +# libspatialindex needs a toolchain w/ C++, gcc >= 4.7 +# +# BR2_PACKAGE_LIBTALLOC is not set +# BR2_PACKAGE_LIBTASN1 is not set +# BR2_PACKAGE_LIBTOMMATH is not set +# BR2_PACKAGE_LIBTPL is not set +# BR2_PACKAGE_LIBUBOX is not set +# BR2_PACKAGE_LIBUCI is not set +BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS=y + +# +# liburcu needs a toolchain w/ threads, C++ +# +# BR2_PACKAGE_LIBURING is not set +# BR2_PACKAGE_LIBUV is not set +# BR2_PACKAGE_LIGHTNING is not set +# BR2_PACKAGE_LINUX_PAM is not set +# BR2_PACKAGE_LIQUID_DSP is not set +BR2_PACKAGE_LLVM_ARCH_SUPPORTS=y +BR2_PACKAGE_LLVM_TARGET_ARCH="riscv64" + +# +# llvm needs a toolchain w/ wchar, threads, C++, gcc >= 7, dynamic library, host gcc >= 7 +# + +# +# lttng-libust needs a toolchain w/ dynamic library, wchar, threads, C++ +# +# BR2_PACKAGE_MATIO is not set +# BR2_PACKAGE_MPC is not set +# BR2_PACKAGE_MPDECIMAL is not set +# BR2_PACKAGE_MPFR is not set +# BR2_PACKAGE_MPIR is not set + +# +# msgpack needs a toolchain w/ C++ +# +# BR2_PACKAGE_NEON_2_SSE is not set +BR2_PACKAGE_OPENBLAS_DEFAULT_TARGET="RISCV64_GENERIC" +BR2_PACKAGE_OPENBLAS_ARCH_SUPPORTS=y +# BR2_PACKAGE_OPENBLAS is not set +# BR2_PACKAGE_ORC is not set +# BR2_PACKAGE_P11_KIT is not set +BR2_PACKAGE_POCO_ARCH_SUPPORTS=y + +# +# poco needs a toolchain w/ wchar, NPTL, C++, dynamic library, gcc >= 5 w/ C++14 +# +BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS=y +BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y + +# +# protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# + +# +# protobuf-c needs a toolchain w/ C++, threads +# + +# +# protozero needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# qhull needs a toolchain w/ C++, gcc >= 4.4 +# +# BR2_PACKAGE_QLIBC is not set +# BR2_PACKAGE_REPROC is not set + +# +# riemann-c-client needs a toolchain w/ C++, threads +# + +# +# shapelib needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_SKALIBS is not set +# BR2_PACKAGE_SPHINXBASE is not set + +# +# tbb needs a glibc or musl toolchain w/ dynamic library, threads, C++ +# +# BR2_PACKAGE_TINYCBOR is not set + +# +# tl-expected needs a toolchain w/ C++, gcc >= 4.8 +# + +# +# uvw needs a toolchain w/ NPTL, dynamic library, C++, gcc >= 7 +# + +# +# volk needs a toolchain w/ C++, NPTL, wchar, dynamic library +# + +# +# xapian needs a toolchain w/ C++ +# + +# +# Security +# +# BR2_PACKAGE_LIBAPPARMOR is not set +# BR2_PACKAGE_LIBSELINUX is not set +# BR2_PACKAGE_LIBSEPOL is not set +# BR2_PACKAGE_SAFECLIB is not set + +# +# softhsm2 needs a toolchain w/ C++, threads, gcc >= 4.8 and dynamic library support +# + +# +# Text and terminal handling +# +# BR2_PACKAGE_AUGEAS is not set + +# +# cli11 needs a toolchain w/ C++, gcc >= 4.8 +# + +# +# docopt-cpp needs a toolchain w/ C++, gcc >= 4.7 +# + +# +# enchant needs a toolchain w/ C++, threads, wchar +# + +# +# fmt needs a toolchain w/ C++, wchar +# +# BR2_PACKAGE_FSTRCMP is not set + +# +# icu needs a toolchain w/ C++, wchar, threads, gcc >= 4.9, host gcc >= 4.9 +# +# BR2_PACKAGE_INIH is not set +# BR2_PACKAGE_LIBCLI is not set +# BR2_PACKAGE_LIBEDIT is not set +# BR2_PACKAGE_LIBENCA is not set +# BR2_PACKAGE_LIBESTR is not set +# BR2_PACKAGE_LIBFRIBIDI is not set +# BR2_PACKAGE_LIBUNIBREAK is not set +# BR2_PACKAGE_LIBUNISTRING is not set +# BR2_PACKAGE_LINENOISE is not set +# BR2_PACKAGE_NCURSES is not set +# BR2_PACKAGE_NEWT is not set +# BR2_PACKAGE_ONIGURUMA is not set +# BR2_PACKAGE_PCRE is not set +# BR2_PACKAGE_PCRE2 is not set +# BR2_PACKAGE_POPT is not set + +# +# re2 needs a toolchain w/ C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_READLINE is not set +# BR2_PACKAGE_SLANG is not set + +# +# tclap needs a toolchain w/ C++ +# + +# +# termcolor needs a toolchain w/ C++, gcc >= 4.8 +# +# BR2_PACKAGE_UTF8PROC is not set + +# +# Mail +# +# BR2_PACKAGE_DOVECOT is not set +# BR2_PACKAGE_EXIM is not set +# BR2_PACKAGE_FETCHMAIL is not set +# BR2_PACKAGE_HEIRLOOM_MAILX is not set +# BR2_PACKAGE_LIBESMTP is not set +# BR2_PACKAGE_MSMTP is not set +# BR2_PACKAGE_MUTT is not set + +# +# Miscellaneous +# +# BR2_PACKAGE_AESPIPE is not set +# BR2_PACKAGE_BC is not set +BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS=y + +# +# bitcoin needs a toolchain w/ C++, threads, wchar +# +# BR2_PACKAGE_COLLECTD is not set +# BR2_PACKAGE_COLLECTL is not set + +# +# domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 6, NPTL, wchar, dynamic library +# +# BR2_PACKAGE_EMPTY is not set +# BR2_PACKAGE_FFT_EVAL is not set +# BR2_PACKAGE_GITLAB_RUNNER is not set + +# +# gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 8 +# +# BR2_PACKAGE_GOOGLEFONTDIRECTORY is not set + +# +# gqrx needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 +# + +# +# gqrx needs qt5 +# +# BR2_PACKAGE_GSETTINGS_DESKTOP_SCHEMAS is not set +# BR2_PACKAGE_HAVEGED is not set +# BR2_PACKAGE_LINUX_SYSCALL_SUPPORT is not set +# BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO is not set +# BR2_PACKAGE_NETDATA is not set + +# +# proj needs a toolchain w/ C++, gcc >= 4.7, threads, wchar +# +BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET=y +# BR2_PACKAGE_QEMU is not set + +# +# qpdf needs a toolchain w/ C++, gcc >= 5 +# +# BR2_PACKAGE_RTL_433 is not set +# BR2_PACKAGE_SHARED_MIME_INFO is not set + +# +# sunwait needs a toolchain w/ C++ +# + +# +# taskd needs a toolchain w/ C++, wchar, dynamic library +# +# BR2_PACKAGE_XUTIL_UTIL_MACROS is not set +BR2_PACKAGE_Z3_ARCH_SUPPORTS=y + +# +# Networking applications +# + +# +# aircrack-ng needs a toolchain w/ dynamic library, threads, C++ +# +# BR2_PACKAGE_ALFRED is not set +# BR2_PACKAGE_AOETOOLS is not set +# BR2_PACKAGE_APACHE is not set +# BR2_PACKAGE_ARGUS is not set +# BR2_PACKAGE_ARP_SCAN is not set +# BR2_PACKAGE_ARPTABLES is not set + +# +# asterisk needs a glibc or uClibc toolchain w/ C++, dynamic library, threads, wchar +# +# BR2_PACKAGE_ATFTP is not set +# BR2_PACKAGE_AVAHI is not set +# BR2_PACKAGE_AXEL is not set +# BR2_PACKAGE_BABELD is not set +# BR2_PACKAGE_BANDWIDTHD is not set +# BR2_PACKAGE_BATCTL is not set + +# +# bcusdk needs a toolchain w/ C++ +# +# BR2_PACKAGE_BIND is not set +# BR2_PACKAGE_BIRD is not set +# BR2_PACKAGE_BLUEZ5_UTILS is not set +# BR2_PACKAGE_BMON is not set +# BR2_PACKAGE_BMX7 is not set + +# +# boinc needs a toolchain w/ dynamic library, C++, threads, gcc >= 4.8 +# +# BR2_PACKAGE_BRCM_PATCHRAM_PLUS is not set +# BR2_PACKAGE_BRIDGE_UTILS is not set +# BR2_PACKAGE_BWM_NG is not set +# BR2_PACKAGE_C_ICAP is not set +# BR2_PACKAGE_CAN_UTILS is not set + +# +# cannelloni needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 +# +# BR2_PACKAGE_CASYNC is not set +# BR2_PACKAGE_CFM is not set +# BR2_PACKAGE_CHRONY is not set +# BR2_PACKAGE_CIVETWEB is not set +# BR2_PACKAGE_CONNMAN is not set + +# +# connman-gtk needs libgtk3 and a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library +# +# BR2_PACKAGE_CONNTRACK_TOOLS is not set +# BR2_PACKAGE_CORKSCREW is not set +# BR2_PACKAGE_CRDA is not set + +# +# ctorrent needs a toolchain w/ C++ +# + +# +# cups needs a toolchain w/ C++, threads +# + +# +# cups-filters needs a toolchain w/ wchar, C++, threads and dynamic library, gcc >= 5 +# +# BR2_PACKAGE_DANTE is not set +# BR2_PACKAGE_DARKHTTPD is not set +# BR2_PACKAGE_DEHYDRATED is not set +# BR2_PACKAGE_DHCPCD is not set +# BR2_PACKAGE_DHCPDUMP is not set +# BR2_PACKAGE_DNSMASQ is not set +# BR2_PACKAGE_DRBD_UTILS is not set +# BR2_PACKAGE_DROPBEAR is not set +# BR2_PACKAGE_EASYFRAMES is not set +# BR2_PACKAGE_EBTABLES is not set + +# +# ejabberd needs erlang, toolchain w/ C++ +# +# BR2_PACKAGE_ETHTOOL is not set +# BR2_PACKAGE_FAIFA is not set +# BR2_PACKAGE_FASTD is not set +# BR2_PACKAGE_FCGIWRAP is not set +# BR2_PACKAGE_FIREWALLD is not set +# BR2_PACKAGE_FLANNEL is not set +# BR2_PACKAGE_FPING is not set +# BR2_PACKAGE_FREERADIUS_SERVER is not set + +# +# freeswitch needs a toolchain w/ C++, dynamic library, threads, wchar +# +# BR2_PACKAGE_FRR is not set + +# +# gerbera needs a toolchain w/ C++, dynamic library, threads, wchar, gcc >= 8 +# +# BR2_PACKAGE_GESFTPSERVER is not set + +# +# gloox needs a toolchain w/ C++ +# +# BR2_PACKAGE_GLORYTUN is not set + +# +# gupnp-tools needs libgtk3 +# + +# +# hans needs a toolchain w/ C++ +# +BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS=y +# BR2_PACKAGE_HAPROXY is not set +# BR2_PACKAGE_HIAWATHA is not set +# BR2_PACKAGE_HOSTAPD is not set +# BR2_PACKAGE_HTPDATE is not set +# BR2_PACKAGE_HTTPING is not set + +# +# i2pd needs a toolchain w/ C++, NPTL, wchar +# + +# +# ibrdtn-tools needs a toolchain w/ C++, threads +# + +# +# ibrdtnd needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_IFMETRIC is not set +# BR2_PACKAGE_IFTOP is not set +BR2_PACKAGE_IFUPDOWN_SCRIPTS=y +# BR2_PACKAGE_IGD2_FOR_LINUX is not set +# BR2_PACKAGE_IGH_ETHERCAT is not set +# BR2_PACKAGE_IGMPPROXY is not set +# BR2_PACKAGE_INADYN is not set +# BR2_PACKAGE_IODINE is not set + +# +# iperf needs a toolchain w/ C++ +# +# BR2_PACKAGE_IPERF3 is not set +# BR2_PACKAGE_IPROUTE2 is not set +# BR2_PACKAGE_IPSET is not set +# BR2_PACKAGE_IPTABLES is not set +# BR2_PACKAGE_IPTRAF_NG is not set +# BR2_PACKAGE_IPUTILS is not set +# BR2_PACKAGE_IRSSI is not set +# BR2_PACKAGE_IW is not set +# BR2_PACKAGE_IWD is not set +# BR2_PACKAGE_JANUS_GATEWAY is not set +# BR2_PACKAGE_KEEPALIVED is not set + +# +# kismet needs a toolchain w/ threads, C++, gcc >= 5 +# +# BR2_PACKAGE_KNOCK is not set +# BR2_PACKAGE_KSMBD_TOOLS is not set +# BR2_PACKAGE_LEAFNODE2 is not set +# BR2_PACKAGE_LFT is not set + +# +# lftp requires a toolchain w/ C++, wchar +# +# BR2_PACKAGE_LIGHTTPD is not set + +# +# linknx needs a toolchain w/ C++ +# +# BR2_PACKAGE_LINKS is not set + +# +# linphone needs a toolchain w/ threads, C++, dynamic library, wchar, gcc >= 5 +# +# BR2_PACKAGE_LINUX_ZIGBEE is not set +# BR2_PACKAGE_LINUXPTP is not set +# BR2_PACKAGE_LLDPD is not set +# BR2_PACKAGE_LRZSZ is not set +# BR2_PACKAGE_LYNX is not set +# BR2_PACKAGE_MACCHANGER is not set +# BR2_PACKAGE_MEMCACHED is not set +# BR2_PACKAGE_MII_DIAG is not set +# BR2_PACKAGE_MINI_SNMPD is not set +# BR2_PACKAGE_MINIDLNA is not set +# BR2_PACKAGE_MINISSDPD is not set +# BR2_PACKAGE_MJPG_STREAMER is not set +# BR2_PACKAGE_MODEM_MANAGER is not set +BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y + +# +# mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, dynamic library +# + +# +# mosh needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 4.8 +# +# BR2_PACKAGE_MOSQUITTO is not set +# BR2_PACKAGE_MROUTED is not set +# BR2_PACKAGE_MRP is not set +# BR2_PACKAGE_MSTPD is not set +# BR2_PACKAGE_MTR is not set +# BR2_PACKAGE_NBD is not set +# BR2_PACKAGE_NCFTP is not set +# BR2_PACKAGE_NDISC6 is not set +# BR2_PACKAGE_NETATALK is not set +# BR2_PACKAGE_NETCALC is not set +# BR2_PACKAGE_NETPLUG is not set +# BR2_PACKAGE_NETSNMP is not set +# BR2_PACKAGE_NETSTAT_NAT is not set + +# +# NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 4.6, dynamic library, wchar, threads, gcc >= 4.9 +# +# BR2_PACKAGE_NFACCT is not set +# BR2_PACKAGE_NFTABLES is not set +# BR2_PACKAGE_NGINX is not set +# BR2_PACKAGE_NGIRCD is not set +# BR2_PACKAGE_NGREP is not set + +# +# nload needs a toolchain w/ C++ +# + +# +# nmap-nmap needs a toolchain w/ C++, threads +# +# BR2_PACKAGE_NOIP is not set +# BR2_PACKAGE_NTP is not set +# BR2_PACKAGE_NTPSEC is not set +# BR2_PACKAGE_NUTTCP is not set +# BR2_PACKAGE_ODHCP6C is not set +# BR2_PACKAGE_ODHCPLOC is not set +# BR2_PACKAGE_OLSR is not set +# BR2_PACKAGE_OPEN_ISCSI is not set +# BR2_PACKAGE_OPEN_LLDP is not set +# BR2_PACKAGE_OPEN_PLC_UTILS is not set +# BR2_PACKAGE_OPENNTPD is not set +# BR2_PACKAGE_OPENOBEX is not set +# BR2_PACKAGE_OPENRESOLV is not set +# BR2_PACKAGE_OPENSSH is not set +# BR2_PACKAGE_OPENSWAN is not set +# BR2_PACKAGE_OPENVPN is not set +# BR2_PACKAGE_P910ND is not set +# BR2_PACKAGE_PARPROUTED is not set +# BR2_PACKAGE_PHIDGETWEBSERVICE is not set +# BR2_PACKAGE_PHYTOOL is not set +# BR2_PACKAGE_PIMD is not set +# BR2_PACKAGE_PIXIEWPS is not set +# BR2_PACKAGE_POUND is not set +# BR2_PACKAGE_PPPD is not set +# BR2_PACKAGE_PPTP_LINUX is not set +# BR2_PACKAGE_PRIVOXY is not set +# BR2_PACKAGE_PROFTPD is not set + +# +# prosody needs the lua interpreter, dynamic library +# +# BR2_PACKAGE_PROXYCHAINS_NG is not set +# BR2_PACKAGE_PTPD is not set +# BR2_PACKAGE_PTPD2 is not set +# BR2_PACKAGE_PURE_FTPD is not set +# BR2_PACKAGE_PUTTY is not set +# BR2_PACKAGE_QUAGGA is not set +# BR2_PACKAGE_RADVD is not set +# BR2_PACKAGE_REAVER is not set +# BR2_PACKAGE_REDIR is not set +# BR2_PACKAGE_RP_PPPOE is not set +# BR2_PACKAGE_RPCBIND is not set +# BR2_PACKAGE_RSH_REDONE is not set +# BR2_PACKAGE_RSYNC is not set + +# +# rtorrent needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 +# +# BR2_PACKAGE_RTPTOOLS is not set + +# +# rygel needs python3 and a glibc toolchain w/ wchar, threads, gcc >= 4.9, host gcc >= 8 +# +# BR2_PACKAGE_S6_DNS is not set +# BR2_PACKAGE_S6_NETWORKING is not set +# BR2_PACKAGE_SAMBA4 is not set + +# +# sconeserver needs a toolchain with dynamic library, C++, NPTL +# +# BR2_PACKAGE_SER2NET is not set +# BR2_PACKAGE_SHADOWSOCKS_LIBEV is not set + +# +# shairport-sync needs a toolchain w/ C++, NPTL +# +# BR2_PACKAGE_SHELLINABOX is not set +# BR2_PACKAGE_SMCROUTE is not set +# BR2_PACKAGE_SNGREP is not set +# BR2_PACKAGE_SNORT is not set +# BR2_PACKAGE_SOCAT is not set +# BR2_PACKAGE_SOCKETCAND is not set +# BR2_PACKAGE_SOFTETHER is not set +# BR2_PACKAGE_SPAWN_FCGI is not set +# BR2_PACKAGE_SPICE_PROTOCOL is not set + +# +# squid needs a toolchain w/ C++, threads, gcc >= 4.8 not affected by bug 64735 +# +# BR2_PACKAGE_SSDP_RESPONDER is not set +# BR2_PACKAGE_SSHGUARD is not set +# BR2_PACKAGE_SSHPASS is not set +# BR2_PACKAGE_SSLH is not set +# BR2_PACKAGE_STRONGSWAN is not set +# BR2_PACKAGE_STUNNEL is not set +# BR2_PACKAGE_TCPDUMP is not set +# BR2_PACKAGE_TCPING is not set +# BR2_PACKAGE_TCPREPLAY is not set +# BR2_PACKAGE_THTTPD is not set +# BR2_PACKAGE_TINC is not set +# BR2_PACKAGE_TINYPROXY is not set +# BR2_PACKAGE_TINYSSH is not set +# BR2_PACKAGE_TOR is not set +# BR2_PACKAGE_TRACEROUTE is not set + +# +# transmission needs a toolchain w/ dynamic library, threads, C++, gcc >= 7 +# +# BR2_PACKAGE_TUNCTL is not set +# BR2_PACKAGE_TVHEADEND is not set +# BR2_PACKAGE_UACME is not set +# BR2_PACKAGE_UDPCAST is not set +# BR2_PACKAGE_UFTP is not set +# BR2_PACKAGE_UHTTPD is not set +# BR2_PACKAGE_ULOGD is not set +# BR2_PACKAGE_UNBOUND is not set +# BR2_PACKAGE_UQMI is not set +# BR2_PACKAGE_UREDIR is not set +# BR2_PACKAGE_USHARE is not set +# BR2_PACKAGE_USSP_PUSH is not set +# BR2_PACKAGE_VDE2 is not set + +# +# vdr needs a toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9 +# +# BR2_PACKAGE_VNSTAT is not set +# BR2_PACKAGE_VPNC is not set +# BR2_PACKAGE_VSFTPD is not set +# BR2_PACKAGE_VTUN is not set +# BR2_PACKAGE_WAVEMON is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set +# BR2_PACKAGE_WIRELESS_REGDB is not set +# BR2_PACKAGE_WIRELESS_TOOLS is not set + +# +# wireshark needs a toolchain w/ wchar, threads, dynamic library, C++ +# +# BR2_PACKAGE_WPA_SUPPLICANT is not set +# BR2_PACKAGE_WPAN_TOOLS is not set +# BR2_PACKAGE_XINETD is not set +# BR2_PACKAGE_XL2TP is not set +# BR2_PACKAGE_XTABLES_ADDONS is not set +# BR2_PACKAGE_ZABBIX is not set + +# +# zeek needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 7 +# + +# +# znc needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads +# + +# +# Package managers +# + +# +# ------------------------------------------------------- +# + +# +# Please note: +# + +# +# - Buildroot does *not* generate binary packages, +# + +# +# - Buildroot does *not* install any package database. +# + +# +# * +# + +# +# It is up to you to provide those by yourself if you +# + +# +# want to use any of those package managers. +# + +# +# * +# + +# +# See the manual: +# + +# +# http://buildroot.org/manual.html#faq-no-binary-packages +# + +# +# ------------------------------------------------------- +# +# BR2_PACKAGE_OPKG is not set +# BR2_PACKAGE_OPKG_UTILS is not set + +# +# Real-Time +# +# BR2_PACKAGE_XENOMAI is not set + +# +# Security +# + +# +# apparmor needs a toolchain w/ headers >= 3.16, threads, C++ +# +# BR2_PACKAGE_CHECKPOLICY is not set +# BR2_PACKAGE_IMA_EVM_UTILS is not set +# BR2_PACKAGE_OPTEE_CLIENT is not set +# BR2_PACKAGE_PAXTEST is not set +# BR2_PACKAGE_REFPOLICY is not set +# BR2_PACKAGE_RESTORECOND is not set +# BR2_PACKAGE_SELINUX_PYTHON is not set +# BR2_PACKAGE_SEMODULE_UTILS is not set + +# +# setools needs python3 +# +BR2_PACKAGE_URANDOM_SCRIPTS=y + +# +# Shell and utilities +# + +# +# Shells +# +# BR2_PACKAGE_MKSH is not set +# BR2_PACKAGE_ZSH is not set + +# +# Utilities +# +# BR2_PACKAGE_APG is not set +# BR2_PACKAGE_AT is not set +# BR2_PACKAGE_CATATONIT is not set +# BR2_PACKAGE_CCRYPT is not set +# BR2_PACKAGE_DIALOG is not set +# BR2_PACKAGE_DTACH is not set +# BR2_PACKAGE_EASY_RSA is not set +# BR2_PACKAGE_FILE is not set +# BR2_PACKAGE_GNUPG is not set +BR2_PACKAGE_GNUPG2_DEPENDS=y +# BR2_PACKAGE_GNUPG2 is not set +# BR2_PACKAGE_INOTIFY_TOOLS is not set +# BR2_PACKAGE_LOCKFILE_PROGS is not set +# BR2_PACKAGE_LOGROTATE is not set +# BR2_PACKAGE_LOGSURFER is not set +# BR2_PACKAGE_PDMENU is not set +# BR2_PACKAGE_PINENTRY is not set +# BR2_PACKAGE_QPRINT is not set +# BR2_PACKAGE_RANGER is not set +# BR2_PACKAGE_RTTY is not set +# BR2_PACKAGE_SCREEN is not set +# BR2_PACKAGE_SEXPECT is not set +# BR2_PACKAGE_SUDO is not set +# BR2_PACKAGE_TINI is not set +# BR2_PACKAGE_TMUX is not set +# BR2_PACKAGE_TTYD is not set +# BR2_PACKAGE_WTFUTIL is not set +# BR2_PACKAGE_XMLSTARLET is not set +# BR2_PACKAGE_XXHASH is not set +# BR2_PACKAGE_YTREE is not set + +# +# System tools +# +# BR2_PACKAGE_ACL is not set +# BR2_PACKAGE_ANDROID_TOOLS is not set +# BR2_PACKAGE_ATOP is not set +# BR2_PACKAGE_ATTR is not set +# BR2_PACKAGE_BALENA_ENGINE is not set +# BR2_PACKAGE_BUBBLEWRAP is not set +# BR2_PACKAGE_CGROUPFS_MOUNT is not set + +# +# circus needs Python 3 and a toolchain w/ C++, threads +# +# BR2_PACKAGE_CONMON is not set +# BR2_PACKAGE_CONTAINERD is not set +# BR2_PACKAGE_CPULIMIT is not set +# BR2_PACKAGE_CPULOAD is not set +# BR2_PACKAGE_CRUN is not set +# BR2_PACKAGE_DAEMON is not set +# BR2_PACKAGE_DC3DD is not set + +# +# ddrescue needs a toolchain w/ C++ +# +# BR2_PACKAGE_DOCKER_CLI is not set + +# +# docker-compose needs docker-cli and a toolchain w/ threads +# +# BR2_PACKAGE_DOCKER_ENGINE is not set +# BR2_PACKAGE_EARLYOOM is not set +# BR2_PACKAGE_EMBIGGEN_DISK is not set +# BR2_PACKAGE_EMLOG is not set +# BR2_PACKAGE_FLUENT_BIT is not set +# BR2_PACKAGE_FTOP is not set +# BR2_PACKAGE_GETENT is not set +# BR2_PACKAGE_GKRELLM is not set +# BR2_PACKAGE_HTOP is not set +# BR2_PACKAGE_IBM_SW_TPM2 is not set +BR2_PACKAGE_INITSCRIPTS=y + +# +# iotop depends on python3 +# +# BR2_PACKAGE_IPRUTILS is not set +# BR2_PACKAGE_IRQBALANCE is not set +# BR2_PACKAGE_KEYUTILS is not set +# BR2_PACKAGE_KMOD is not set +# BR2_PACKAGE_LIBOSTREE is not set +# BR2_PACKAGE_LXC is not set +# BR2_PACKAGE_MENDER is not set +# BR2_PACKAGE_MENDER_CONNECT is not set +# BR2_PACKAGE_MFOC is not set +# BR2_PACKAGE_MOBY_BUILDKIT is not set +# BR2_PACKAGE_MONIT is not set + +# +# multipath-tools needs udev and a toolchain w/ threads, dynamic library, C++ +# +# BR2_PACKAGE_NCDU is not set +# BR2_PACKAGE_NERDCTL is not set + +# +# netifrc needs openrc as init system +# +# BR2_PACKAGE_NUMACTL is not set + +# +# nut needs a toolchain w/ C++ +# + +# +# pamtester depends on linux-pam +# +# BR2_PACKAGE_POLKIT is not set +# BR2_PACKAGE_PROCRANK_LINUX is not set +# BR2_PACKAGE_PWGEN is not set +# BR2_PACKAGE_QUOTA is not set +# BR2_PACKAGE_QUOTATOOL is not set +# BR2_PACKAGE_RAUC is not set +# BR2_PACKAGE_RAUC_HAWKBIT_UPDATER is not set +# BR2_PACKAGE_RUNC is not set +# BR2_PACKAGE_S6 is not set +# BR2_PACKAGE_S6_LINUX_INIT is not set +# BR2_PACKAGE_S6_LINUX_UTILS is not set +# BR2_PACKAGE_S6_PORTABLE_UTILS is not set +# BR2_PACKAGE_S6_RC is not set +# BR2_PACKAGE_SCRUB is not set +# BR2_PACKAGE_SCRYPT is not set + +# +# sdbus-c++ needs systemd and a toolchain w/ C++, gcc >= 7 +# + +# +# sdbusplus needs systemd and a toolchain w/ C++, gcc >= 7 +# +# BR2_PACKAGE_SEATD is not set +# BR2_PACKAGE_SHADOW is not set +# BR2_PACKAGE_SMACK is not set + +# +# supervisor needs a python interpreter +# +# BR2_PACKAGE_SWUPDATE is not set +BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y +# BR2_PACKAGE_TPM_TOOLS is not set +# BR2_PACKAGE_TPM2_ABRMD is not set +# BR2_PACKAGE_TPM2_TOOLS is not set +# BR2_PACKAGE_TPM2_TOTP is not set +# BR2_PACKAGE_UNSCD is not set +# BR2_PACKAGE_UTIL_LINUX is not set +# BR2_PACKAGE_WATCHDOG is not set +# BR2_PACKAGE_WATCHDOGD is not set +# BR2_PACKAGE_XDG_DBUS_PROXY is not set +BR2_PACKAGE_XVISOR_ARCH_SUPPORTS=y +# BR2_PACKAGE_XVISOR is not set + +# +# Text editors and viewers +# +# BR2_PACKAGE_ED is not set +# BR2_PACKAGE_JOE is not set +# BR2_PACKAGE_MC is not set +# BR2_PACKAGE_MG is not set +# BR2_PACKAGE_MOST is not set +# BR2_PACKAGE_NANO is not set +# BR2_PACKAGE_UEMACS is not set + +# +# Filesystem images +# +# BR2_TARGET_ROOTFS_AXFS is not set +# BR2_TARGET_ROOTFS_BTRFS is not set +# BR2_TARGET_ROOTFS_CLOOP is not set +# BR2_TARGET_ROOTFS_CPIO is not set +# BR2_TARGET_ROOTFS_CRAMFS is not set +# BR2_TARGET_ROOTFS_EROFS is not set +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_2=y +# BR2_TARGET_ROOTFS_EXT2_2r0 is not set +BR2_TARGET_ROOTFS_EXT2_2r1=y +# BR2_TARGET_ROOTFS_EXT2_3 is not set +# BR2_TARGET_ROOTFS_EXT2_4 is not set +BR2_TARGET_ROOTFS_EXT2_GEN=2 +BR2_TARGET_ROOTFS_EXT2_REV=1 +BR2_TARGET_ROOTFS_EXT2_LABEL="rootfs" +BR2_TARGET_ROOTFS_EXT2_SIZE="60M" +BR2_TARGET_ROOTFS_EXT2_INODES=0 +BR2_TARGET_ROOTFS_EXT2_INODE_SIZE=256 +BR2_TARGET_ROOTFS_EXT2_RESBLKS=5 +BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O ^64bit" +BR2_TARGET_ROOTFS_EXT2_NONE=y +# BR2_TARGET_ROOTFS_EXT2_GZIP is not set +# BR2_TARGET_ROOTFS_EXT2_BZIP2 is not set +# BR2_TARGET_ROOTFS_EXT2_LZ4 is not set +# BR2_TARGET_ROOTFS_EXT2_LZMA is not set +# BR2_TARGET_ROOTFS_EXT2_LZO is not set +# BR2_TARGET_ROOTFS_EXT2_XZ is not set +# BR2_TARGET_ROOTFS_EXT2_ZSTD is not set +# BR2_TARGET_ROOTFS_F2FS is not set +# BR2_TARGET_ROOTFS_INITRAMFS is not set +# BR2_TARGET_ROOTFS_JFFS2 is not set +# BR2_TARGET_ROOTFS_OCI is not set +# BR2_TARGET_ROOTFS_ROMFS is not set +# BR2_TARGET_ROOTFS_SQUASHFS is not set +BR2_TARGET_ROOTFS_TAR=y +BR2_TARGET_ROOTFS_TAR_NONE=y +# BR2_TARGET_ROOTFS_TAR_GZIP is not set +# BR2_TARGET_ROOTFS_TAR_BZIP2 is not set +# BR2_TARGET_ROOTFS_TAR_LZ4 is not set +# BR2_TARGET_ROOTFS_TAR_LZMA is not set +# BR2_TARGET_ROOTFS_TAR_LZO is not set +# BR2_TARGET_ROOTFS_TAR_XZ is not set +# BR2_TARGET_ROOTFS_TAR_ZSTD is not set +BR2_TARGET_ROOTFS_TAR_OPTIONS="" +# BR2_TARGET_ROOTFS_UBI is not set +# BR2_TARGET_ROOTFS_UBIFS is not set +# BR2_TARGET_ROOTFS_YAFFS2 is not set + +# +# Bootloaders +# +# BR2_TARGET_BAREBOX is not set +# BR2_TARGET_BEAGLEV_DDRINIT is not set +# BR2_TARGET_BEAGLEV_SECONDBOOT is not set +BR2_TARGET_OPENSBI=y +BR2_TARGET_OPENSBI_LATEST_VERSION=y +# BR2_TARGET_OPENSBI_CUSTOM_VERSION is not set +# BR2_TARGET_OPENSBI_CUSTOM_TARBALL is not set +# BR2_TARGET_OPENSBI_CUSTOM_GIT is not set +BR2_TARGET_OPENSBI_VERSION="1.3" +BR2_TARGET_OPENSBI_PLAT="generic" +BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG=y +BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG=y +# BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG is not set +# BR2_TARGET_OPENSBI_LINUX_PAYLOAD is not set +BR2_TARGET_OPENSBI_ADDITIONAL_VARIABLES="" +# BR2_TARGET_UBOOT is not set + +# +# Host utilities +# +# BR2_PACKAGE_HOST_ABOOTIMG is not set +# BR2_PACKAGE_HOST_AESPIPE is not set +# BR2_PACKAGE_HOST_AGENT_PROXY is not set +# BR2_PACKAGE_HOST_AMLOGIC_BOOT_FIP is not set +# BR2_PACKAGE_HOST_ANDROID_TOOLS is not set +# BR2_PACKAGE_HOST_ASN1C is not set +# BR2_PACKAGE_HOST_BABELTRACE2 is not set +# BR2_PACKAGE_HOST_BMAP_TOOLS is not set +# BR2_PACKAGE_HOST_BOOTGEN is not set +# BR2_PACKAGE_HOST_BTRFS_PROGS is not set +# BR2_PACKAGE_HOST_CHECKPOLICY is not set +# BR2_PACKAGE_HOST_CHECKSEC is not set +# BR2_PACKAGE_HOST_CMAKE is not set +BR2_HOST_CMAKE_AT_LEAST="3.18" +# BR2_PACKAGE_HOST_COMPOSER is not set +# BR2_PACKAGE_HOST_CRAMFS is not set +# BR2_PACKAGE_HOST_CRUDINI is not set +# BR2_PACKAGE_HOST_CRYPTSETUP is not set +# BR2_PACKAGE_HOST_DBUS_PYTHON is not set +# BR2_PACKAGE_HOST_DELVE is not set +# BR2_PACKAGE_HOST_DEPOT_TOOLS is not set +# BR2_PACKAGE_HOST_DFU_UTIL is not set +# BR2_PACKAGE_HOST_DOS2UNIX is not set +# BR2_PACKAGE_HOST_DOSFSTOOLS is not set +# BR2_PACKAGE_HOST_DOXYGEN is not set +BR2_PACKAGE_HOST_DTC=y +BR2_PACKAGE_HOST_E2FSPROGS=y +# BR2_PACKAGE_HOST_E2TOOLS is not set +# BR2_PACKAGE_HOST_ENVIRONMENT_SETUP is not set +# BR2_PACKAGE_HOST_EROFS_UTILS is not set +# BR2_PACKAGE_HOST_EXFATPROGS is not set +# BR2_PACKAGE_HOST_F2FS_TOOLS is not set +# BR2_PACKAGE_HOST_FAKETIME is not set +# BR2_PACKAGE_HOST_FATCAT is not set +# BR2_PACKAGE_HOST_FIRMWARE_UTILS is not set +BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS=y +# BR2_PACKAGE_HOST_FLUTTER_SDK_BIN is not set +# BR2_PACKAGE_HOST_FWUP is not set +# BR2_PACKAGE_HOST_GENEXT2FS is not set +# BR2_PACKAGE_HOST_GENIMAGE is not set +# BR2_PACKAGE_HOST_GENPART is not set +# BR2_PACKAGE_HOST_GNUPG is not set +BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS=y +BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE1_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE2_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y +# BR2_PACKAGE_HOST_GPTFDISK is not set +# BR2_PACKAGE_HOST_IMAGEMAGICK is not set +# BR2_PACKAGE_HOST_IMX_MKIMAGE is not set +# BR2_PACKAGE_HOST_JH71XX_TOOLS is not set +# BR2_PACKAGE_HOST_JQ is not set +# BR2_PACKAGE_HOST_JSMIN is not set +BR2_PACKAGE_HOST_KMOD=y +# BR2_PACKAGE_HOST_KMOD_GZ is not set +# BR2_PACKAGE_HOST_KMOD_ZSTD is not set +# BR2_PACKAGE_HOST_KMOD_XZ is not set +# BR2_PACKAGE_HOST_LIBP11 is not set +# BR2_PACKAGE_HOST_LLD is not set +# BR2_PACKAGE_HOST_LPC3250LOADER is not set +# BR2_PACKAGE_HOST_LTTNG_BABELTRACE is not set +# BR2_PACKAGE_HOST_LZMA_ALONE is not set +# BR2_PACKAGE_HOST_MENDER_ARTIFACT is not set +# BR2_PACKAGE_HOST_MESON_TOOLS is not set +# BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR is not set +# BR2_PACKAGE_HOST_MKPASSWD is not set +# BR2_PACKAGE_HOST_MOBY_BUILDKIT is not set +# BR2_PACKAGE_HOST_MOSQUITTO is not set +# BR2_PACKAGE_HOST_MTD is not set +# BR2_PACKAGE_HOST_MTOOLS is not set +BR2_PACKAGE_HOST_NODEJS_BIN_ARCH_SUPPORTS=y +# BR2_PACKAGE_HOST_NODEJS is not set +BR2_PACKAGE_PROVIDES_HOST_NODEJS="host-nodejs-bin" +# BR2_PACKAGE_HOST_ODB is not set +# BR2_PACKAGE_HOST_OPENOCD is not set +# BR2_PACKAGE_HOST_OPKG_UTILS is not set +# BR2_PACKAGE_HOST_PAHOLE is not set +# BR2_PACKAGE_HOST_PARTED is not set +BR2_PACKAGE_HOST_PATCHELF=y +# BR2_PACKAGE_HOST_PIGZ is not set +# BR2_PACKAGE_HOST_PKGCONF is not set +# BR2_PACKAGE_HOST_PWGEN is not set +# BR2_PACKAGE_HOST_PYTHON_CYTHON is not set +# BR2_PACKAGE_HOST_PYTHON_GREENLET is not set +# BR2_PACKAGE_HOST_PYTHON_INIPARSE is not set +# BR2_PACKAGE_HOST_PYTHON_LXML is not set +# BR2_PACKAGE_HOST_PYTHON_PYYAML is not set +# BR2_PACKAGE_HOST_PYTHON_SIX is not set +# BR2_PACKAGE_HOST_PYTHON_XLRD is not set +# BR2_PACKAGE_HOST_PYTHON3 is not set +BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS=y +# BR2_PACKAGE_HOST_QEMU is not set +# BR2_PACKAGE_HOST_QORIQ_RCW is not set +# BR2_PACKAGE_HOST_RAUC is not set +# BR2_PACKAGE_HOST_RISCV_ISA_SIM is not set +# BR2_PACKAGE_HOST_RUNC is not set +BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS=y +BR2_PACKAGE_HOST_RUSTC_ARCH="riscv64gc" +# BR2_PACKAGE_HOST_RUSTC is not set +BR2_PACKAGE_PROVIDES_HOST_RUSTC="host-rust-bin" +# BR2_PACKAGE_HOST_SAM_BA is not set +# BR2_PACKAGE_HOST_SDBUS_CPP is not set +# BR2_PACKAGE_HOST_SDBUSPLUS is not set +# BR2_PACKAGE_HOST_SENTRY_CLI is not set +# BR2_PACKAGE_HOST_SLOCI_IMAGE is not set +# BR2_PACKAGE_HOST_SQUASHFS is not set +# BR2_PACKAGE_HOST_SWIG is not set +# BR2_PACKAGE_HOST_SWUGENERATOR is not set +# BR2_PACKAGE_HOST_UBOOT_TOOLS is not set +BR2_PACKAGE_HOST_UTIL_LINUX=y +# BR2_PACKAGE_HOST_UTP_COM is not set +# BR2_PACKAGE_HOST_UUU is not set +# BR2_PACKAGE_HOST_VBOOT_UTILS is not set +# BR2_PACKAGE_HOST_XORRISO is not set +# BR2_PACKAGE_HOST_ZIP is not set +# BR2_PACKAGE_HOST_ZSTD is not set + +# +# Legacy config options +# + +# +# Legacy options removed in 2023.11 +# +# BR2_KERNEL_HEADERS_6_4 is not set +# BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS is not set +# BR2_GDB_VERSION_10 is not set + +# +# Legacy options removed in 2023.08 +# +# BR2_TARGET_LPC32XXCDL is not set +# BR2_BINUTILS_VERSION_2_38_X is not set +# BR2_GCC_VERSION_10_X is not set +# BR2_KERNEL_HEADERS_6_3 is not set +# BR2_PACKAGE_TOVID is not set +# BR2_PACKAGE_LIBASPLIB is not set +# BR2_PACKAGE_OCF_LINUX is not set +# BR2_BINUTILS_VERSION_2_37_X is not set + +# +# Legacy options removed in 2023.05 +# +# BR2_KERNEL_HEADERS_6_2 is not set +# BR2_PACKAGE_ATK is not set +# BR2_PACKAGE_AT_SPI2_ATK is not set +# BR2_PACKAGE_OPTEE_BENCHMARK is not set +# BR2_PACAKGE_OPENFPGALOADER_CMSIS is not set + +# +# Legacy options removed in 2023.02 +# +# BR2_PACKAGE_PUGIXML_HEADER_ONLY is not set +# BR2_PACKAGE_UCCP420WLAN is not set +# BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES is not set +# BR2_KERNEL_HEADERS_6_0 is not set +# BR2_KERNEL_HEADERS_4_9 is not set +# BR2_PACKAGE_DOCKER_PROXY is not set +# BR2_PACKAGE_PYTHON_BUNCH is not set +# BR2_TARGET_GUMMIBOOT is not set +# BR2_PACKAGE_IPUTILS_NINFOD is not set +# BR2_PACKAGE_IPUTILS_RARPD is not set +# BR2_PACKAGE_IPUTILS_RDISC is not set +# BR2_PACKAGE_IPUTILS_RDISC_SERVER is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_XINGMUX is not set +# BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE is not set +# BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT is not set +# BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 is not set +# BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV is not set +BR2_PACKAGE_QEMU_CUSTOM_TARGETS="" +# BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD is not set +# BR2_TARGET_SUN20I_D1_SPL is not set +# BR2_PACKAGE_PYTHON_M2R is not set +# BR2_PACKAGE_MESA3D_XVMC is not set +# BR2_KERNEL_HEADERS_5_19 is not set +# BR2_PACKAGE_XDRIVER_XF86_VIDEO_TGA is not set +# BR2_PACKAGE_XDRIVER_XF86_VIDEO_GLINT is not set +# BR2_PACKAGE_USBREDIR_SERVER is not set + +# +# Legacy options removed in 2022.11 +# +# BR2_BINUTILS_VERSION_2_36_X is not set +# BR2_PACKAGE_RABBITMQ_SERVER is not set +# BR2_PACKAGE_LIBOPENSSL_ENABLE_RC5 is not set +# BR2_PACKAGE_LIBDCADEC is not set +# BR2_KERNEL_HEADERS_5_17 is not set +# BR2_iwmmxt is not set +# BR2_PACKAGE_UHD_N230 is not set +# BR2_PACKAGE_UHD_RFNOC is not set +# BR2_PACKAGE_GPSD_OLDSTYLE is not set +# BR2_GDB_VERSION_9_2 is not set + +# +# Legacy options removed in 2022.08 +# +# BR2_ECLIPSE_REGISTER is not set +# BR2_csky is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON is not set +# BR2_GCC_VERSION_9_X is not set +# BR2_PACKAGE_PHP_EXT_WDDX is not set +# BR2_nds32 is not set +# BR2_PACKAGE_RTL8723BS is not set + +# +# Legacy options removed in 2022.05 +# +# BR2_PACKAGE_KTAP is not set +# BR2_KERNEL_HEADERS_5_16 is not set +# BR2_KERNEL_HEADERS_4_4 is not set +# BR2_BINUTILS_VERSION_2_32_X is not set +# BR2_sh2a is not set +# BR2_BINUTILS_VERSION_2_35_X is not set +# BR2_PACKAGE_BOOST_LAYOUT_TAGGED is not set +# BR2_PACKAGE_BOOST_LAYOUT_VERSIONED is not set + +# +# Legacy options removed in 2022.02 +# +BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS="" +# BR2_PACKAGE_LIBCURL_LIBNSS is not set +# BR2_PACKAGE_WESTON_DEFAULT_FBDEV is not set +# BR2_PACKAGE_WESTON_FBDEV is not set +# BR2_PACKAGE_PYTHON_PYCLI is not set +# BR2_PACKAGE_LINUX_TOOLS_BPFTOOL is not set +# BR2_TARGET_UBOOT_NEEDS_PYTHON2 is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS is not set +# BR2_PACKAGE_PYTHON_FUNCTOOLS32 is not set +# BR2_PACKAGE_PYTHON_ENUM34 is not set +# BR2_PACKAGE_PYTHON_ENUM is not set +# BR2_PACKAGE_PYTHON_DIALOG is not set +# BR2_PACKAGE_PYTHON_CONFIGOBJ is not set +# BR2_PACKAGE_PYTHON_YIELDFROM is not set +# BR2_PACKAGE_PYTHON_TYPING is not set +# BR2_PACKAGE_PYTHON_SUBPROCESS32 is not set +# BR2_PACKAGE_PYTHON_SINGLEDISPATCH is not set +# BR2_PACKAGE_PYTHON_PYRO is not set +# BR2_PACKAGE_PYTHON_PYPCAP is not set +# BR2_PACKAGE_PYTHON_PATHLIB2 is not set +# BR2_PACKAGE_PYTHON_PAM is not set +# BR2_PACKAGE_PYTHON_NFC is not set +# BR2_PACKAGE_PYTHON_MAD is not set +# BR2_PACKAGE_PYTHON_IPADDRESS is not set +# BR2_PACKAGE_PYTHON_IPADDR is not set +# BR2_PACKAGE_PYTHON_ID3 is not set +# BR2_PACKAGE_PYTHON_FUTURES is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_ABC is not set +# BR2_PACKAGE_PYTHON is not set +# BR2_TARGET_UBOOT_ZYNQ_IMAGE is not set +# BR2_PACKAGE_HOST_GDB_PYTHON is not set +# BR2_PACKAGE_GSTREAMER1_MM is not set +# BR2_KERNEL_HEADERS_5_14 is not set +# BR2_PACKAGE_PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE is not set +# BR2_PACKAGE_CIVETWEB_WITH_LUA is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE_DRIVER is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 is not set +# BR2_PACKAGE_SUNXI_MALI_MAINLINE_R8P1 is not set +# BR2_PACKAGE_QT5WEBKIT_EXAMPLES is not set +# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE is not set +# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE is not set +# BR2_PACKAGE_IPUTILS_TFTPD is not set +# BR2_PACKAGE_IPUTILS_TRACEROUTE6 is not set +# BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE is not set +# BR2_PACKAGE_MPD_UPNP is not set + +# +# Legacy options removed in 2021.11 +# +# BR2_OPENJDK_VERSION_LTS is not set +# BR2_OPENJDK_VERSION_LATEST is not set +# BR2_PACKAGE_MPD_TIDAL is not set +# BR2_PACKAGE_MROUTED_RSRR is not set +# BR2_BINUTILS_VERSION_CSKY is not set +# BR2_GCC_VERSION_CSKY is not set +# BR2_PACKAGE_CANFESTIVAL is not set +# BR2_PACKAGE_NMAP_NDIFF is not set +# BR2_GDB_VERSION_8_3 is not set +# BR2_PACKAGE_PYTHON_MELD3 is not set +# BR2_PACKAGE_STRONGSWAN_EAP is not set +# BR2_PACKAGE_GNURADIO_PAGER is not set +# BR2_KERNEL_HEADERS_5_11 is not set +# BR2_KERNEL_HEADERS_5_12 is not set +# BR2_KERNEL_HEADERS_5_13 is not set + +# +# Legacy options removed in 2021.08 +# +BR2_TARGET_GRUB2_BUILTIN_MODULES="" +BR2_TARGET_GRUB2_BUILTIN_CONFIG="" +# BR2_PACKAGE_LIBMCRYPT is not set +# BR2_PACKAGE_MCRYPT is not set +# BR2_PACKAGE_PHP_EXT_MCRYPT is not set +# BR2_BINUTILS_VERSION_2_34_X is not set +# BR2_PACKAGE_LIBSOIL is not set +# BR2_PACKAGE_CLAPACK is not set +# BR2_PACKAGE_SPIDERMONKEY is not set +# BR2_PACKAGE_KODI_LIBVA is not set +# BR2_PACKAGE_PYTHON_COHERENCE is not set +# BR2_PACKAGE_PHP_EXT_XMLRPC is not set +# BR2_GCC_VERSION_8_X is not set + +# +# Legacy options removed in 2021.05 +# +# BR2_PACKAGE_UDISKS_LVM2 is not set +# BR2_PACKAGE_LVM2_APP_LIBRARY is not set +# BR2_PACKAGE_LVM2_LVMETAD is not set +# BR2_PACKAGE_MONKEY is not set +# BR2_PACKAGE_DOCKER_CONTAINERD is not set +# BR2_PACKAGE_IOSTAT is not set +# BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE is not set +# BR2_PACKAGE_MESA3D_OSMESA_CLASSIC is not set +# BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST is not set +# BR2_PACKAGE_KODI_SCREENSAVER_CRYSTALMORPH is not set + +# +# Legacy options removed in 2021.02 +# +# BR2_PACKAGE_MPD_AUDIOFILE is not set +# BR2_PACKAGE_AUDIOFILE is not set +# BR2_BINUTILS_VERSION_2_33_X is not set +# BR2_PACKAGE_LIBUPNP18 is not set +# BR2_PACKAGE_BOA is not set +# BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA is not set +# BR2_GDB_VERSION_8_2 is not set +# BR2_PACKAGE_HOST_RCW is not set +# BR2_KERNEL_HEADERS_5_9 is not set +# BR2_KERNEL_HEADERS_5_8 is not set +# BR2_powerpc_601 is not set +# BR2_PACKAGE_TI_SGX_LIBGBM is not set +# BR2_PACKAGE_IPSEC_TOOLS is not set + +# +# Legacy options removed in 2020.11 +# +# BR2_PACKAGE_GPSD_FIXED_PORT_SPEED is not set +# BR2_PACKAGE_GPSD_RECONFIGURE is not set +# BR2_PACKAGE_GPSD_CONTROLSEND is not set +# BR2_PACKAGE_OPENCV is not set +# BR2_PACKAGE_LIBCROCO is not set +# BR2_PACKAGE_BELLAGIO is not set +# BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY is not set +# BR2_TARGET_UBOOT_BOOT_SCRIPT is not set +# BR2_TARGET_UBOOT_ENVIMAGE is not set +# BR2_PACKAGE_KISMET_CLIENT is not set +# BR2_PACKAGE_KISMET_DRONE is not set +# BR2_GCC_VERSION_7_X is not set +# BR2_PACKAGE_GST1_VALIDATE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF is not set +# BR2_PACKAGE_GQVIEW is not set +# BR2_PACKAGE_WESTON_IMX is not set +# BR2_KERNEL_HEADERS_5_7 is not set +# BR2_PACKAGE_TINYHTTPD is not set +# BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX is not set +# BR2_PACKAGE_AMD_CATALYST is not set +# BR2_PACKAGE_NVIDIA_TEGRA23 is not set +# BR2_GDB_VERSION_8_1 is not set + +# +# Legacy options removed in 2020.08 +# +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 is not set +# BR2_KERNEL_HEADERS_5_6 is not set +# BR2_KERNEL_HEADERS_5_5 is not set +# BR2_BINUTILS_VERSION_2_31_X is not set +# BR2_PACKAGE_KODI_PERIPHERAL_STEAMCONTROLLER is not set + +# +# Legacy options removed in 2020.05 +# +# BR2_PACKAGE_WIRINGPI is not set +# BR2_PACKAGE_PYTHON_PYCRYPTO is not set +# BR2_PACKAGE_MTDEV2TUIO is not set +# BR2_PACKAGE_EZXML is not set +# BR2_PACKAGE_COLLECTD_LVM is not set +# BR2_PACKAGE_PYTHON_PYASN is not set +# BR2_PACKAGE_PYTHON_PYASN_MODULES is not set +# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174 is not set +# BR2_PACKAGE_QT5CANVAS3D is not set +# BR2_PACKAGE_KODI_LIBTHEORA is not set +# BR2_PACKAGE_CEGUI06 is not set +# BR2_GCC_VERSION_5_X is not set + +# +# Legacy options removed in 2020.02 +# +# BR2_PACKAGE_JAMVM is not set +# BR2_PACKAGE_CLASSPATH is not set +# BR2_PACKAGE_QT5_VERSION_5_6 is not set +# BR2_PACKAGE_CURL is not set +# BR2_PACKAGE_GSTREAMER is not set +# BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS is not set +# BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_NV_SAMPLE_APPS is not set +# BR2_PACKAGE_FREERDP_GSTREAMER is not set +# BR2_PACKAGE_OPENCV3_WITH_GSTREAMER is not set +# BR2_PACKAGE_OPENCV_WITH_GSTREAMER is not set +# BR2_PACKAGE_LIBPLAYER is not set +# BR2_GCC_VERSION_OR1K is not set +# BR2_PACKAGE_BLUEZ_UTILS is not set +# BR2_PACKAGE_GADGETFS_TEST is not set +# BR2_PACKAGE_FIS is not set +BR2_PACKAGE_REFPOLICY_POLICY_VERSION="" +# BR2_PACKAGE_CELT051 is not set +# BR2_PACKAGE_WIREGUARD is not set +# BR2_PACKAGE_PERL_NET_PING is not set +# BR2_PACKAGE_PERL_MIME_BASE64 is not set +# BR2_PACKAGE_PERL_DIGEST_MD5 is not set +# BR2_PACKAGE_ERLANG_P1_ICONV is not set +# BR2_KERNEL_HEADERS_5_3 is not set +# BR2_PACKAGE_PYTHON_SCAPY3K is not set +# BR2_BINUTILS_VERSION_2_30_X is not set +# BR2_PACKAGE_RPI_USERLAND_START_VCFILED is not set +# BR2_PACKAGE_TI_SGX_KM_AM335X is not set +# BR2_PACKAGE_TI_SGX_KM_AM437X is not set +# BR2_PACKAGE_TI_SGX_KM_AM4430 is not set +# BR2_PACKAGE_TI_SGX_KM_AM5430 is not set + +# +# Legacy options removed in 2019.11 +# +# BR2_PACKAGE_OPENVMTOOLS_PROCPS is not set +# BR2_PACKAGE_ALLJOYN is not set +# BR2_PACKAGE_ALLJOYN_BASE is not set +# BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL is not set +# BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION is not set +# BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING is not set +# BR2_PACKAGE_ALLJOYN_TCL_BASE is not set +# BR2_PACKAGE_ALLJOYN_TCL is not set +BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS="" +# BR2_PACKAGE_PYTHON_PYSNMP_APPS is not set +# BR2_KERNEL_HEADERS_5_2 is not set +# BR2_TARGET_RISCV_PK is not set +# BR2_PACKAGE_SQLITE_STAT3 is not set +# BR2_KERNEL_HEADERS_5_1 is not set +# BR2_PACKAGE_DEVMEM2 is not set +# BR2_PACKAGE_USTR is not set +# BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE is not set +# BR2_PACKAGE_KODI_VISUALISATION_WAVEFORHUE is not set +# BR2_PACKAGE_KODI_AUDIODECODER_OPUS is not set +# BR2_PACKAGE_MESA3D_OSMESA is not set +# BR2_PACKAGE_HOSTAPD_DRIVER_RTW is not set +# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW is not set +# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD is not set + +# +# Legacy options removed in 2019.08 +# +# BR2_TARGET_TS4800_MBRBOOT is not set +# BR2_PACKAGE_LIBAMCODEC is not set +# BR2_PACKAGE_ODROID_SCRIPTS is not set +# BR2_PACKAGE_ODROID_MALI is not set +# BR2_PACKAGE_KODI_PLATFORM_AML is not set +# BR2_GCC_VERSION_6_X is not set +# BR2_GCC_VERSION_4_9_X is not set +# BR2_GDB_VERSION_7_12 is not set +# BR2_PACKAGE_XAPP_MKFONTDIR is not set +# BR2_GDB_VERSION_8_0 is not set +# BR2_KERNEL_HEADERS_4_20 is not set +# BR2_KERNEL_HEADERS_5_0 is not set + +# +# Legacy options removed in 2019.05 +# +# BR2_CSKY_DSP is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD is not set +# BR2_PACKAGE_LUNIT is not set +# BR2_PACKAGE_FFMPEG_FFSERVER is not set +# BR2_PACKAGE_LIBUMP is not set +# BR2_PACKAGE_SUNXI_MALI is not set +# BR2_BINUTILS_VERSION_2_29_X is not set +# BR2_BINUTILS_VERSION_2_28_X is not set +# BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK is not set + +# +# Legacy options removed in 2019.02 +# +# BR2_PACKAGE_QT is not set +# BR2_PACKAGE_QTUIO is not set +# BR2_PACKAGE_PINENTRY_QT4 is not set +# BR2_PACKAGE_POPPLER_QT is not set +# BR2_PACKAGE_OPENCV3_WITH_QT is not set +# BR2_PACKAGE_OPENCV_WITH_QT is not set +# BR2_PACKAGE_AMD_CATALYST_CCCLE is not set +# BR2_PACKAGE_SDL_QTOPIA is not set +# BR2_PACKAGE_PYTHON_PYQT is not set +# BR2_PACKAGE_LUACRYPTO is not set +# BR2_PACKAGE_TN5250 is not set +# BR2_PACKAGE_BOOST_SIGNALS is not set +# BR2_PACKAGE_FFTW_PRECISION_SINGLE is not set +# BR2_PACKAGE_FFTW_PRECISION_DOUBLE is not set +# BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE is not set +# BR2_PACKAGE_LUA_5_2 is not set +# BR2_TARGET_GENERIC_PASSWD_MD5 is not set + +# +# Legacy options removed in 2018.11 +# +# BR2_TARGET_XLOADER is not set +# BR2_PACKAGE_TIDSP_BINARIES is not set +# BR2_PACKAGE_DSP_TOOLS is not set +# BR2_PACKAGE_GST_DSP is not set +# BR2_PACKAGE_BOOTUTILS is not set +# BR2_PACKAGE_EXPEDITE is not set +# BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT is not set +# BR2_KERNEL_HEADERS_4_10 is not set +# BR2_KERNEL_HEADERS_4_11 is not set +# BR2_KERNEL_HEADERS_4_12 is not set +# BR2_KERNEL_HEADERS_4_13 is not set +# BR2_KERNEL_HEADERS_4_15 is not set +# BR2_KERNEL_HEADERS_4_17 is not set +# BR2_PACKAGE_LIBNFTNL_XML is not set +# BR2_KERNEL_HEADERS_3_2 is not set +# BR2_KERNEL_HEADERS_4_1 is not set +# BR2_KERNEL_HEADERS_4_16 is not set +# BR2_KERNEL_HEADERS_4_18 is not set + +# +# Legacy options removed in 2018.08 +# +# BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT is not set +# BR2_PACKAGE_XPROTO_APPLEWMPROTO is not set +# BR2_PACKAGE_XPROTO_BIGREQSPROTO is not set +# BR2_PACKAGE_XPROTO_COMPOSITEPROTO is not set +# BR2_PACKAGE_XPROTO_DAMAGEPROTO is not set +# BR2_PACKAGE_XPROTO_DMXPROTO is not set +# BR2_PACKAGE_XPROTO_DRI2PROTO is not set +# BR2_PACKAGE_XPROTO_DRI3PROTO is not set +# BR2_PACKAGE_XPROTO_FIXESPROTO is not set +# BR2_PACKAGE_XPROTO_FONTCACHEPROTO is not set +# BR2_PACKAGE_XPROTO_FONTSPROTO is not set +# BR2_PACKAGE_XPROTO_GLPROTO is not set +# BR2_PACKAGE_XPROTO_INPUTPROTO is not set +# BR2_PACKAGE_XPROTO_KBPROTO is not set +# BR2_PACKAGE_XPROTO_PRESENTPROTO is not set +# BR2_PACKAGE_XPROTO_RANDRPROTO is not set +# BR2_PACKAGE_XPROTO_RECORDPROTO is not set +# BR2_PACKAGE_XPROTO_RENDERPROTO is not set +# BR2_PACKAGE_XPROTO_RESOURCEPROTO is not set +# BR2_PACKAGE_XPROTO_SCRNSAVERPROTO is not set +# BR2_PACKAGE_XPROTO_VIDEOPROTO is not set +# BR2_PACKAGE_XPROTO_WINDOWSWMPROTO is not set +# BR2_PACKAGE_XPROTO_XCMISCPROTO is not set +# BR2_PACKAGE_XPROTO_XEXTPROTO is not set +# BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO is not set +# BR2_PACKAGE_XPROTO_XF86DGAPROTO is not set +# BR2_PACKAGE_XPROTO_XF86DRIPROTO is not set +# BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO is not set +# BR2_PACKAGE_XPROTO_XINERAMAPROTO is not set +# BR2_PACKAGE_XPROTO_XPROTO is not set +# BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_OPENGL is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLES2 is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLX is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11 is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_WAYLAND is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_DISPMANX is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_LAME is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123 is not set +# BR2_GDB_VERSION_7_11 is not set +# BR2_GDB_VERSION_7_10 is not set + +# +# Legacy options removed in 2018.05 +# +# BR2_PACKAGE_MEDIAART_BACKEND_NONE is not set +# BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF is not set +# BR2_PACKAGE_MEDIAART_BACKEND_QT is not set +# BR2_PACKAGE_TI_SGX_AM335X is not set +# BR2_PACKAGE_TI_SGX_AM437X is not set +# BR2_PACKAGE_TI_SGX_AM4430 is not set +# BR2_PACKAGE_TI_SGX_AM5430 is not set +# BR2_PACKAGE_JANUS_AUDIO_BRIDGE is not set +# BR2_PACKAGE_JANUS_ECHO_TEST is not set +# BR2_PACKAGE_JANUS_RECORDPLAY is not set +# BR2_PACKAGE_JANUS_SIP_GATEWAY is not set +# BR2_PACKAGE_JANUS_STREAMING is not set +# BR2_PACKAGE_JANUS_TEXT_ROOM is not set +# BR2_PACKAGE_JANUS_VIDEO_CALL is not set +# BR2_PACKAGE_JANUS_VIDEO_ROOM is not set +# BR2_PACKAGE_JANUS_MQTT is not set +# BR2_PACKAGE_JANUS_RABBITMQ is not set +# BR2_PACKAGE_JANUS_REST is not set +# BR2_PACKAGE_JANUS_UNIX_SOCKETS is not set +# BR2_PACKAGE_JANUS_WEBSOCKETS is not set +# BR2_PACKAGE_IPSEC_SECCTX_DISABLE is not set +# BR2_PACKAGE_IPSEC_SECCTX_ENABLE is not set +# BR2_PACKAGE_IPSEC_SECCTX_KERNEL is not set +# BR2_PACKAGE_LIBTFDI_CPP is not set +# BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_BLITZER is not set +# BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO is not set +# BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV is not set +# BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT is not set +# BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_FLICK is not set +# BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY is not set +# BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG is not set +# BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC is not set +# BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST is not set +# BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER is not set +# BR2_PACKAGE_JQUERY_UI_THEME_REDMOND is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET is not set +# BR2_PACKAGE_JQUERY_UI_THEME_START is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SUNNY is not set +# BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE is not set +# BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC is not set +# BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS is not set +# BR2_PACKAGE_JQUERY_UI_THEME_VADER is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_NFC is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_SAP is not set +# BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS is not set +# BR2_PACKAGE_TRANSMISSION_REMOTE is not set +# BR2_PACKAGE_LIBKCAPI_APPS is not set +# BR2_PACKAGE_MPLAYER is not set +# BR2_PACKAGE_MPLAYER_MPLAYER is not set +# BR2_PACKAGE_MPLAYER_MENCODER is not set +# BR2_PACKAGE_LIBPLAYER_MPLAYER is not set +# BR2_PACKAGE_IQVLINUX is not set +# BR2_BINFMT_FLAT_SEP_DATA is not set +# BR2_bfin is not set +# BR2_PACKAGE_KODI_ADSP_BASIC is not set +# BR2_PACKAGE_KODI_ADSP_FREESURROUND is not set + +# +# Legacy options removed in 2018.02 +# +# BR2_KERNEL_HEADERS_3_4 is not set +# BR2_KERNEL_HEADERS_3_10 is not set +# BR2_KERNEL_HEADERS_3_12 is not set +# BR2_BINUTILS_VERSION_2_27_X is not set +# BR2_PACKAGE_EEPROG is not set +# BR2_PACKAGE_GNUPG2_GPGV2 is not set +# BR2_PACKAGE_IMX_GPU_VIV_APITRACE is not set +# BR2_PACKAGE_IMX_GPU_VIV_G2D is not set + +# +# Legacy options removed in 2017.11 +# +# BR2_PACKAGE_RFKILL is not set +# BR2_PACKAGE_UTIL_LINUX_RESET is not set +# BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW is not set +# BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND is not set +# BR2_PACKAGE_SEPOLGEN is not set +# BR2_PACKAGE_OPENOBEX_BLUEZ is not set +# BR2_PACKAGE_OPENOBEX_LIBUSB is not set +# BR2_PACKAGE_OPENOBEX_APPS is not set +# BR2_PACKAGE_OPENOBEX_SYSLOG is not set +# BR2_PACKAGE_OPENOBEX_DUMP is not set +# BR2_PACKAGE_AICCU is not set +# BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS is not set + +# +# Legacy options removed in 2017.08 +# +# BR2_TARGET_GRUB is not set +# BR2_PACKAGE_SIMICSFS is not set +# BR2_BINUTILS_VERSION_2_26_X is not set +BR2_XTENSA_OVERLAY_DIR="" +BR2_XTENSA_CUSTOM_NAME="" +# BR2_PACKAGE_HOST_MKE2IMG is not set +BR2_TARGET_ROOTFS_EXT2_BLOCKS=0 +BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES=0 +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CDXAPARSE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DATAURISRC is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DCCP is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HDVPARSE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MVE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PATCHDETECT is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL is not set +# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD is not set +# BR2_STRIP_none is not set +# BR2_PACKAGE_BEECRYPT_CPP is not set +# BR2_PACKAGE_SPICE_CLIENT is not set +# BR2_PACKAGE_SPICE_GUI is not set +# BR2_PACKAGE_SPICE_TUNNEL is not set +# BR2_PACKAGE_INPUT_TOOLS is not set +# BR2_PACKAGE_INPUT_TOOLS_INPUTATTACH is not set +# BR2_PACKAGE_INPUT_TOOLS_JSCAL is not set +# BR2_PACKAGE_INPUT_TOOLS_JSTEST is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 is not set +# BR2_GCC_VERSION_4_8_X is not set + +# +# Legacy options removed in 2017.05 +# +# BR2_PACKAGE_SUNXI_MALI_R2P4 is not set +# BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT is not set +# BR2_PACKAGE_NODEJS_MODULES_EXPRESS is not set +# BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL is not set +# BR2_PACKAGE_OPENOCD_FT2XXX is not set +# BR2_PACKAGE_KODI_RTMPDUMP is not set +# BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN is not set +# BR2_PACKAGE_PORTMAP is not set +# BR2_BINUTILS_VERSION_2_25_X is not set +# BR2_TOOLCHAIN_BUILDROOT_INET_RPC is not set +BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=0 +# BR2_PACKAGE_SYSTEMD_KDBUS is not set +# BR2_PACKAGE_POLARSSL is not set +# BR2_NBD_CLIENT is not set +# BR2_NBD_SERVER is not set +# BR2_PACKAGE_GMOCK is not set +# BR2_KERNEL_HEADERS_4_8 is not set +# BR2_KERNEL_HEADERS_3_18 is not set +# BR2_GLIBC_VERSION_2_22 is not set + +# +# Legacy options removed in 2017.02 +# +# BR2_PACKAGE_PERL_DB_FILE is not set +# BR2_KERNEL_HEADERS_4_7 is not set +# BR2_KERNEL_HEADERS_4_6 is not set +# BR2_KERNEL_HEADERS_4_5 is not set +# BR2_KERNEL_HEADERS_3_14 is not set +# BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS is not set +# BR2_UCLIBC_INSTALL_TEST_SUITE is not set +# BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX is not set +# BR2_PACKAGE_MAKEDEVS is not set +# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A is not set +# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE is not set +# BR2_PACKAGE_SNOWBALL_HDMISERVICE is not set +# BR2_PACKAGE_SNOWBALL_INIT is not set +# BR2_GDB_VERSION_7_9 is not set + +# +# Legacy options removed in 2016.11 +# +# BR2_PACKAGE_PHP_SAPI_CLI_CGI is not set +# BR2_PACKAGE_PHP_SAPI_CLI_FPM is not set +# BR2_PACKAGE_WVSTREAMS is not set +# BR2_PACKAGE_WVDIAL is not set +# BR2_PACKAGE_WEBKITGTK24 is not set +# BR2_PACKAGE_TORSMO is not set +# BR2_PACKAGE_SSTRIP is not set +# BR2_KERNEL_HEADERS_4_3 is not set +# BR2_KERNEL_HEADERS_4_2 is not set +# BR2_PACKAGE_KODI_ADDON_XVDR is not set +# BR2_PACKAGE_IPKG is not set +# BR2_GCC_VERSION_4_7_X is not set +# BR2_BINUTILS_VERSION_2_24_X is not set +# BR2_PACKAGE_WESTON_RPI is not set +# BR2_LINUX_KERNEL_TOOL_CPUPOWER is not set +# BR2_LINUX_KERNEL_TOOL_PERF is not set +# BR2_LINUX_KERNEL_TOOL_SELFTESTS is not set +# BR2_GCC_VERSION_4_8_ARC is not set +# BR2_KERNEL_HEADERS_4_0 is not set +# BR2_KERNEL_HEADERS_3_19 is not set +# BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS is not set +# BR2_PACKAGE_ELEMENTARY is not set +# BR2_LINUX_KERNEL_CUSTOM_LOCAL is not set + +# +# Legacy options removed in 2016.08 +# +# BR2_PACKAGE_EFL_JP2K is not set +# BR2_PACKAGE_SYSTEMD_COMPAT is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER is not set +# BR2_PACKAGE_LIBFSLVPUWRAP is not set +# BR2_PACKAGE_LIBFSLPARSER is not set +# BR2_PACKAGE_LIBFSLCODEC is not set +# BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT is not set +# BR2_PTHREADS_OLD is not set +# BR2_BINUTILS_VERSION_2_23_X is not set +# BR2_TOOLCHAIN_BUILDROOT_EGLIBC is not set +# BR2_GDB_VERSION_7_8 is not set + +# +# Legacy options removed in 2016.05 +# +# BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL is not set +# BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP is not set +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC is not set +# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 is not set +# BR2_x86_i386 is not set +# BR2_PACKAGE_QT5QUICK1 is not set +BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR="" +# BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID is not set +# BR2_KERNEL_HEADERS_3_17 is not set +# BR2_GDB_VERSION_7_7 is not set +# BR2_PACKAGE_FOOMATIC_FILTERS is not set +# BR2_PACKAGE_SAMBA is not set +# BR2_PACKAGE_KODI_WAVPACK is not set +# BR2_PACKAGE_KODI_RSXS is not set +# BR2_PACKAGE_KODI_GOOM is not set +# BR2_PACKAGE_SYSTEMD_ALL_EXTRAS is not set +# BR2_GCC_VERSION_4_5_X is not set +# BR2_PACKAGE_SQLITE_READLINE is not set + +# +# Legacy options removed in 2016.02 +# +# BR2_PACKAGE_DOVECOT_BZIP2 is not set +# BR2_PACKAGE_DOVECOT_ZLIB is not set +# BR2_PACKAGE_E2FSPROGS_FINDFS is not set +# BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL is not set +# BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE is not set +# BR2_PACKAGE_OPENPOWERLINK_LIBPCAP is not set +# BR2_LINUX_KERNEL_SAME_AS_HEADERS is not set +# BR2_PACKAGE_CUPS_PDFTOPS is not set +# BR2_KERNEL_HEADERS_3_16 is not set +# BR2_PACKAGE_PYTHON_PYXML is not set +# BR2_ENABLE_SSP is not set +# BR2_PACKAGE_DIRECTFB_CLE266 is not set +# BR2_PACKAGE_DIRECTFB_UNICHROME is not set +# BR2_PACKAGE_LIBELEMENTARY is not set +# BR2_PACKAGE_LIBEINA is not set +# BR2_PACKAGE_LIBEET is not set +# BR2_PACKAGE_LIBEVAS is not set +# BR2_PACKAGE_LIBECORE is not set +# BR2_PACKAGE_LIBEDBUS is not set +# BR2_PACKAGE_LIBEFREET is not set +# BR2_PACKAGE_LIBEIO is not set +# BR2_PACKAGE_LIBEMBRYO is not set +# BR2_PACKAGE_LIBEDJE is not set +# BR2_PACKAGE_LIBETHUMB is not set +# BR2_PACKAGE_INFOZIP is not set +# BR2_BR2_PACKAGE_NODEJS_0_10_X is not set +# BR2_BR2_PACKAGE_NODEJS_0_12_X is not set +# BR2_BR2_PACKAGE_NODEJS_4_X is not set + +# +# Legacy options removed in 2015.11 +# +# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL is not set +# BR2_PACKAGE_MEDIA_CTL is not set +# BR2_PACKAGE_SCHIFRA is not set +# BR2_PACKAGE_ZXING is not set +# BR2_PACKAGE_BLACKBOX is not set +# BR2_KERNEL_HEADERS_3_0 is not set +# BR2_KERNEL_HEADERS_3_11 is not set +# BR2_KERNEL_HEADERS_3_13 is not set +# BR2_KERNEL_HEADERS_3_15 is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE is not set +# BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW is not set +# BR2_PACKAGE_KOBS_NG is not set +# BR2_PACKAGE_SAWMAN is not set +# BR2_PACKAGE_DIVINE is not set + +# +# Legacy options removed in 2015.08 +# +# BR2_PACKAGE_KODI_PVR_ADDONS is not set +# BR2_BINUTILS_VERSION_2_23_2 is not set +# BR2_BINUTILS_VERSION_2_24 is not set +# BR2_BINUTILS_VERSION_2_25 is not set +# BR2_PACKAGE_PERF is not set +# BR2_BINUTILS_VERSION_2_22 is not set +# BR2_PACKAGE_GPU_VIV_BIN_MX6Q is not set +# BR2_TARGET_UBOOT_NETWORK is not set + +# +# External options +# + +# +# TEST_KERNEL_MODULES (in /test/test-kernel-modules) +# + +# +# Kernel Modules +# +BR2_PACKAGE_TEST_MOD=y diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/Config.in b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/Config.in new file mode 100644 index 00000000..1f62708b --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/Config.in @@ -0,0 +1 @@ +source "$BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH/package/kernel-modules/Config.in" \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/external.desc b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/external.desc new file mode 100644 index 00000000..88106d0a --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/external.desc @@ -0,0 +1 @@ +name: TEST_KERNEL_MODULES \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/external.mk b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/external.mk new file mode 100644 index 00000000..94451d3e --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/external.mk @@ -0,0 +1 @@ +include $(sort $(wildcard $(BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH)/package/*/*.mk)) \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/Config.in b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/Config.in new file mode 100644 index 00000000..fe4c80e3 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/Config.in @@ -0,0 +1,3 @@ +menu "Kernel Modules" + source "$BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH/package/kernel-modules/test-mod/Config.in" +endmenu diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/kernel-modules.mk b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/kernel-modules.mk new file mode 100644 index 00000000..6b6aca27 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/kernel-modules.mk @@ -0,0 +1 @@ +include $(sort $(wildcard $(BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH)/package/*/*/*.mk)) \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/Config.in b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/Config.in new file mode 100644 index 00000000..856ad502 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/Config.in @@ -0,0 +1,5 @@ +config BR2_PACKAGE_TEST_MOD + bool "test-mod" + depends on BR2_LINUX_KERNEL + help + Test kernel module for TSFFS fuzzing \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/Makefile b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/Makefile new file mode 100644 index 00000000..10caf512 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/Makefile @@ -0,0 +1,9 @@ +obj-m += $(addsuffix .o, $(notdir $(basename $(wildcard $(BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH)/package/kernel-modules/test-mod/*.c)))) + +.PHONY: all clean + +all: + $(MAKE) -C '/lib/modules/$(shell uname -r)/build' M='$(PWD)' modules + +clean: + $(MAKE) -C '$(LINUX_DIR)' M='$(PWD)' clean \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/test-mod.c b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/test-mod.c new file mode 100644 index 00000000..263cb714 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/test-mod.c @@ -0,0 +1,183 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "tsffs-gcc-riscv64.h" + +#define MAJOR_NUM 100 +#define IOCTL_SET_MSG _IOW(MAJOR_NUM, 0, char *) +#define IOCTL_GET_MSG _IOR(MAJOR_NUM, 1, char *) +#define IOCTL_GET_NTH_BYTE _IOWR(MAJOR_NUM, 2, int) +#define DEVICE_FILE_NAME "char_dev" +#define DEVICE_PATH "/dev/char_dev" +#define SUCCESS 0 +#define DEVICE_NAME "char_dev" +#define BUF_LEN 80 + +enum { + CDEV_NOT_USED = 0, + CDEV_EXCLUSIVE_OPEN = 1, +}; + +static atomic_t already_open = ATOMIC_INIT(CDEV_NOT_USED); +static char message[BUF_LEN + 1]; +static struct class *cls; + +static int device_open(struct inode *inode, struct file *file) { + pr_info("device_open(%p)\n", file); + + try_module_get(THIS_MODULE); + return SUCCESS; +} + +static int device_release(struct inode *inode, struct file *file) { + pr_info("device_release(%p,%p)\n", inode, file); + + module_put(THIS_MODULE); + return SUCCESS; +} +static ssize_t device_read(struct file *file, char __user *buffer, + size_t length, loff_t *offset) { + int bytes_read = 0; + const char *message_ptr = message; + + if (!*(message_ptr + *offset)) { + *offset = 0; + return 0; + } + + message_ptr += *offset; + + while (length && *message_ptr) { + put_user(*(message_ptr++), buffer++); + length--; + bytes_read++; + } + + pr_info("Read %d bytes, %ld left\n", bytes_read, length); + + *offset += bytes_read; + + return bytes_read; +} + +void check(char *buffer) { + if (!strcmp(buffer, "fuzzing!")) { + // Cause a crash + char *x = NULL; + *x = 0; + } +} + +static ssize_t device_write(struct file *file, const char __user *buffer, + size_t length, loff_t *offset) { + int i; + + pr_info("device_write(%p,%p,%ld)", file, buffer, length); + + for (i = 0; i < length && i < BUF_LEN; i++) { + get_user(message[i], buffer + i); + } + + size_t size = BUF_LEN; + size_t *size_ptr = &size; + + HARNESS_START(message, size_ptr); + + check(message); + + HARNESS_STOP(); + + return i; +} + +static long device_ioctl(struct file *file, unsigned int ioctl_num, + unsigned long ioctl_param) { + int i; + long ret = SUCCESS; + + if (atomic_cmpxchg(&already_open, CDEV_NOT_USED, CDEV_EXCLUSIVE_OPEN)) { + return -EBUSY; + } + + switch (ioctl_num) { + case IOCTL_SET_MSG: { + char __user *tmp = (char __user *)ioctl_param; + char ch; + + get_user(ch, tmp); + + for (i = 0; ch && i < BUF_LEN; i++, tmp++) { + get_user(ch, tmp); + } + + device_write(file, (char __user *)ioctl_param, i, NULL); + break; + } + case IOCTL_GET_MSG: { + loff_t offset = 0; + i = device_read(file, (char __user *)ioctl_param, 99, &offset); + put_user('\0', (char __user *)ioctl_param + i); + break; + } + case IOCTL_GET_NTH_BYTE: + if (ioctl_param > BUF_LEN) { + return -EINVAL; + } + + ret = (long)message[ioctl_param]; + + break; + } + + atomic_set(&already_open, CDEV_NOT_USED); + + return ret; +} + +static struct file_operations fops = { + .read = device_read, + .write = device_write, + .unlocked_ioctl = device_ioctl, + .open = device_open, + .release = device_release, +}; + +static int __init chardev2_init(void) { + int ret_val = register_chrdev(MAJOR_NUM, DEVICE_NAME, &fops); + + if (ret_val < 0) { + pr_alert("%s failed with %d\n", "Sorry, registering the character device ", + ret_val); + return ret_val; + } + + cls = class_create(DEVICE_FILE_NAME); + device_create(cls, NULL, MKDEV(MAJOR_NUM, 0), NULL, DEVICE_FILE_NAME); + + pr_info("Device created on /dev/%s\n", DEVICE_FILE_NAME); + + return 0; +} + +static void __exit chardev2_exit(void) { + device_destroy(cls, MKDEV(MAJOR_NUM, 0)); + class_destroy(cls); + + unregister_chrdev(MAJOR_NUM, DEVICE_NAME); +} + +module_init(chardev2_init); +module_exit(chardev2_exit); + +MODULE_LICENSE("GPL"); \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/test-mod.mk b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/test-mod.mk new file mode 100644 index 00000000..8e47d5bf --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/test-mod.mk @@ -0,0 +1,12 @@ +################################################################################ +# +# test-mod +# +################################################################################ + +TEST_MOD_VERSION = 1.0 +TEST_MOD_SITE = $(BR2_EXTERNAL_TEST_KERNEL_MODULES_PATH)/package/kernel-modules/test-mod +TEST_MOD_SITE_METHOD = local + +$(eval $(kernel-module)) +$(eval $(generic-package)) \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/tsffs-gcc-riscv64.h b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/tsffs-gcc-riscv64.h new file mode 100644 index 00000000..24243dcc --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-kernel-modules/package/kernel-modules/test-mod/tsffs-gcc-riscv64.h @@ -0,0 +1,42 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +#define __srai_extended(value, testcase_ptr, size_ptr) \ + __asm__ __volatile__("mv a0, %0; mv a1, %1; srai zero, zero, %2" \ + : \ + : "r"(testcase_ptr), "r"(size_ptr), "I"(value) \ + : "a0", "a1"); + +#define __srai(value) \ + __asm__ __volatile__("srai zero, zero, %0" : : "I"(value) :) + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + __srai_extended(start, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + __srai(stop); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-mod-userspace.c b/modules/tsffs/tests/targets/minimal-riscv-64/test-mod-userspace.c new file mode 100644 index 00000000..0257ddc7 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-mod-userspace.c @@ -0,0 +1,89 @@ +#include +#include +#include +#include +#include +#include + +#include "tsffs-gcc-riscv64.h" + +#define MAJOR_NUM 100 +#define IOCTL_SET_MSG _IOW(MAJOR_NUM, 0, char *) +#define IOCTL_GET_MSG _IOR(MAJOR_NUM, 1, char *) +#define IOCTL_GET_NTH_BYTE _IOWR(MAJOR_NUM, 2, int) +#define DEVICE_FILE_NAME "char_dev" +#define DEVICE_PATH "/dev/char_dev" + +int ioctl_set_msg(int file_desc, char *message) { + int ret_val; + + ret_val = ioctl(file_desc, IOCTL_SET_MSG, message); + + if (ret_val < 0) { + printf("ioctl_set_msg failed:%d\n", ret_val); + } + + return ret_val; +} + +int ioctl_get_msg(int file_desc) { + int ret_val; + char message[100] = {0}; + + ret_val = ioctl(file_desc, IOCTL_GET_MSG, message); + + if (ret_val < 0) { + printf("ioctl_get_msg failed:%d\n", ret_val); + } + printf("get_msg message:%s", message); + + return ret_val; +} + +int ioctl_get_nth_byte(int file_desc) { + int i, c; + + printf("get_nth_byte message:"); + + i = 0; + do { + c = ioctl(file_desc, IOCTL_GET_NTH_BYTE, i++); + + if (c < 0) { + printf("\nioctl_get_nth_byte failed at the %d'th byte:\n", i); + return c; + } + + putchar(c); + } while (c != 0); + + return 0; +} + +int main(void) { + int file_desc, ret_val; + char msg[80] = {0}; + + file_desc = open(DEVICE_PATH, O_RDWR); + if (file_desc < 0) { + printf("Can't open device file: %s, error:%d\n", DEVICE_PATH, file_desc); + exit(EXIT_FAILURE); + } + + size_t msg_size = 80; + size_t *msg_size_ptr = &msg_size; + + __arch_harness_start(3, msg, msg_size_ptr); + + ret_val = ioctl_set_msg(file_desc, msg); + + __arch_harness_stop(4); + + if (ret_val) goto error; + + close(file_desc); + return 0; +error: + close(file_desc); + exit(EXIT_FAILURE); +} \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test-mod.c b/modules/tsffs/tests/targets/minimal-riscv-64/test-mod.c new file mode 100644 index 00000000..a6bd9c57 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test-mod.c @@ -0,0 +1,79 @@ +#include +#include +#include +#include +#include +#include + +#define MAJOR_NUM 100 +#define IOCTL_SET_MSG _IOW(MAJOR_NUM, 0, char *) +#define IOCTL_GET_MSG _IOR(MAJOR_NUM, 1, char *) +#define IOCTL_GET_NTH_BYTE _IOWR(MAJOR_NUM, 2, int) +#define DEVICE_FILE_NAME "char_dev" +#define DEVICE_PATH "/dev/char_dev" + +int ioctl_set_msg(int file_desc, char *message) { + int ret_val; + + ret_val = ioctl(file_desc, IOCTL_SET_MSG, message); + + if (ret_val < 0) { + printf("ioctl_set_msg failed:%d\n", ret_val); + } + + return ret_val; +} + +int ioctl_get_msg(int file_desc) { + int ret_val; + char message[100] = {0}; + + ret_val = ioctl(file_desc, IOCTL_GET_MSG, message); + + if (ret_val < 0) { + printf("ioctl_get_msg failed:%d\n", ret_val); + } + printf("get_msg message:%s", message); + + return ret_val; +} + +int ioctl_get_nth_byte(int file_desc) { + int i, c; + + printf("get_nth_byte message:"); + + i = 0; + do { + c = ioctl(file_desc, IOCTL_GET_NTH_BYTE, i++); + + if (c < 0) { + printf("\nioctl_get_nth_byte failed at the %d'th byte:\n", i); + return c; + } + + putchar(c); + } while (c != 0); + + return 0; +} + +int main(void) { + int file_desc, ret_val; + char *msg = "AAAAAAAA\n"; + + file_desc = open(DEVICE_PATH, O_RDWR); + if (file_desc < 0) { + printf("Can't open device file: %s, error:%d\n", DEVICE_PATH, file_desc); + exit(EXIT_FAILURE); + } + + ret_val = ioctl_set_msg(file_desc, msg); + if (ret_val) goto error; + + close(file_desc); + return 0; +error: + close(file_desc); + exit(EXIT_FAILURE); +} \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/test.c b/modules/tsffs/tests/targets/minimal-riscv-64/test.c new file mode 100644 index 00000000..0596f6e4 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/test.c @@ -0,0 +1,69 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#include +#include +#include + +#include "tsffs-gcc-riscv64.h" + +const char *password = "fuzzing!"; + +int check(char *buffer) { + if ((((char *)buffer)[0]) == password[0]) { + if ((((char *)buffer)[1]) == password[1]) { + if ((((char *)buffer)[2]) == password[2]) { + if ((((char *)buffer)[3]) == password[3]) { + if ((((char *)buffer)[4]) == password[4]) { + if ((((char *)buffer)[5]) == password[5]) { + if ((((char *)buffer)[6]) == password[6]) { + if ((((char *)buffer)[7]) == password[7]) { + printf("All characters were correct!\n"); + uint8_t *ptr = (uint8_t *)0xffffffffffffffff; + *ptr = 0; + } + } + } + } + } + } + } + } + + return 0; +} + +int main() { + // We have a size and a buffer of that size. The address of the buffer and the + // address of the size variable will be passed to the fuzzer. On the first + // start harness, the fuzzer will save the initial value of the size and the + // addresses of both variables. On each iteration of the fuzzer, up to the + // initial size bytes of fuzzer input data will be written to the buffer, and + // the current testcase size in bytes will be written to the size variable. + char buffer[8] = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; + size_t size = sizeof(buffer); + size_t *size_ptr = &size; + + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); + + // printf("Running test...\n"); + + HARNESS_START(buffer, size_ptr); + + // NOTE: Because of line buffering at the simics level, this will be extremely + // garbled. + printf("sz: %zu\ntc: ", size); + + for (size_t i = 0; i < size; i++) { + printf("%02x", buffer[i]); + } + + printf("\n"); + + check(buffer); + + HARNESS_STOP(); + + return 0; +} \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-riscv-64/tsffs-gcc-riscv64.h b/modules/tsffs/tests/targets/minimal-riscv-64/tsffs-gcc-riscv64.h new file mode 100644 index 00000000..24243dcc --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-riscv-64/tsffs-gcc-riscv64.h @@ -0,0 +1,42 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +#define __srai_extended(value, testcase_ptr, size_ptr) \ + __asm__ __volatile__("mv a0, %0; mv a1, %1; srai zero, zero, %2" \ + : \ + : "r"(testcase_ptr), "r"(size_ptr), "I"(value) \ + : "a0", "a1"); + +#define __srai(value) \ + __asm__ __volatile__("srai zero, zero, %0" : : "I"(value) :) + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + __srai_extended(start, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + __srai(stop); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86-user/build.ninja b/modules/tsffs/tests/targets/minimal-x86-user/build.ninja new file mode 100644 index 00000000..52bf0e2b --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86-user/build.ninja @@ -0,0 +1,8 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +rule cc + command = clang $cflags -o $out $in + +build test: cc test.c + cflags = -m32 -static -O0 -I ../../../../../harness/ diff --git a/modules/tsffs/tests/targets/minimal-x86-user/test.c b/modules/tsffs/tests/targets/minimal-x86-user/test.c new file mode 100644 index 00000000..704cb6e2 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86-user/test.c @@ -0,0 +1,69 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +#include +#include +#include +#include + +#include "tsffs-gcc-x86.h" + +const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; +const char *password = "fuzzing!"; + +int check(char *buffer) { + if ((((char *)buffer)[0]) == password[0]) { + if ((((char *)buffer)[1]) == password[1]) { + if ((((char *)buffer)[2]) == password[2]) { + if ((((char *)buffer)[3]) == password[3]) { + if ((((char *)buffer)[4]) == password[4]) { + if ((((char *)buffer)[5]) == password[5]) { + if ((((char *)buffer)[6]) == password[6]) { + if ((((char *)buffer)[7]) == password[7]) { + puts("All characters were correct!"); + uint8_t *ptr = (uint8_t *)0xffffffff; + *ptr = 0; + } + } + } + } + } + } + } + } + + return 0; +} + +// The entrypoint of our EFI application +int main() { + // We have a size and a buffer of that size. The address of the buffer and the + // address of the size variable will be passed to the fuzzer. On the first + // start harness, the fuzzer will save the initial value of the size and the + // addresses of both variables. On each iteration of the fuzzer, up to the + // initial size bytes of fuzzer input data will be written to the buffer, and + // the current testcase size in bytes will be written to the size variable. + char buffer[8] = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; + size_t size = sizeof(buffer); + + printf("%p %p (%zu)\n", buffer, &size, size); + fflush(stdout); + sleep(3); + + HARNESS_START(buffer, &size); + + printf("%p %p (%zu)\n", buffer, &size, size); + + for (size_t i = 0; i < size; i++) { + printf("%02x", (unsigned int)buffer[i]); + } + + printf("\n"); + + check(buffer); + + HARNESS_STOP(); + + return 0; +} \ No newline at end of file diff --git a/examples/hello-world/Dockerfile b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/Dockerfile similarity index 90% rename from examples/hello-world/Dockerfile rename to modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/Dockerfile index b4f1261e..882fed26 100644 --- a/examples/hello-world/Dockerfile +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/Dockerfile @@ -1,6 +1,8 @@ +# hadolint global ignore=DL3008 FROM ghcr.io/tianocore/containers/ubuntu-22-build:a0dd931 +ENV DEBIAN_FRONTEND=noninteractive -SHELL ["/bin/bash", "-c"] +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ENV EDK2_REPO_URL "https://github.com/tianocore/edk2.git" ENV EDK2_REPO_HASH "d189de3b0a2f44f4c9b87ed120be16569ea19b51" diff --git a/tsffs_module/stubs/tsffs_module/module_load.py b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/build.ninja similarity index 50% rename from tsffs_module/stubs/tsffs_module/module_load.py rename to modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/build.ninja index 6a16273c..5a8fd3e7 100644 --- a/tsffs_module/stubs/tsffs_module/module_load.py +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/build.ninja @@ -1,2 +1,7 @@ # Copyright (C) 2023 Intel Corporation # SPDX-License-Identifier: Apache-2.0 + +rule runbuild + command = bash build.sh + +build HelloWorld.efi: runbuild diff --git a/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/build.sh b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/build.sh new file mode 100755 index 00000000..d18932ff --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/build.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +# Build the HelloWorld.efi module and copy it into the resource directory for the example +# this only needs to be run if you want to modify the source code for the HelloWorld.efi module, +# otherwise, the EFI is included in the source tree for ease of use + +SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) +IMAGE_NAME="edk2-build-tsffs-gcc-x86_64-test-breakpoint" +CONTAINER_UID=$(echo "${RANDOM}" | sha256sum | head -c 8) +CONTAINER_NAME="${IMAGE_NAME}-tmp-${CONTAINER_UID}" + +pushd "${SCRIPT_DIR}" || exit 1 + +cp "${SCRIPT_DIR}/../../../../../harness/tsffs-gcc-x86_64.h" "${SCRIPT_DIR}/src/tsffs-gcc-x86_64.h" + +docker build -t "${IMAGE_NAME}" -f "Dockerfile" . +docker create --name "${CONTAINER_NAME}" "${IMAGE_NAME}" +docker cp \ + "${CONTAINER_NAME}:/edk2/HelloWorld/Build/HelloWorld/DEBUG_GCC5/X64/HelloWorld.efi" \ + "${SCRIPT_DIR}/test.efi" +docker rm -f "${CONTAINER_NAME}" diff --git a/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.c b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.c new file mode 100644 index 00000000..c6a4c03a --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.c @@ -0,0 +1,54 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +/** @file + This sample application bases on HelloWorld PCD setting + to print "UEFI Hello World!" to the UEFI Console. + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include +#include +#include +#include +#include +#include +#include + +#include "tsffs-gcc-x86_64.h" + +/** + The user Entry Point for Application. The user code starts with this function + as the real entry point for the application. + @param[in] ImageHandle The firmware allocated handle for the EFI image. + @param[in] SystemTable A pointer to the EFI System Table. + @retval EFI_SUCCESS The entry point is executed successfully. + @retval other Some error occurs when executing this entry point. +**/ +EFI_STATUS +EFIAPI +UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { + UINTN input_max_size = 0x1000; + UINTN input_size = input_max_size; + EFI_PHYSICAL_ADDRESS address = 0x4000000; + EFI_STATUS status; + status = gBS->AllocatePages(AllocateAddress, EfiRuntimeServicesCode, + EFI_SIZE_TO_PAGES(input_max_size), &address); + if (EFI_ERROR(status)) { + return EFI_OUT_OF_RESOURCES; + } + UINT8 *input = (UINT8 *)address; + + HARNESS_START(input, &input_size); + + if (*input == 0x41) { + // Trigger RW breakpoint + SetMem((VOID *)input, input_size, 0x44); + } + + + HARNESS_STOP(); + + return EFI_SUCCESS; +} \ No newline at end of file diff --git a/examples/hello-world/src/HelloWorld.dsc b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.dsc similarity index 100% rename from examples/hello-world/src/HelloWorld.dsc rename to modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.dsc diff --git a/examples/hello-world/src/HelloWorld.inf b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.inf similarity index 100% rename from examples/hello-world/src/HelloWorld.inf rename to modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorld.inf diff --git a/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorldExtra.uni b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorldExtra.uni new file mode 100755 index 00000000..efd53a36 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorldExtra.uni @@ -0,0 +1,13 @@ +// /** @file +// HelloWorld Localized Strings and Content +// +// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_MODULE_NAME +#language en-US +"Hello World Application" + diff --git a/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorldStr.uni b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorldStr.uni new file mode 100644 index 00000000..8bec3428 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/HelloWorldStr.uni @@ -0,0 +1,22 @@ +// /** @file +// Sample UEFI Application Reference EDKII Module. +// +// This is a sample shell application that will print "UEFI Hello World!" to the +// UEFI Console based on PCD setting. +// +// It demos how to use EDKII PCD mechanism to make code more flexible. +// +// Copyright (c) 2016, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +/=# + +#langdef en-US "English" + +#string STR_HELLO_WORLD_HELP_INFORMATION #language en-US "" +".TH HelloWorld 0 "Displays a \"UEFI Hello World!\" string."\r\n" +".SH NAME\r\n" +"HelloWorld application.\r\n" \ No newline at end of file diff --git a/examples/hello-world/src/PlatformBuild.py b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/PlatformBuild.py similarity index 100% rename from examples/hello-world/src/PlatformBuild.py rename to modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/PlatformBuild.py diff --git a/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/tsffs-gcc-x86_64.h b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/tsffs-gcc-x86_64.h new file mode 100644 index 00000000..a3c4ba97 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/src/tsffs-gcc-x86_64.h @@ -0,0 +1,52 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC (0x4711U) +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +/// Trigger a CPUID instruction with RSI and RDI set to specific values. +#define __cpuid_extended2(value, inout_ptr_0, inout_ptr_1) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid" \ + : "=a"(_a) \ + : "a"(value), "D"(inout_ptr_0), "S"(inout_ptr_1) \ + : "rbx", "rcx", "rdx"); + +/// Trigger a CPUID instruction +#define __cpuid(value) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid\n\t" \ + : "=a"(_a) \ + : "a"(value) \ + : "rbx", "rcx", "rdx") + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + unsigned int magic = (start << 0x10U) | MAGIC; \ + __cpuid_extended2(magic, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + unsigned int magic = (stop << 0x10U) | MAGIC; \ + __cpuid(magic); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/test.efi b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/test.efi new file mode 100644 index 00000000..172889dc Binary files /dev/null and b/modules/tsffs/tests/targets/minimal-x86_64-breakpoint-edk2/test.efi differ diff --git a/examples/mini/src/build.ninja b/modules/tsffs/tests/targets/minimal-x86_64-crash/build.ninja similarity index 75% rename from examples/mini/src/build.ninja rename to modules/tsffs/tests/targets/minimal-x86_64-crash/build.ninja index 62471408..a918e66e 100644 --- a/examples/mini/src/build.ninja +++ b/modules/tsffs/tests/targets/minimal-x86_64-crash/build.ninja @@ -12,7 +12,6 @@ rule link rule copy command = cp $in $out -build mini.o: cc mini.c - cflags = -O0 -I ../../../include/ -build mini.efi: link mini.o -build ../rsrc/mini.efi: copy mini.efi +build test.o: cc test.c + cflags = -O0 -I ../../../../../harness/ +build test.efi: link test.o diff --git a/examples/winintrin/src/winintrin.c b/modules/tsffs/tests/targets/minimal-x86_64-crash/test.c similarity index 50% rename from examples/winintrin/src/winintrin.c rename to modules/tsffs/tests/targets/minimal-x86_64-crash/test.c index 99649a2d..896abed7 100644 --- a/examples/winintrin/src/winintrin.c +++ b/modules/tsffs/tests/targets/minimal-x86_64-crash/test.c @@ -4,47 +4,7 @@ #include #include -#define MAGIC 0x4711U -#define MAGIC_STOP 2 -#define MAGIC_START_WININTRIN 3 - -#define __cpuid(level, sublevel, a, b, c, d) \ - __asm__ __volatile__("cpuid\n\t" \ - : "=a"(a), "=b"(b), "=c"(c), "=d"(d) \ - : "a"(level), "c"(sublevel)) - -#define __arch_harness_start(addr_ptr, size_ptr) \ - do { \ - uint32_t a __attribute__((unused)) = 0; \ - uint32_t b __attribute__((unused)) = 0; \ - uint32_t c __attribute__((unused)) = 0; \ - uint32_t d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_START_WININTRIN << 16U) | MAGIC; \ - uint32_t addr_low = (uint32_t)(((uint64_t)(*addr_ptr)) & 0xffffffff); \ - uint32_t addr_hi = (uint32_t)(((uint64_t)(*addr_ptr)) >> 32U); \ - uint32_t size_low = (uint32_t)(((uint64_t)(*size_ptr)) & 0xffffffff); \ - uint32_t size_hi = (uint32_t)(((uint64_t)(*size_ptr)) >> 32U); \ - __cpuid(leaf, addr_low, a, b, c, d); \ - __cpuid(leaf, addr_hi, a, b, c, d); \ - __cpuid(leaf, size_low, a, b, c, d); \ - __cpuid(leaf, size_hi, a, b, c, d); \ - *(uint64_t *)addr_ptr = 0; \ - *(uint64_t *)addr_ptr |= a; \ - *(uint64_t *)addr_ptr |= (((uint64_t)b) << 32U); \ - *(uint64_t *)size_ptr = 0; \ - *(uint64_t *)size_ptr |= c; \ - *(uint64_t *)size_ptr |= (((uint64_t)d) << 32U); \ - } while (0) - -#define __arch_harness_stop() \ - do { \ - uint32_t _a __attribute__((unused)) = 0; \ - uint32_t _b __attribute__((unused)) = 0; \ - uint32_t _c __attribute__((unused)) = 0; \ - uint32_t _d __attribute__((unused)) = 0; \ - uint32_t leaf = (MAGIC_STOP << 16U) | MAGIC; \ - __cpuid(leaf, 0, _a, _b, _c, _d); \ - } while (0) +#include "tsffs-gcc-x86_64.h" typedef struct EfiTableHeader { uint64_t signature; @@ -92,7 +52,7 @@ const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; const char *password = "fuzzing!"; -int Check(int16_t *buffer, EfiSystemTable *SystemTable) { +int Check(char *buffer, EfiSystemTable *SystemTable) { if ((((char *)buffer)[0]) == password[0]) { if ((((char *)buffer)[1]) == password[1]) { if ((((char *)buffer)[2]) == password[2]) { @@ -126,31 +86,20 @@ int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { // addresses of both variables. On each iteration of the fuzzer, up to the // initial size bytes of fuzzer input data will be written to the buffer, and // the current testcase size in bytes will be written to the size variable. - int16_t buffer[0x20]; - int16_t *buffer_ptr = &buffer[0]; - size_t size = sizeof(buffer) - 1; - - __arch_harness_start(&buffer_ptr, &size); - - if (size > sizeof(buffer) - 1) { - SystemTable->conOut->output_string(SystemTable->conOut, - (int16_t *)L"BAD BAD BAD BAD BAD BAD\r\n"); - __arch_harness_stop(); - return 0; - } + char buffer[8] = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; + size_t size = sizeof(buffer); + HARNESS_START(buffer, &size); for (size_t i = 0; i < size; i++) { if (i != 0 && !(i % 8)) { SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); } - int16_t chr = buffer[i]; - int16_t buf[5]; - buf[4] = 0; - buf[0] = hex[chr & 0xf]; - buf[1] = hex[(chr >> 4) & 0xf]; - buf[2] = hex[(chr >> 8) & 0xf]; - buf[3] = hex[(chr >> 12) & 0xf]; + uint8_t chr = buffer[i]; + int16_t buf[3]; + buf[0] = hex[(chr >> 4) & 0xf]; + buf[1] = hex[chr & 0xf]; + buf[2] = 0; SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); } @@ -159,7 +108,12 @@ int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { Check(buffer, SystemTable); - __arch_harness_stop(); + if (*buffer == 0x41) { + uint8_t *ptr = (uint8_t *)0xffffffffffffffff; + *ptr = 0; + } + + HARNESS_STOP(); return 0; } \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-crash/test.efi b/modules/tsffs/tests/targets/minimal-x86_64-crash/test.efi new file mode 100755 index 00000000..3b19e367 Binary files /dev/null and b/modules/tsffs/tests/targets/minimal-x86_64-crash/test.efi differ diff --git a/examples/x509-parse/Dockerfile b/modules/tsffs/tests/targets/minimal-x86_64-edk2/Dockerfile similarity index 62% rename from examples/x509-parse/Dockerfile rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/Dockerfile index 403380be..882fed26 100644 --- a/examples/x509-parse/Dockerfile +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/Dockerfile @@ -1,26 +1,29 @@ +# hadolint global ignore=DL3008 FROM ghcr.io/tianocore/containers/ubuntu-22-build:a0dd931 +ENV DEBIAN_FRONTEND=noninteractive -SHELL ["/bin/bash", "-c"] +SHELL ["/bin/bash", "-o", "pipefail", "-c"] ENV EDK2_REPO_URL "https://github.com/tianocore/edk2.git" ENV EDK2_REPO_HASH "d189de3b0a2f44f4c9b87ed120be16569ea19b51" ENV EDK2_PATH "/edk2" + RUN git clone "${EDK2_REPO_URL}" "${EDK2_PATH}" && \ git -C "${EDK2_PATH}" checkout "${EDK2_REPO_HASH}" && \ python3 -m pip install --no-cache-dir -r "${EDK2_PATH}/pip-requirements.txt" && \ stuart_setup -c "${EDK2_PATH}/.pytool/CISettings.py" TOOL_CHAIN_TAG=GCC5 && \ stuart_update -c "${EDK2_PATH}/.pytool/CISettings.py" TOOL_CHAIN_TAG=GCC5 -COPY src "${EDK2_PATH}/X509Parse/" +COPY src "${EDK2_PATH}/HelloWorld/" -RUN stuart_setup -c "${EDK2_PATH}/X509Parse/PlatformBuild.py" TOOL_CHAIN_TAG=GCC5 && \ - stuart_update -c "${EDK2_PATH}/X509Parse/PlatformBuild.py" TOOL_CHAIN_TAG=GCC5 && \ +RUN stuart_setup -c "${EDK2_PATH}/HelloWorld/PlatformBuild.py" TOOL_CHAIN_TAG=GCC5 && \ + stuart_update -c "${EDK2_PATH}/HelloWorld/PlatformBuild.py" TOOL_CHAIN_TAG=GCC5 && \ python3 "${EDK2_PATH}/BaseTools/Edk2ToolsBuild.py" -t GCC5 WORKDIR "${EDK2_PATH}" RUN source ${EDK2_PATH}/edksetup.sh && \ - ( stuart_build -c ${EDK2_PATH}/X509Parse/PlatformBuild.py TOOL_CHAIN_TAG=GCC5 \ + ( stuart_build -c ${EDK2_PATH}/HelloWorld/PlatformBuild.py TOOL_CHAIN_TAG=GCC5 \ EDK_TOOLS_PATH=${EDK2_PATH}/BaseTools/ \ - || ( cat ${EDK2_PATH}/X509Parse/Build/BUILDLOG.txt && exit 1 ) ) + || ( cat ${EDK2_PATH}/HelloWorld/Build/BUILDLOG.txt && exit 1 ) ) diff --git a/modules/tsffs/tests/targets/minimal-x86_64-edk2/build.ninja b/modules/tsffs/tests/targets/minimal-x86_64-edk2/build.ninja new file mode 100644 index 00000000..5a8fd3e7 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/build.ninja @@ -0,0 +1,7 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +rule runbuild + command = bash build.sh + +build HelloWorld.efi: runbuild diff --git a/examples/hello-world/build.sh b/modules/tsffs/tests/targets/minimal-x86_64-edk2/build.sh similarity index 82% rename from examples/hello-world/build.sh rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/build.sh index 32258a60..c115acb6 100755 --- a/examples/hello-world/build.sh +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/build.sh @@ -8,17 +8,17 @@ # otherwise, the EFI is included in the source tree for ease of use SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) -IMAGE_NAME="edk2-build-hello-world" +IMAGE_NAME="edk2-build-tsffs-gcc-x86_64-test" CONTAINER_UID=$(echo "${RANDOM}" | sha256sum | head -c 8) CONTAINER_NAME="${IMAGE_NAME}-tmp-${CONTAINER_UID}" pushd "${SCRIPT_DIR}" || exit 1 -cp "${SCRIPT_DIR}/../../include/tsffs.h" "${SCRIPT_DIR}/src/tsffs.h" +cp "${SCRIPT_DIR}/../../../../../harness/tsffs-gcc-x86_64.h" "${SCRIPT_DIR}/src/tsffs-gcc-x86_64.h" docker build -t "${IMAGE_NAME}" -f "Dockerfile" . docker create --name "${CONTAINER_NAME}" "${IMAGE_NAME}" docker cp \ "${CONTAINER_NAME}:/edk2/HelloWorld/Build/HelloWorld/DEBUG_GCC5/X64/HelloWorld.efi" \ - "${SCRIPT_DIR}/rsrc/HelloWorld.efi" + "${SCRIPT_DIR}/test.efi" docker rm -f "${CONTAINER_NAME}" diff --git a/examples/hello-world/src/HelloWorld.c b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.c similarity index 91% rename from examples/hello-world/src/HelloWorld.c rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.c index 8f480f12..c15b959b 100644 --- a/examples/hello-world/src/HelloWorld.c +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.c @@ -16,7 +16,7 @@ #include #include -#include "tsffs.h" +#include "tsffs-gcc-x86_64.h" /** The user Entry Point for Application. The user code starts with this function @@ -29,7 +29,7 @@ EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { - UINTN input_max_size = 0x1000; + UINTN input_max_size = 64; UINTN input_size = input_max_size; UINT8 *input = (UINT8 *)AllocatePages(EFI_SIZE_TO_PAGES(input_max_size)); @@ -37,9 +37,9 @@ UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { return EFI_OUT_OF_RESOURCES; } - SetMem((VOID *)input, input_max_size, 0); + SetMem((VOID *)input, input_max_size, 0x44); - HARNESS_START(&input, &input_size); + HARNESS_START(input, &input_size); switch (*input) { case 'A': { @@ -63,7 +63,7 @@ UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { } } - HARNESS_STOP_EXTENDED(input); + HARNESS_STOP(); if (input) { FreePages(input, EFI_SIZE_TO_PAGES(input_max_size)); diff --git a/examples/x509-parse/src/X509Parse.dsc b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.dsc similarity index 71% rename from examples/x509-parse/src/X509Parse.dsc rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.dsc index a7b0931a..419b1395 100644 --- a/examples/x509-parse/src/X509Parse.dsc +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.dsc @@ -1,9 +1,9 @@ [Defines] - PLATFORM_NAME = X509Parse + PLATFORM_NAME = HelloWorld PLATFORM_GUID = 0458dade-8b6e-4e45-b773-1b27cbda3e06 PLATFORM_VERSION = 0.01 DSC_SPECIFICATION = 0x00010006 - OUTPUT_DIRECTORY = Build/X509Parse + OUTPUT_DIRECTORY = Build/HelloWorld SUPPORTED_ARCHITECTURES = IA32|X64|ARM|AARCH64 BUILD_TARGETS = DEBUG|RELEASE|NOOPT SKUID_IDENTIFIER = DEFAULT @@ -12,7 +12,6 @@ DEFINE DEBUG_PROPERTY_MASK = 0 !include MdePkg/MdeLibs.dsc.inc -!include CryptoPkg/CryptoPkg.dsc [PcdsFeatureFlag] @@ -21,22 +20,16 @@ gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL) [LibraryClasses] - BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf BaseLib|MdePkg/Library/BaseLib/BaseLib.inf BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf - SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf - DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf - IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf - MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf - OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf - PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf - UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf - UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf - IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf - HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf # Include the Debug Library if needed !if $(DEBUG_ENABLE_OUTPUT) @@ -46,11 +39,5 @@ DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf !endif ## DEBUG_ENABLE_OUTPUT - !if $(CPU_TIMER_LIB_ENABLE) == TRUE && $(UNIVERSAL_PAYLOAD) == TRUE - TimerLib|UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf - !else - TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf - !endif - [Components] - X509Parse/X509Parse.inf \ No newline at end of file + HelloWorld/HelloWorld.inf \ No newline at end of file diff --git a/examples/x509-parse/src/X509Parse.inf b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.inf similarity index 63% rename from examples/x509-parse/src/X509Parse.inf rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.inf index b55b0feb..d6148ebb 100755 --- a/examples/x509-parse/src/X509Parse.inf +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorld.inf @@ -3,8 +3,8 @@ [Defines] INF_VERSION = 0x00010005 - BASE_NAME = X509Parse - MODULE_UNI_FILE = X509Parse.uni + BASE_NAME = HelloWorld + MODULE_UNI_FILE = HelloWorld.uni FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2116 MODULE_TYPE = UEFI_APPLICATION VERSION_STRING = 1.0 @@ -22,17 +22,25 @@ # [Sources] - X509Parse.c + HelloWorld.c + HelloWorldStr.uni [Packages] # MdePkg.dec provides the Pcds used below MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec - CryptoPkg/CryptoPkg.dec [LibraryClasses] UefiApplicationEntryPoint UefiLib PcdLib - BaseCryptLib - SynchronizationLib \ No newline at end of file + +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable ## CONSUMES + +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintString ## SOMETIMES_CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes ## SOMETIMES_CONSUMES + +[UserExtensions.TianoCore."ExtraFiles"] + HelloWorldExtra.uni \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorldExtra.uni b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorldExtra.uni new file mode 100755 index 00000000..efd53a36 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorldExtra.uni @@ -0,0 +1,13 @@ +// /** @file +// HelloWorld Localized Strings and Content +// +// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_MODULE_NAME +#language en-US +"Hello World Application" + diff --git a/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorldStr.uni b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorldStr.uni new file mode 100644 index 00000000..8bec3428 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/HelloWorldStr.uni @@ -0,0 +1,22 @@ +// /** @file +// Sample UEFI Application Reference EDKII Module. +// +// This is a sample shell application that will print "UEFI Hello World!" to the +// UEFI Console based on PCD setting. +// +// It demos how to use EDKII PCD mechanism to make code more flexible. +// +// Copyright (c) 2016, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +/=# + +#langdef en-US "English" + +#string STR_HELLO_WORLD_HELP_INFORMATION #language en-US "" +".TH HelloWorld 0 "Displays a \"UEFI Hello World!\" string."\r\n" +".SH NAME\r\n" +"HelloWorld application.\r\n" \ No newline at end of file diff --git a/examples/x509-parse/src/PlatformBuild.py b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/PlatformBuild.py similarity index 87% rename from examples/x509-parse/src/PlatformBuild.py rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/src/PlatformBuild.py index 0782d370..6951f00a 100755 --- a/examples/x509-parse/src/PlatformBuild.py +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/PlatformBuild.py @@ -2,7 +2,8 @@ # SPDX-License-Identifier: Apache-2.0 """ -Script to build X509Parse firmware + +Script to build HelloWorld firmware See: https://www.tianocore.org/edk2-pytool-extensions/integrate/porting/ for more info @@ -22,11 +23,11 @@ from edk2toollib.utility_functions import GetHostInfo -class X509ParseSettingsManager( +class HelloWorldSettingsManager( UpdateSettingsManager, SetupSettingsManager, BuildSettingsManager ): """ - Settings manager for X509Parse EFI application build + Settings manager for HelloWorld EFI application build """ def __init__(self) -> None: @@ -48,14 +49,14 @@ def GetActiveScopes(self) -> List[str]: """ Returns scope names this settings manager will remain active for """ - return ["X509Parse"] + return ["HelloWorld"] def GetPackagesSupported(self) -> Iterable[str]: """ Returns paths from the edk2 repository root of edk2 packages supported by this build """ - return ("X509Parse",) + return ("HelloWorld",) def GetRequiredSubmodules(self) -> Iterable[RequiredSubmodule]: """ @@ -85,7 +86,7 @@ def GetPackagesPath(self) -> Iterable[str]: class PlatformBuilder(UefiBuilder): """ - Platform build for X509Parse module + Platform build for HelloWorld module """ def SetPlatformEnv(self) -> int: @@ -93,9 +94,11 @@ def SetPlatformEnv(self) -> int: Set environment variables for the platform """ self.env.SetValue( - "ACTIVE_PLATFORM", "X509Parse/X509Parse.dsc", "Platform hardcoded" + "ACTIVE_PLATFORM", + "HelloWorld/HelloWorld.dsc", + "Platform hardcoded", ) - self.env.SetValue("PRODUCT_NAME", "X509Parse", "Platform hardcoded") + self.env.SetValue("PRODUCT_NAME", "HelloWorld", "Platform hardcoded") self.env.SetValue("TARGET_ARCH", "X64", "Platform hardcoded") os = GetHostInfo().os if os.lower() == "windows": diff --git a/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/tsffs-gcc-x86_64.h b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/tsffs-gcc-x86_64.h new file mode 100644 index 00000000..a3c4ba97 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-edk2/src/tsffs-gcc-x86_64.h @@ -0,0 +1,52 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC (0x4711U) +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +/// Trigger a CPUID instruction with RSI and RDI set to specific values. +#define __cpuid_extended2(value, inout_ptr_0, inout_ptr_1) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid" \ + : "=a"(_a) \ + : "a"(value), "D"(inout_ptr_0), "S"(inout_ptr_1) \ + : "rbx", "rcx", "rdx"); + +/// Trigger a CPUID instruction +#define __cpuid(value) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid\n\t" \ + : "=a"(_a) \ + : "a"(value) \ + : "rbx", "rcx", "rdx") + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + unsigned int magic = (start << 0x10U) | MAGIC; \ + __cpuid_extended2(magic, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + unsigned int magic = (stop << 0x10U) | MAGIC; \ + __cpuid(magic); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/examples/hello-world/rsrc/HelloWorld.efi b/modules/tsffs/tests/targets/minimal-x86_64-edk2/test.efi similarity index 56% rename from examples/hello-world/rsrc/HelloWorld.efi rename to modules/tsffs/tests/targets/minimal-x86_64-edk2/test.efi index 54dc13f7..522f7c85 100644 Binary files a/examples/hello-world/rsrc/HelloWorld.efi and b/modules/tsffs/tests/targets/minimal-x86_64-edk2/test.efi differ diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/Dockerfile b/modules/tsffs/tests/targets/minimal-x86_64-timeout/Dockerfile new file mode 100644 index 00000000..ec30998f --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/Dockerfile @@ -0,0 +1,30 @@ +# hadolint global ignore=DL3008 +FROM ghcr.io/tianocore/containers/ubuntu-22-build:a0dd931 + +ENV DEBIAN_FRONTEND=noninteractive + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +ENV EDK2_REPO_URL "https://github.com/tianocore/edk2.git" +ENV EDK2_REPO_HASH "d189de3b0a2f44f4c9b87ed120be16569ea19b51" +ENV EDK2_PATH "/edk2" + + +RUN git clone "${EDK2_REPO_URL}" "${EDK2_PATH}" && \ + git -C "${EDK2_PATH}" checkout "${EDK2_REPO_HASH}" && \ + python3 -m pip install --no-cache-dir -r "${EDK2_PATH}/pip-requirements.txt" && \ + stuart_setup -c "${EDK2_PATH}/.pytool/CISettings.py" TOOL_CHAIN_TAG=GCC5 && \ + stuart_update -c "${EDK2_PATH}/.pytool/CISettings.py" TOOL_CHAIN_TAG=GCC5 + +COPY src "${EDK2_PATH}/HelloWorld/" + +RUN stuart_setup -c "${EDK2_PATH}/HelloWorld/PlatformBuild.py" TOOL_CHAIN_TAG=GCC5 && \ + stuart_update -c "${EDK2_PATH}/HelloWorld/PlatformBuild.py" TOOL_CHAIN_TAG=GCC5 && \ + python3 "${EDK2_PATH}/BaseTools/Edk2ToolsBuild.py" -t GCC5 + +WORKDIR "${EDK2_PATH}" + +RUN source ${EDK2_PATH}/edksetup.sh && \ + ( stuart_build -c ${EDK2_PATH}/HelloWorld/PlatformBuild.py TOOL_CHAIN_TAG=GCC5 \ + EDK_TOOLS_PATH=${EDK2_PATH}/BaseTools/ \ + || ( cat ${EDK2_PATH}/HelloWorld/Build/BUILDLOG.txt && exit 1 ) ) diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/build.ninja b/modules/tsffs/tests/targets/minimal-x86_64-timeout/build.ninja new file mode 100644 index 00000000..5a8fd3e7 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/build.ninja @@ -0,0 +1,7 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +rule runbuild + command = bash build.sh + +build HelloWorld.efi: runbuild diff --git a/examples/x509-parse/build.sh b/modules/tsffs/tests/targets/minimal-x86_64-timeout/build.sh similarity index 73% rename from examples/x509-parse/build.sh rename to modules/tsffs/tests/targets/minimal-x86_64-timeout/build.sh index f96cb5cd..c115acb6 100755 --- a/examples/x509-parse/build.sh +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/build.sh @@ -8,17 +8,17 @@ # otherwise, the EFI is included in the source tree for ease of use SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) -IMAGE_NAME="edk2-build-x509-parse" +IMAGE_NAME="edk2-build-tsffs-gcc-x86_64-test" CONTAINER_UID=$(echo "${RANDOM}" | sha256sum | head -c 8) CONTAINER_NAME="${IMAGE_NAME}-tmp-${CONTAINER_UID}" pushd "${SCRIPT_DIR}" || exit 1 -cp "${SCRIPT_DIR}/../../include/tsffs.h" "${SCRIPT_DIR}/src/tsffs.h" +cp "${SCRIPT_DIR}/../../../../../harness/tsffs-gcc-x86_64.h" "${SCRIPT_DIR}/src/tsffs-gcc-x86_64.h" docker build -t "${IMAGE_NAME}" -f "Dockerfile" . docker create --name "${CONTAINER_NAME}" "${IMAGE_NAME}" docker cp \ - "${CONTAINER_NAME}:/edk2/X509Parse/Build/CryptoPkg/All/DEBUG_GCC5/X64/X509Parse.efi" \ - "${SCRIPT_DIR}/rsrc/X509Parse.efi" + "${CONTAINER_NAME}:/edk2/HelloWorld/Build/HelloWorld/DEBUG_GCC5/X64/HelloWorld.efi" \ + "${SCRIPT_DIR}/test.efi" docker rm -f "${CONTAINER_NAME}" diff --git a/examples/x509-parse/src/X509Parse.c b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.c similarity index 71% rename from examples/x509-parse/src/X509Parse.c rename to modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.c index b43d00d4..b7060b81 100644 --- a/examples/x509-parse/src/X509Parse.c +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.c @@ -8,7 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent **/ -#include +#include #include #include #include @@ -16,7 +16,7 @@ #include #include -#include "tsffs.h" +#include "tsffs-gcc-x86_64.h" /** The user Entry Point for Application. The user code starts with this function @@ -29,27 +29,27 @@ EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) { - UINTN max_input_size = 0x1000; - UINTN input_size = max_input_size; - UINT8 *input = (UINT8 *)AllocatePages(EFI_SIZE_TO_PAGES(max_input_size)); + UINTN input_max_size = 64; + UINTN input_size = input_max_size; + UINT8 *input = (UINT8 *)AllocatePages(EFI_SIZE_TO_PAGES(input_max_size)); if (!input) { return EFI_OUT_OF_RESOURCES; } - HARNESS_START(&input, &input_size); + SetMem((VOID *)input, input_max_size, 0x44); - UINT8 *Cert = input; - UINTN CertSize = input_size / 2; - UINT8 *CACert = (input + CertSize); - UINTN CACertSize = CertSize; + HARNESS_START(input, &input_size); - X509VerifyCert(Cert, CertSize, CACert, CACertSize); + if (*input == 0x41) { + Print(L"Stalling...\n"); + gBS->Stall(10 * 1000 * 1000); + } HARNESS_STOP(); if (input) { - FreePages(input, EFI_SIZE_TO_PAGES(max_input_size)); + FreePages(input, EFI_SIZE_TO_PAGES(input_max_size)); } return EFI_SUCCESS; diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.dsc b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.dsc new file mode 100644 index 00000000..419b1395 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.dsc @@ -0,0 +1,43 @@ +[Defines] + PLATFORM_NAME = HelloWorld + PLATFORM_GUID = 0458dade-8b6e-4e45-b773-1b27cbda3e06 + PLATFORM_VERSION = 0.01 + DSC_SPECIFICATION = 0x00010006 + OUTPUT_DIRECTORY = Build/HelloWorld + SUPPORTED_ARCHITECTURES = IA32|X64|ARM|AARCH64 + BUILD_TARGETS = DEBUG|RELEASE|NOOPT + SKUID_IDENTIFIER = DEFAULT + DEFINE DEBUG_ENABLE_OUTPUT = FALSE # Set to TRUE to enable debug output + DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x80000040 # Flags to control amount of debug output + DEFINE DEBUG_PROPERTY_MASK = 0 + +!include MdePkg/MdeLibs.dsc.inc + +[PcdsFeatureFlag] + +[PcdsFixedAtBuild] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|$(DEBUG_PROPERTY_MASK) + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL) + +[LibraryClasses] + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + + # Include the Debug Library if needed + !if $(DEBUG_ENABLE_OUTPUT) + DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf + DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf + !else ## DEBUG_ENABLE_OUTPUT + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + !endif ## DEBUG_ENABLE_OUTPUT + +[Components] + HelloWorld/HelloWorld.inf \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.inf b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.inf new file mode 100755 index 00000000..d6148ebb --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorld.inf @@ -0,0 +1,46 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = HelloWorld + MODULE_UNI_FILE = HelloWorld.uni + FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2116 + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + ENTRY_POINT = UefiMain + +# +# This flag specifies whether HII resource section is generated into PE image. +# + UEFI_HII_RESOURCE_SECTION = TRUE + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 EBC +# + +[Sources] + HelloWorld.c + HelloWorldStr.uni + +[Packages] +# MdePkg.dec provides the Pcds used below + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + UefiApplicationEntryPoint + UefiLib + PcdLib + +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable ## CONSUMES + +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintString ## SOMETIMES_CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes ## SOMETIMES_CONSUMES + +[UserExtensions.TianoCore."ExtraFiles"] + HelloWorldExtra.uni \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorldExtra.uni b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorldExtra.uni new file mode 100755 index 00000000..efd53a36 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorldExtra.uni @@ -0,0 +1,13 @@ +// /** @file +// HelloWorld Localized Strings and Content +// +// Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_MODULE_NAME +#language en-US +"Hello World Application" + diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorldStr.uni b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorldStr.uni new file mode 100644 index 00000000..8bec3428 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/HelloWorldStr.uni @@ -0,0 +1,22 @@ +// /** @file +// Sample UEFI Application Reference EDKII Module. +// +// This is a sample shell application that will print "UEFI Hello World!" to the +// UEFI Console based on PCD setting. +// +// It demos how to use EDKII PCD mechanism to make code more flexible. +// +// Copyright (c) 2016, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +/=# + +#langdef en-US "English" + +#string STR_HELLO_WORLD_HELP_INFORMATION #language en-US "" +".TH HelloWorld 0 "Displays a \"UEFI Hello World!\" string."\r\n" +".SH NAME\r\n" +"HelloWorld application.\r\n" \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/PlatformBuild.py b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/PlatformBuild.py new file mode 100755 index 00000000..6951f00a --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/PlatformBuild.py @@ -0,0 +1,109 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 + +""" + +Script to build HelloWorld firmware + +See: https://www.tianocore.org/edk2-pytool-extensions/integrate/porting/ +for more info +""" + +# mypy: ignore-errors +# flake8: noqa +# pylint: disable=undefined-variable,import-error,invalid-name,too-few-public-methods + +from os.path import abspath, dirname, join +from typing import Iterable, List + +from edk2toolext.environment.uefi_build import UefiBuilder +from edk2toolext.invocables.edk2_platform_build import BuildSettingsManager +from edk2toolext.invocables.edk2_setup import RequiredSubmodule, SetupSettingsManager +from edk2toolext.invocables.edk2_update import UpdateSettingsManager +from edk2toollib.utility_functions import GetHostInfo + + +class HelloWorldSettingsManager( + UpdateSettingsManager, SetupSettingsManager, BuildSettingsManager +): + """ + Settings manager for HelloWorld EFI application build + """ + + def __init__(self) -> None: + """ + Initialize the settings manager + """ + script_path = dirname(abspath(__file__)) + + # Initialize the workspace (ws) path + self.ws = script_path + + def GetWorkspaceRoot(self) -> str: + """ + Returns the absolute path to the workspace root + """ + return self.ws + + def GetActiveScopes(self) -> List[str]: + """ + Returns scope names this settings manager will remain active for + """ + return ["HelloWorld"] + + def GetPackagesSupported(self) -> Iterable[str]: + """ + Returns paths from the edk2 repository root of edk2 packages + supported by this build + """ + return ("HelloWorld",) + + def GetRequiredSubmodules(self) -> Iterable[RequiredSubmodule]: + """ + Returns submodules required for this package. + """ + # We don't have any required submodules, so we just return an empty list. + return [] + + def GetArchitecturesSupported(self) -> Iterable[str]: + """ + Returns edk2 architectures supported by this build. + """ + return ("X64",) + + def GetTargetsSupported(self) -> Iterable[str]: + """ + Returns target tags supported by this build. + """ + return ("DEBUG",) + + def GetPackagesPath(self) -> Iterable[str]: + """ + Returns the paths to the edk2 package + """ + return [abspath(join(self.GetWorkspaceRoot(), ".."))] + + +class PlatformBuilder(UefiBuilder): + """ + Platform build for HelloWorld module + """ + + def SetPlatformEnv(self) -> int: + """ + Set environment variables for the platform + """ + self.env.SetValue( + "ACTIVE_PLATFORM", + "HelloWorld/HelloWorld.dsc", + "Platform hardcoded", + ) + self.env.SetValue("PRODUCT_NAME", "HelloWorld", "Platform hardcoded") + self.env.SetValue("TARGET_ARCH", "X64", "Platform hardcoded") + os = GetHostInfo().os + if os.lower() == "windows": + self.env.SetValue("TOOL_CHAIN_TAG", "VS2017", "Platform Hardcoded", True) + else: + self.env.SetValue("TOOL_CHAIN_TAG", "GCC5", "Platform Hardcoded", True) + + return 0 diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/tsffs-gcc-x86_64.h b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/tsffs-gcc-x86_64.h new file mode 100644 index 00000000..a3c4ba97 --- /dev/null +++ b/modules/tsffs/tests/targets/minimal-x86_64-timeout/src/tsffs-gcc-x86_64.h @@ -0,0 +1,52 @@ +#ifndef TSFFS_H +#define TSFFS_H + +/// TSFFS Magic Include + +// GCC EASM notes: +// - The stack pointer is required to be the same on exit to an asm block as it +// was on entry + +#define MAGIC (0x4711U) +#define MAGIC_START (0x0001U) +#define MAGIC_STOP (0x0002U) + +/// Trigger a CPUID instruction with RSI and RDI set to specific values. +#define __cpuid_extended2(value, inout_ptr_0, inout_ptr_1) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid" \ + : "=a"(_a) \ + : "a"(value), "D"(inout_ptr_0), "S"(inout_ptr_1) \ + : "rbx", "rcx", "rdx"); + +/// Trigger a CPUID instruction +#define __cpuid(value) \ + unsigned int _a __attribute__((unused)) = 0; \ + __asm__ __volatile__("cpuid\n\t" \ + : "=a"(_a) \ + : "a"(value) \ + : "rbx", "rcx", "rdx") + +#define __arch_harness_start(start, testcase_ptr, size_ptr) \ + do { \ + unsigned int magic = (start << 0x10U) | MAGIC; \ + __cpuid_extended2(magic, testcase_ptr, size_ptr); \ + } while (0) + +#define __arch_harness_stop(stop) \ + do { \ + unsigned int magic = (stop << 0x10U) | MAGIC; \ + __cpuid(magic); \ + } while (0) + +#define HARNESS_START(testcase_ptr, size_ptr) \ + do { \ + __arch_harness_start(MAGIC_START, testcase_ptr, size_ptr); \ + } while (0) + +#define HARNESS_STOP() \ + do { \ + __arch_harness_stop(MAGIC_STOP); \ + } while (0) + +#endif // TSFFS_H \ No newline at end of file diff --git a/modules/tsffs/tests/targets/minimal-x86_64-timeout/test.efi b/modules/tsffs/tests/targets/minimal-x86_64-timeout/test.efi new file mode 100644 index 00000000..ef9d8f91 Binary files /dev/null and b/modules/tsffs/tests/targets/minimal-x86_64-timeout/test.efi differ diff --git a/examples/winintrin/src/build.ninja b/modules/tsffs/tests/targets/minimal-x86_64/build.ninja similarity index 73% rename from examples/winintrin/src/build.ninja rename to modules/tsffs/tests/targets/minimal-x86_64/build.ninja index bb808117..a918e66e 100644 --- a/examples/winintrin/src/build.ninja +++ b/modules/tsffs/tests/targets/minimal-x86_64/build.ninja @@ -12,7 +12,6 @@ rule link rule copy command = cp $in $out -build winintrin.o: cc winintrin.c - cflags = -O0 -build winintrin.efi: link winintrin.o -build ../rsrc/winintrin.efi: copy winintrin.efi +build test.o: cc test.c + cflags = -O0 -I ../../../../../harness/ +build test.efi: link test.o diff --git a/examples/mini/src/mini.c b/modules/tsffs/tests/targets/minimal-x86_64/test.c similarity index 79% rename from examples/mini/src/mini.c rename to modules/tsffs/tests/targets/minimal-x86_64/test.c index 68eaea5a..215fcaaf 100644 --- a/examples/mini/src/mini.c +++ b/modules/tsffs/tests/targets/minimal-x86_64/test.c @@ -4,7 +4,7 @@ #include #include -#include "tsffs.h" +#include "tsffs-gcc-x86_64.h" typedef struct EfiTableHeader { uint64_t signature; @@ -52,7 +52,7 @@ const char hex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; const char *password = "fuzzing!"; -int Check(int16_t *buffer, EfiSystemTable *SystemTable) { +int Check(char *buffer, EfiSystemTable *SystemTable) { if ((((char *)buffer)[0]) == password[0]) { if ((((char *)buffer)[1]) == password[1]) { if ((((char *)buffer)[2]) == password[2]) { @@ -86,10 +86,25 @@ int UefiMain(void *imageHandle, EfiSystemTable *SystemTable) { // addresses of both variables. On each iteration of the fuzzer, up to the // initial size bytes of fuzzer input data will be written to the buffer, and // the current testcase size in bytes will be written to the size variable. - int16_t buffer[0x20]; - int16_t *buffer_ptr = &buffer[0]; - size_t size = sizeof(buffer) - 1; - HARNESS_START(&buffer_ptr, &size); + char buffer[8] = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; + size_t size = sizeof(buffer); + HARNESS_START(buffer, &size); + + for (size_t i = 0; i < size; i++) { + if (i != 0 && !(i % 8)) { + SystemTable->conOut->output_string(SystemTable->conOut, + (int16_t *)L"\r\n"); + } + uint8_t chr = buffer[i]; + int16_t buf[3]; + buf[0] = hex[(chr >> 4) & 0xf]; + buf[1] = hex[chr & 0xf]; + buf[2] = 0; + + SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)&buf[0]); + } + + SystemTable->conOut->output_string(SystemTable->conOut, (int16_t *)L"\r\n"); Check(buffer, SystemTable); diff --git a/modules/tsffs/tests/targets/minimal-x86_64/test.efi b/modules/tsffs/tests/targets/minimal-x86_64/test.efi new file mode 100755 index 00000000..e5831f07 Binary files /dev/null and b/modules/tsffs/tests/targets/minimal-x86_64/test.efi differ diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_kernel_from_userspace_magic.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_kernel_from_userspace_magic.rs new file mode 100644 index 00000000..019eeac9 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_kernel_from_userspace_magic.rs @@ -0,0 +1,140 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test for fuzzing a kernel module using a harnessed user-space application +//! RISC-V architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const IMAGE: &[u8] = include_bytes!("../targets/minimal-riscv-64/Image"); +const ROOTFS: &[u8] = include_bytes!("../targets/minimal-riscv-64/rootfs.ext2"); +const FW_JUMP: &[u8] = include_bytes!("../targets/minimal-riscv-64/fw_jump.elf"); +const TEST_MOD: &[u8] = include_bytes!("../targets/minimal-riscv-64/test-mod-userspace"); +const TEST_KO: &[u8] = include_bytes!("../targets/minimal-riscv-64/test-mod.ko"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_riscv_64_kernel_from_userspace_magic() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_start_magic_number(3) + @tsffs.iface.tsffs.set_stop_magic_number(4) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "risc-v-simple/linux" namespace = riscv machine:hardware:storage:disk1:image = "test.fs.craff" + + script-branch { + bp.time.wait-for seconds = 15 + board.console.con.input "mkdir /mnt/disk0\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "mount /dev/vdb /mnt/disk0\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "insmod /mnt/disk0/test-mod.ko\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "/mnt/disk0/test-mod-userspace\r\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_riscv_64_kernel_from_user_magic") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files([ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ( + "targets/risc-v-simple/images/linux/Image".to_string(), + IMAGE.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/rootfs.ext2".to_string(), + ROOTFS.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/fw_jump.elf".to_string(), + FW_JUMP.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/test-mod-userspace".to_string(), + TEST_MOD.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/test-mod.ko".to_string(), + TEST_KO.to_vec(), + ), + ]) + .arch(Architecture::Riscv) + .build() + .to_env()?; + + let base = env.simics_base_dir()?; + let craff = base.join("linux64").join("bin").join("craff"); + + Command::new("dd") + .arg("if=/dev/zero") + .arg(format!( + "of={}", + env.project_dir().join("test.fs").display() + )) + // Create a 128MB disk + .arg("bs=1024") + .arg("count=131072") + .check()?; + Command::new("mkfs.fat") + .arg(env.project_dir().join("test.fs")) + .check()?; + Command::new("mcopy") + .arg("-i") + .arg(env.project_dir().join("test.fs")) + .arg( + env.project_dir() + .join("targets/risc-v-simple/images/linux/test-mod-userspace"), + ) + .arg("::test-mod-userspace") + .check()?; + Command::new("mcopy") + .arg("-i") + .arg(env.project_dir().join("test.fs")) + .arg( + env.project_dir() + .join("targets/risc-v-simple/images/linux/test-mod.ko"), + ) + .arg("::test-mod.ko") + .check()?; + Command::new(craff) + .arg("-o") + .arg(env.project_dir().join("test.fs.craff")) + .arg(env.project_dir().join("test.fs")) + .check()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_kernel_magic.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_kernel_magic.rs new file mode 100644 index 00000000..9d580a60 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_kernel_magic.rs @@ -0,0 +1,139 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test for fuzzing a kernel module using a harness directly in the kernel module +//! RISC-V architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +// const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const IMAGE: &[u8] = include_bytes!("../targets/minimal-riscv-64/Image"); +const ROOTFS: &[u8] = include_bytes!("../targets/minimal-riscv-64/rootfs.ext2"); +const FW_JUMP: &[u8] = include_bytes!("../targets/minimal-riscv-64/fw_jump.elf"); +const TEST_MOD: &[u8] = include_bytes!("../targets/minimal-riscv-64/test-mod"); +const TEST_KO: &[u8] = include_bytes!("../targets/minimal-riscv-64/test-mod.ko"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_riscv_64_kernel_magic() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "risc-v-simple/linux" namespace = riscv machine:hardware:storage:disk1:image = "test.fs.craff" + + script-branch { + bp.time.wait-for seconds = 15 + board.console.con.input "mkdir /mnt/disk0\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "mount /dev/vdb /mnt/disk0\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "insmod /mnt/disk0/test-mod.ko\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "/mnt/disk0/test-mod\r\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_riscv_64_kernel_magic") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files([ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ( + "targets/risc-v-simple/images/linux/Image".to_string(), + IMAGE.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/rootfs.ext2".to_string(), + ROOTFS.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/fw_jump.elf".to_string(), + FW_JUMP.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/test-mod".to_string(), + TEST_MOD.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/test-mod.ko".to_string(), + TEST_KO.to_vec(), + ), + ]) + .arch(Architecture::Riscv) + .build() + .to_env()?; + + let base = env.simics_base_dir()?; + let craff = base.join("linux64").join("bin").join("craff"); + + Command::new("dd") + .arg("if=/dev/zero") + .arg(format!( + "of={}", + env.project_dir().join("test.fs").display() + )) + // Create a 128MB disk + .arg("bs=1024") + .arg("count=131072") + .check()?; + Command::new("mkfs.fat") + .arg(env.project_dir().join("test.fs")) + .check()?; + Command::new("mcopy") + .arg("-i") + .arg(env.project_dir().join("test.fs")) + .arg( + env.project_dir() + .join("targets/risc-v-simple/images/linux/test-mod"), + ) + .arg("::test-mod") + .check()?; + Command::new("mcopy") + .arg("-i") + .arg(env.project_dir().join("test.fs")) + .arg( + env.project_dir() + .join("targets/risc-v-simple/images/linux/test-mod.ko"), + ) + .arg("::test-mod.ko") + .check()?; + Command::new(craff) + .arg("-o") + .arg(env.project_dir().join("test.fs.craff")) + .arg(env.project_dir().join("test.fs")) + .check()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_user_magic.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_user_magic.rs new file mode 100644 index 00000000..81a2db96 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_riscv_64_user_magic.rs @@ -0,0 +1,124 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a user space application +//! RISC-V architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +// const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const IMAGE: &[u8] = include_bytes!("../targets/minimal-riscv-64/Image"); +const ROOTFS: &[u8] = include_bytes!("../targets/minimal-riscv-64/rootfs.ext2"); +const FW_JUMP: &[u8] = include_bytes!("../targets/minimal-riscv-64/fw_jump.elf"); +const TEST: &[u8] = include_bytes!("../targets/minimal-riscv-64/test"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_riscv_64_user_magic() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "risc-v-simple/linux" namespace = riscv machine:hardware:storage:disk1:image = "test.fs.craff" + + script-branch { + bp.time.wait-for seconds = 15 + board.console.con.input "mkdir /mnt/disk0\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.input "mount /dev/vdb /mnt/disk0\r\n" + bp.time.wait-for seconds = 1.0 + board.console.con.capture-start out.txt + board.console.con.input "/mnt/disk0/test\r\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_riscv_64_user_magic") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files([ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ( + "targets/risc-v-simple/images/linux/Image".to_string(), + IMAGE.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/rootfs.ext2".to_string(), + ROOTFS.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/fw_jump.elf".to_string(), + FW_JUMP.to_vec(), + ), + ( + "targets/risc-v-simple/images/linux/test".to_string(), + TEST.to_vec(), + ), + ]) + .arch(Architecture::Riscv) + .build() + .to_env()?; + + let base = env.simics_base_dir()?; + let craff = base.join("linux64").join("bin").join("craff"); + + Command::new("dd") + .arg("if=/dev/zero") + .arg(format!( + "of={}", + env.project_dir().join("test.fs").display() + )) + // Create a 128MB disk + .arg("bs=1024") + .arg("count=131072") + .check()?; + Command::new("mkfs.fat") + .arg(env.project_dir().join("test.fs")) + .check()?; + Command::new("mcopy") + .arg("-i") + .arg(env.project_dir().join("test.fs")) + .arg( + env.project_dir() + .join("targets/risc-v-simple/images/linux/test"), + ) + .arg("::test") + .check()?; + Command::new(craff) + .arg("-o") + .arg(env.project_dir().join("test.fs.craff")) + .arg(env.project_dir().join("test.fs")) + .check()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_edk2.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_edk2.rs new file mode 100644 index 00000000..0d052751 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_edk2.rs @@ -0,0 +1,81 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware built with EDK2 +//! +//! X86-64 architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64-edk2/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_edk2() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.add_exception_solution(6) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" + + script-branch { + bp.time.wait-for seconds = 15 + qsp.serconsole.con.input "\n" + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = .5 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "test.efi\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64-edk2") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_edk2_breakpoint.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_edk2_breakpoint.rs new file mode 100644 index 00000000..03c60efa --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_edk2_breakpoint.rs @@ -0,0 +1,92 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware built with EDK2, using a write breakpoint on a region of +//! memory as the solution condition +//! +//! X86-64 architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64-breakpoint-edk2/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_edk2_breakpoint() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.add_exception_solution(6) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + @tsffs.iface.tsffs.set_all_breakpoints_are_solutions(True) + + load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" + + script-branch { + bp.time.wait-for seconds = 15 + qsp.serconsole.con.input "\n" + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = .5 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "test.efi\n" + } + + script-branch { + local $BP_BUFFER_ADDRESS = 0x4000000 + local $MAGIC_START = 1 + bp.magic.wait-for $MAGIC_START + local $ctx = (new-context) + qsp.mb.cpu0.core[0][0].set-context $ctx + $ctx.break -w $BP_BUFFER_ADDRESS 0x1000 + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64-edk2-breakpoint") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic.rs new file mode 100644 index 00000000..15dd6831 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic.rs @@ -0,0 +1,80 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware +//! +//! X86-64 architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_magic() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 1 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" + + script-branch { + bp.time.wait-for seconds = 15 + qsp.serconsole.con.input "\n" + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = .5 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "test.efi\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64_magic") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic_crash.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic_crash.rs new file mode 100644 index 00000000..909f46e7 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic_crash.rs @@ -0,0 +1,78 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware, which only crashes or doesn't + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64-crash/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_magic_crash() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" + + script-branch { + bp.time.wait-for seconds = 15 + qsp.serconsole.con.input "\n" + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = .5 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "test.efi\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64_magic_crash") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic_timeout.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic_timeout.rs new file mode 100644 index 00000000..e7c1e86e --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_magic_timeout.rs @@ -0,0 +1,80 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware, which times out +//! +//! X86-64 architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64-timeout/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_magic_timeout() -> Result<()> { + let script = indoc! {r#" + load-module tsffs + + @tsffs = SIM_create_object(SIM_get_class("tsffs"), "tsffs", []) + tsffs.log-level 4 + @tsffs.iface.tsffs.set_start_on_harness(True) + @tsffs.iface.tsffs.set_stop_on_harness(True) + @tsffs.iface.tsffs.set_timeout(3.0) + @tsffs.iface.tsffs.add_exception_solution(14) + @tsffs.iface.tsffs.set_generate_random_corpus(True) + @tsffs.iface.tsffs.set_iterations(1000) + @tsffs.iface.tsffs.set_use_snapshots(True) + + load-target "qsp-x86/uefi-shell" namespace = qsp machine:hardware:storage:disk0:image = "minimal_boot_disk.craff" + + script-branch { + bp.time.wait-for seconds = 15 + qsp.serconsole.con.input "\n" + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "FS0:\n" + bp.time.wait-for seconds = .5 + local $manager = (start-agent-manager) + qsp.serconsole.con.input ("SimicsAgent.efi --download " + (lookup-file "%simics%/test.efi") + "\n") + bp.time.wait-for seconds = .5 + qsp.serconsole.con.input "test.efi\n" + } + + script-branch { + bp.time.wait-for seconds = 240 + quit 1 + } + + run + + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64_magic_timeout") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.simics".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.simics") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_manual.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_manual.rs new file mode 100644 index 00000000..eed8657c --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_manual.rs @@ -0,0 +1,150 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware with manual harnessing +//! +//! X86-64 architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use ispm_wrapper::data::ProjectPackage; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_manual() -> Result<()> { + let script = indoc! {r#" + import simics + import cli + + simics.SIM_load_module("tsffs") + + tsffs = simics.SIM_create_object( + simics.SIM_get_class("tsffs"), + "tsffs", + [] + ) + simics.SIM_set_log_level(tsffs, 1) + tsffs.iface.tsffs.set_start_on_harness(False) + tsffs.iface.tsffs.set_stop_on_harness(False) + tsffs.iface.tsffs.set_timeout(3.0) + tsffs.iface.tsffs.add_exception_solution(14) + tsffs.iface.tsffs.set_generate_random_corpus(True) + tsffs.iface.tsffs.set_iterations(1000) + tsffs.iface.tsffs.set_use_snapshots(False) + + simics.SIM_load_target( + "qsp-x86/uefi-shell", # Target + "qsp", # Namespace + [], # Presets + [ # Cmdline args + ["machine:hardware:storage:disk0:image", "minimal_boot_disk.craff"], + ["machine:hardware:processor:class", "x86-goldencove-server"] + ] + ) + + qsp = simics.SIM_get_object("qsp") + + def on_magic(o, e, r): + # Wait for magic stop -- in reality this could wait for any stop + # condition, but we make it easy on ourselves for testing purposes + if r == 2: + print("Got magic stop...") + tsffs.iface.tsffs.stop() + + def start_script_branch(): + # Wait for magic start -- in reality this could wait for any + # start condition, but we make it easy on ourselves for testing purposes + print("Waiting for magic start...") + conf.bp.magic.cli_cmds.wait_for(number=1) + print("Got magic start...") + + # In reality, you probably have a known buffer in mind to fuzz + testcase_address_regno = conf.qsp.mb.cpu0.core[0][0].iface.int_register.get_number("rdi") + print("testcase address regno: ", testcase_address_regno) + testcase_address = conf.qsp.mb.cpu0.core[0][0].iface.int_register.read(testcase_address_regno) + print("testcase address: ", testcase_address) + size_regno = conf.qsp.mb.cpu0.core[0][0].iface.int_register.get_number("rsi") + print("size regno: ", size_regno) + size_address = conf.qsp.mb.cpu0.core[0][0].iface.int_register.read(size_regno) + print("size address: ", size_address) + virt = False + + print( + "Starting with testcase address", + hex(testcase_address), + "size address", + hex(size_address), + "virt", + virt + ) + + tsffs.iface.tsffs.start( + conf.qsp.mb.cpu0.core[0][0], + testcase_address, + size_address, + ) + + + + def startup_script_branch(): + cli.global_cmds.wait_for_global_time(seconds=15.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("FS0:\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + cli.global_cmds.start_agent_manager() + qsp.serconsole.con.iface.con_input.input_str( + "SimicsAgent.efi --download " + simics.SIM_lookup_file("%simics%/test.efi") + "\n" + ) + cli.global_cmds.wait_for_global_time(seconds=3.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("test.efi\n") + + def exit_script_branch(): + cli.global_cmds.wait_for_global_time(seconds=240.0, _relative = True) + simics.SIM_quit(1) + + simics.SIM_hap_add_callback("Core_Magic_Instruction", on_magic, None) + cli.sb_create(start_script_branch) + cli.sb_create(startup_script_branch) + cli.sb_create(exit_script_branch) + + simics.SIM_continue(0) + # NOTE: If running from CLI, omit this! + simics.SIM_main_loop() + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64_manual") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.py".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .extra_packages([ProjectPackage::builder() + .package_number(1030) + .version("latest") + .build()]) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.py") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_manual_max.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_manual_max.rs new file mode 100644 index 00000000..b64e918b --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_64_manual_max.rs @@ -0,0 +1,147 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing a UEFI firmware with manual harnessing, no size write-back +//! +//! X86-64 architecture + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use ispm_wrapper::data::ProjectPackage; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const BOOT_DISK: &[u8] = include_bytes!("../rsrc/minimal_boot_disk.craff"); +const TEST_UEFI: &[u8] = include_bytes!("../targets/minimal-x86_64/test.efi"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_64_manual_max() -> Result<()> { + let script = indoc! {r#" + import simics + import cli + + simics.SIM_load_module("tsffs") + + tsffs = simics.SIM_create_object( + simics.SIM_get_class("tsffs"), + "tsffs", + [] + ) + simics.SIM_set_log_level(tsffs, 4) + tsffs.iface.tsffs.set_start_on_harness(False) + tsffs.iface.tsffs.set_stop_on_harness(False) + tsffs.iface.tsffs.set_timeout(3.0) + tsffs.iface.tsffs.add_exception_solution(14) + tsffs.iface.tsffs.set_generate_random_corpus(True) + tsffs.iface.tsffs.set_iterations(1000) + tsffs.iface.tsffs.set_use_snapshots(False) + + simics.SIM_load_target( + "qsp-x86/uefi-shell", # Target + "qsp", # Namespace + [], # Presets + [ # Cmdline args + ["machine:hardware:storage:disk0:image", "minimal_boot_disk.craff"], + ["machine:hardware:processor:class", "x86-goldencove-server"] + ] + ) + + qsp = simics.SIM_get_object("qsp") + + def on_magic(o, e, r): + # Wait for magic stop -- in reality this could wait for any stop + # condition, but we make it easy on ourselves for testing purposes + if r == 2: + print("Got magic stop...") + tsffs.iface.tsffs.stop() + + def start_script_branch(): + # Wait for magic start -- in reality this could wait for any + # start condition, but we make it easy on ourselves for testing purposes + print("Waiting for magic start...") + conf.bp.magic.cli_cmds.wait_for(number=1) + print("Got magic start...") + + # In reality, you probably have a known buffer in mind to fuzz + testcase_address_regno = conf.qsp.mb.cpu0.core[0][0].iface.int_register.get_number("rdi") + print("testcase address regno: ", testcase_address_regno) + testcase_address = conf.qsp.mb.cpu0.core[0][0].iface.int_register.read(testcase_address_regno) + print("testcase address: ", testcase_address) + maximum_size = 8 + virt = False + + print( + "Starting with testcase address", + hex(testcase_address), + "maximum size", + hex(maximum_size), + "virt", + virt + ) + + tsffs.iface.tsffs.start_with_maximum_size( + conf.qsp.mb.cpu0.core[0][0], + testcase_address, + maximum_size, + ) + + + + def startup_script_branch(): + cli.global_cmds.wait_for_global_time(seconds=15.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("FS0:\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + cli.global_cmds.start_agent_manager() + qsp.serconsole.con.iface.con_input.input_str( + "SimicsAgent.efi --download " + simics.SIM_lookup_file("%simics%/test.efi") + "\n" + ) + cli.global_cmds.wait_for_global_time(seconds=3.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("test.efi\n") + + def exit_script_branch(): + cli.global_cmds.wait_for_global_time(seconds=240.0, _relative = True) + simics.SIM_quit(1) + + simics.SIM_hap_add_callback("Core_Magic_Instruction", on_magic, None) + cli.sb_create(start_script_branch) + cli.sb_create(startup_script_branch) + cli.sb_create(exit_script_branch) + + simics.SIM_continue(0) + # NOTE: If running from CLI, omit this! + simics.SIM_main_loop() + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_64_manual_max") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.py".to_string(), script.as_bytes().to_vec()), + ("test.efi".to_string(), TEST_UEFI.to_vec()), + ("minimal_boot_disk.craff".to_string(), BOOT_DISK.to_vec()), + ]) + .arch(Architecture::X86) + .extra_packages([ProjectPackage::builder() + .package_number(1030) + .version("latest") + .build()]) + .build() + .to_env()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.py") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/modules/tsffs/tests/tests/test_fuzz_gcc_x86_user_magic.rs b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_user_magic.rs new file mode 100644 index 00000000..6ba8de64 --- /dev/null +++ b/modules/tsffs/tests/tests/test_fuzz_gcc_x86_user_magic.rs @@ -0,0 +1,145 @@ +// Copyright (C) 2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 + +//! Test fuzzing an x86 user space application in Linux +//! +//! X86-64 architecture, hinted to x86 + +use anyhow::Result; +use command_ext::CommandExtCheck; +use indoc::indoc; +use ispm_wrapper::data::ProjectPackage; +use std::process::Command; +use tests::{Architecture, TestEnvSpec}; + +const TEST_USER: &[u8] = include_bytes!("../targets/minimal-x86-user/test"); + +#[test] +#[cfg_attr(miri, ignore)] +fn test_fuzz_gcc_x86_magic() -> Result<()> { + let script = indoc! {r#" + import simics + import cli + + simics.SIM_load_module("tsffs") + + tsffs = simics.SIM_create_object( + simics.SIM_get_class("tsffs"), + "tsffs", + [] + ) + simics.SIM_set_log_level(tsffs, 4) + tsffs.iface.tsffs.set_start_on_harness(True) + tsffs.iface.tsffs.set_stop_on_harness(True) + tsffs.iface.tsffs.set_timeout(3.0) + tsffs.iface.tsffs.set_generate_random_corpus(True) + tsffs.iface.tsffs.set_iterations(1000) + tsffs.iface.tsffs.set_use_snapshots(True) + + simics.SIM_load_target( + "qsp-x86/clear-linux", # Target + "qsp", # Namespace + [], # Presets + [["machine:hardware:storage:disk1:image", "test.fs.craff"]], + ) + + qsp = simics.SIM_get_object("qsp") + + tsffs.iface.tsffs.add_architecture_hint(qsp.mb.cpu0.core[0][0], "i386") + + # When we're running userspace code, we don't want to catch exeptions until + # we actually start fuzzing, including GPFs on other code. We can wait to + # enable the exception until later (we could even toggle it on and off per + # iteration) + def on_magic(o, e, r): + # Wait for magic stop -- in reality this could wait for any stop + # condition, but we make it easy on ourselves for testing purposes + if r == 1: + tsffs.iface.tsffs.add_exception_solution(13) + + def startup_script_branch(): + cli.global_cmds.wait_for_global_time(seconds=20.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("sudo mkdir /disk0/\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("sudo mount /dev/sdb /disk0/\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("ls /disk0\n") + cli.global_cmds.wait_for_global_time(seconds=1.0, _relative = True) + qsp.serconsole.con.iface.con_input.input_str("/disk0/test\n") + + + def exit_script_branch(): + cli.global_cmds.wait_for_global_time(seconds=240.0, _relative = True) + simics.SIM_quit(1) + + simics.SIM_hap_add_callback("Core_Magic_Instruction", on_magic, None) + cli.sb_create(startup_script_branch) + cli.sb_create(exit_script_branch) + + simics.SIM_continue(0) + # NOTE: If running from CLI, omit this! + simics.SIM_main_loop() + "#}; + + let env = TestEnvSpec::builder() + .name("fuzz_gcc_x86_magic") + .cargo_manifest_dir(env!("CARGO_MANIFEST_DIR")) + .cargo_target_tmpdir(env!("CARGO_TARGET_TMPDIR")) + .files(vec![ + ("test.py".to_string(), script.as_bytes().to_vec()), + ("test".to_string(), TEST_USER.to_vec()), + ]) + .arch(Architecture::X86) + .extra_packages([ + ProjectPackage::builder() + .package_number(1030) + .version("latest") + .build(), + ProjectPackage::builder() + .package_number(4094) + .version("latest") + .build(), + ]) + .build() + .to_env()?; + + let base = env.simics_base_dir()?; + let craff = base.join("linux64").join("bin").join("craff"); + + Command::new("dd") + .arg("if=/dev/zero") + .arg(format!( + "of={}", + env.project_dir().join("test.fs").display() + )) + // Create a 128MB disk + .arg("bs=1024") + .arg("count=131072") + .check()?; + Command::new("mkfs.fat") + .arg(env.project_dir().join("test.fs")) + .check()?; + Command::new("mcopy") + .arg("-i") + .arg(env.project_dir().join("test.fs")) + .arg(env.project_dir().join("test")) + .arg("::test") + .check()?; + Command::new(craff) + .arg("-o") + .arg(env.project_dir().join("test.fs.craff")) + .arg(env.project_dir().join("test.fs")) + .check()?; + + let output = Command::new("./simics") + .current_dir(env.project_dir()) + .arg("--batch-mode") + .arg("-no-gui") + .arg("--no-win") + .arg("test.py") + .check()?; + + let _output_str = String::from_utf8_lossy(&output.stdout); + + Ok(()) +} diff --git a/scripts/check.sh b/scripts/check.sh index dc2ac41a..fcdf2422 100755 --- a/scripts/check.sh +++ b/scripts/check.sh @@ -49,7 +49,7 @@ echo "=================" echo "Running clippy..." echo "=================" -cargo clippy --features=6.0.169 +cargo clippy echo "=================" echo "Running flake8..." diff --git a/scripts/fmt.sh b/scripts/fmt.sh index dd337060..3dc6769a 100755 --- a/scripts/fmt.sh +++ b/scripts/fmt.sh @@ -53,8 +53,8 @@ echo "=================" echo "Formatting Python" echo "=================" -fd '.*\.py$' -x black --config "${SCRIPT_DIR}/../.github/linters/.python-black" {} -fd '.*\.py$' -x isort --settings-path "${SCRIPT_DIR}/../.github/linters/.isort.cfg" {} +fd '.*\.py$' -x black +fd '.*\.py$' -x isort --profile black echo "=================" echo "Formatting Markdown" diff --git a/simics-api-macro/src/lib.rs b/simics-api-macro/src/lib.rs deleted file mode 100644 index 4ba20285..00000000 --- a/simics-api-macro/src/lib.rs +++ /dev/null @@ -1,511 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Derive/attribute macros for simics-api -//! -//! Provides the `#[module()]` and `#[derive(Module)]` macros - -#![deny(clippy::unwrap_used)] -#![forbid(unsafe_code)] - -use proc_macro::TokenStream; -use proc_macro2::TokenStream as TokenStream2; -use proc_macro_error::{abort, proc_macro_error}; -use quote::{format_ident, quote, ToTokens}; -use std::{ - collections::HashSet, - hash::{Hash, Hasher}, -}; -use syn::{ - parse::{Parse, ParseStream, Parser, Result}, - parse_macro_input, - punctuated::Punctuated, - Expr, Field, Fields, Generics, Ident, ItemStruct, LitStr, Token, -}; - -#[derive(Clone)] -enum ModuleAttrValue { - LitStr(LitStr), - Expr(Expr), - // Call(Vec), -} - -impl ToTokens for ModuleAttrValue { - fn to_tokens(&self, tokens: &mut TokenStream2) { - match self { - Self::LitStr(t) => t.to_tokens(tokens), - Self::Expr(t) => t.to_tokens(tokens), - // Self::Call(t) => { - // let t = quote!(#(#t),*); - // t.to_tokens(tokens) - // } - } - } -} - -#[derive(Hash, Eq, PartialEq)] -enum ModuleAttrType { - Derive, - ClassName, - Description, - ShortDescription, - ClassKind, -} - -struct ModuleAttr { - typ: ModuleAttrType, - value: Option, -} - -impl Hash for ModuleAttr { - fn hash(&self, state: &mut H) - where - H: Hasher, - { - self.typ.hash(state); - } -} - -impl PartialEq for ModuleAttr { - fn eq(&self, other: &Self) -> bool { - self.typ == other.typ - } -} - -impl Eq for ModuleAttr {} - -impl Parse for ModuleAttr { - fn parse(input: ParseStream) -> Result { - let attr: Ident = input.parse()?; - - let typ = match attr.to_string().as_str() { - "class_name" => ModuleAttrType::ClassName, - "derive" => ModuleAttrType::Derive, - "description" => ModuleAttrType::Description, - "short_description" => ModuleAttrType::ShortDescription, - "class_kind" => ModuleAttrType::ClassKind, - &_ => abort! { - attr, - r#"Attributes must be one of `derive`, \ - `name = "class_name"`, \ - `description = "YOUR DESCRIPTION HERE"`, \ - `short_description = "YOUR CLASS DESCRIPTION HERE"`, \ - `kind = ClassKind::KIND`"# - }, - }; - - let value = if input.peek(Token![=]) { - let assign_token = input.parse::()?; - - if input.peek(LitStr) { - let lit: LitStr = input.parse()?; - Some(ModuleAttrValue::LitStr(lit)) - } else if let Ok(expr) = input.parse::() { - Some(ModuleAttrValue::Expr(expr)) - } else { - abort! { - assign_token, - "expected `string literal` or `expression` after `=`" - }; - } - } else { - None - }; - - Ok(Self { typ, value }) - } -} - -struct Args { - attrs: HashSet, -} - -impl Parse for Args { - fn parse(input: ParseStream) -> Result { - let parsed = Punctuated::::parse_terminated(input)?; - - let attrs: HashSet = parsed.into_iter().collect(); - - if !attrs.contains(&ModuleAttr { - typ: ModuleAttrType::ClassName, - value: None, - }) { - let span = input.span(); - abort! { - span, - r#"`class_name` required in `module()` invocation. Try giving your class name like `#[module(class_name = "class_name")]`"# - }; - } - - Ok(Args { attrs }) - } -} - -impl Args { - fn class_name(&self) -> TokenStream2 { - if let Some(name_attr) = self.attrs.get(&ModuleAttr { - typ: ModuleAttrType::ClassName, - value: None, - }) { - if let Some(ModuleAttrValue::LitStr(name)) = &name_attr.value { - return quote! { #name }; - } else if let Some(ModuleAttrValue::Expr(name)) = &name_attr.value { - return quote! { #name }; - } - } - unreachable!("No name provided and check somehow failed"); - } - - fn has_derive(&self) -> bool { - self.attrs.contains(&ModuleAttr { - typ: ModuleAttrType::Derive, - value: None, - }) - } - - fn description(&self) -> Option { - if let Some(description) = self.attrs.get(&ModuleAttr { - typ: ModuleAttrType::Description, - value: None, - }) { - match &description.value { - Some(ModuleAttrValue::LitStr(s)) => Some(s.value()), - _ => None, - } - } else { - None - } - } - - fn short_description(&self) -> Option { - if let Some(short_description) = self.attrs.get(&ModuleAttr { - typ: ModuleAttrType::ShortDescription, - value: None, - }) { - match &short_description.value { - Some(ModuleAttrValue::LitStr(s)) => Some(s.value()), - _ => None, - } - } else { - None - } - } - - fn class_kind(&self) -> Option { - if let Some(class_kind) = self.attrs.get(&ModuleAttr { - typ: ModuleAttrType::ClassKind, - value: None, - }) { - match &class_kind.value { - Some(ModuleAttrValue::Expr(e)) => Some(e.clone()), - _ => None, - } - } else { - None - } - } -} - -#[proc_macro_derive(SimicsModule)] -/// Derive the default implementation of [Module] -pub fn derive_module(input: TokenStream) -> TokenStream { - let item_struct = parse_macro_input!(input as ItemStruct); - - let name = &item_struct.ident; - - quote! { - impl simics_api::SimicsModule for #name {} - } - .into() -} - -#[proc_macro_error] -#[proc_macro_attribute] -/// Attribute to add boilerplate to a `struct` to enable it to be used as a SIMICS Conf Object. -/// -/// * Generate default implementations for CFFI to call functions defined in the [Module] trait -/// impl -/// * Insert a [ConfObject] field to permit instances of the struct to be passed via CFFI to and -/// from SIMICS -/// * Optionally, derive the default implementations of the [Module] trait -/// -/// The macro accepts the following arguments: -/// -/// * `class_name = "name"` (Required) specifies the generated class name the class will be registered with -/// * `derive` (Optional) which allows you to derive the default -/// implementation of [Module] alongside automatic implementations of the extern functions -/// required to register the class. -/// * `description = "describe your class"` (Optional) set a custom description for the generated -/// class. Defaults to the struct name. -/// * `short_description = "short desc"` (Optional) set a custom short description for the -/// generated class. Defaults to the struct name. -/// * `class_kind = ClassKind::Vanilla` (Optional) set a class kind. Most classes are Vanilla, -/// which is the default, but the kind can be set here. -/// -/// # Examples -/// -/// Without deriving [Module]: -/// -/// ```text -/// #[macro_use] -/// extern crate simics_api_macro; -/// use simics_api_macro::module; -/// -/// #[module(class_name = "test")] -/// struct Test {} -/// ``` -/// -/// Derive [Module]: -/// -/// ```text -/// #[macro_use] -/// extern crate simics_api_macro; -/// use simics_api::Module; -/// -/// use simics_api_macro::module; -/// -/// #[module(derive, class_name = "test")] -/// struct Test {} -/// ``` -/// Derive [Module] and customize the generated class description and kind: -/// -/// ```text -/// #[macro_use] -/// extern crate simics_api_macro; -/// use simics_api::Module; -/// -/// use simics_api_macro::module; -/// -/// #[module( -/// derive, -/// class_name = "test_module_4", -/// description = "Test module 4", -/// short_description = "TM4", -/// class_kind = ClassKind::Session -/// )] -/// struct Test {} -/// ``` -/// -pub fn module(args: TokenStream, input: TokenStream) -> TokenStream { - let args = parse_macro_input!(args as Args); - - let mut item_struct = parse_macro_input!(input as ItemStruct); - let name = &item_struct.ident; - let parms = &item_struct.generics; - - // This needs to be generated first before we add the `ConfObject` field - let raw_impl = raw_impl(name.to_string(), &item_struct.fields, parms); - - if let Fields::Named(ref mut fields) = item_struct.fields { - fields.named.insert( - 0, - Field::parse_named - .parse2(quote!(conf_object: simics_api::ConfObject)) - .expect("Couldn't parse field `conf_object`"), - ); - }; - - // Only derive Module if we get a `derive` argument - let derive_attribute = if args.has_derive() { - quote! { #[derive(SimicsModule)] } - } else { - quote! {} - }; - - let ffi_impl = ffi_impl(name.to_string()); - let register_impl = create_impl(name.to_string(), &args, parms); - let from_impl = from_impl(name.to_string()); - - let r: TokenStream = quote! { - #derive_attribute - #[repr(C)] - #item_struct - #ffi_impl - #register_impl - #raw_impl - #from_impl - } - .into(); - - // let _s = r.to_string(); - - // eprintln!("{}", _s); - - r -} - -fn ffi_impl(name: S) -> TokenStream2 -where - S: AsRef, -{ - let name_string = name.as_ref().to_string().to_ascii_lowercase(); - let name = format_ident!("{}", name.as_ref()); - let alloc_fn_name = format_ident!("{}_alloc", &name_string); - let init_fn_name = format_ident!("{}_init", &name_string); - let finalize_fn_name = format_ident!("{}_finalize", &name_string); - let objects_finalized_fn_name = format_ident!("{}_objects_finalized", &name_string); - let deinit_fn_name = format_ident!("{}_deinit", &name_string); - let dealloc_fn_name = format_ident!("{}_dealloc", &name_string); - - quote! { - #[no_mangle] - pub extern "C" fn #alloc_fn_name(cls: *mut simics_api::ConfClass) -> *mut simics_api::ConfObject { - let cls: *mut simics_api::ConfClass = cls.into(); - let obj: *mut simics_api::ConfObject = #name::alloc::<#name>(cls) - .unwrap_or_else(|e| panic!("{}::alloc failed: {}", #name_string, e)) - .into(); - obj - } - - #[no_mangle] - pub extern "C" fn #init_fn_name(obj: *mut simics_api::ConfObject) -> *mut std::ffi::c_void { - let ptr: *mut ConfObject = #name::init(obj.into()) - .unwrap_or_else(|e| panic!("{}::init failed: {}", #name_string, e)) - .into(); - ptr as *mut std::ffi::c_void - } - - #[no_mangle] - pub extern "C" fn #finalize_fn_name(obj: *mut simics_api::ConfObject) { - #name::finalize(obj.into()) - .unwrap_or_else(|e| panic!("{}::finalize failed: {}", #name_string, e)); - } - - #[no_mangle] - pub extern "C" fn #objects_finalized_fn_name(obj: *mut simics_api::ConfObject) { - #name::objects_finalized(obj.into()) - .unwrap_or_else(|e| panic!("{}::objects_finalized failed: {}", #name_string, e)); - } - - #[no_mangle] - pub extern "C" fn #deinit_fn_name(obj: *mut simics_api::ConfObject) { - #name::deinit(obj.into()) - .unwrap_or_else(|e| panic!("{}::deinit failed: {}", #name_string, e)); - } - - #[no_mangle] - pub extern "C" fn #dealloc_fn_name(obj: *mut simics_api::ConfObject) { - #name::dealloc(obj.into()) - .unwrap_or_else(|e| panic!("{}::dealloc failed: {}", #name_string, e)); - } - } -} - -fn create_impl(name: S, args: &Args, parms: &Generics) -> TokenStream2 -where - S: AsRef, -{ - let name_string = name.as_ref().to_string().to_ascii_lowercase(); - let name = format_ident!("{}", name.as_ref()); - - let alloc_fn_name = format_ident!("{}_alloc", &name_string); - let init_fn_name = format_ident!("{}_init", &name_string); - let finalize_fn_name = format_ident!("{}_finalize", &name_string); - let objects_finalized_fn_name = format_ident!("{}_objects_finalized", &name_string); - let deinit_fn_name = format_ident!("{}_deinit", &name_string); - let dealloc_fn_name = format_ident!("{}_dealloc", &name_string); - - // TODO: Can we clean up the re-quoting of these strings? - let class_name = args.class_name(); - - let description = match args.description() { - Some(description) => description, - None => name_string.clone(), - }; - - let short_description = match args.short_description() { - Some(short_description) => short_description, - None => name_string, - }; - - let kind = match args.class_kind() { - Some(kind) => quote! { #kind as u32 }, - None => quote! { simics_api::ClassKind::Vanilla as u32 }, - }; - - quote! { - impl #parms #name #parms { - const CLASS: simics_api::ClassInfo = simics_api::ClassInfo { - alloc: Some(#alloc_fn_name), - init: Some(#init_fn_name), - finalize: Some(#finalize_fn_name), - objects_finalized: Some(#objects_finalized_fn_name), - deinit: Some(#deinit_fn_name), - dealloc: Some(#dealloc_fn_name), - description: raw_cstr::c_str!(#description).as_ptr(), - short_desc: raw_cstr::c_str!(#short_description).as_ptr(), - kind: #kind, - }; - - } - - impl #parms simics_api::SimicsClassCreate for #name #parms { - fn create() -> anyhow::Result<*mut simics_api::ConfClass> { - simics_api::create_class(#class_name, #name::CLASS) - } - } - } -} - -fn raw_impl(name: S, fields: &Fields, parms: &Generics) -> TokenStream2 -where - S: AsRef, -{ - let name = format_ident!("{}", name.as_ref()); - - let mut field_parameters = Vec::new(); - - for field in fields { - let ty = &field.ty; - if let Some(ident) = &field.ident { - field_parameters.push(quote! { - #ident: #ty - }); - } - } - - let mut field_initializers = Vec::new(); - - for field in fields { - if let Some(ident) = &field.ident { - field_initializers.push(quote! { - unsafe { std::ptr::addr_of_mut!((*ptr).#ident).write(#ident) }; - }) - } - } - - quote! { - impl #parms #name #parms { - #[allow(clippy::too_many_arguments)] - fn new( - obj: *mut simics_api::ConfObject, - #(#field_parameters),* - ) -> *mut simics_api::ConfObject { - let obj_ptr: *mut simics_api::ConfObject = obj.into(); - let ptr: *mut #name = obj_ptr as *mut #name; - - #(#field_initializers)* - - (ptr as *mut simics_api::ConfObject).into() - } - } - } -} - -fn from_impl(name: S) -> TokenStream2 -where - S: AsRef, -{ - let name_string = name.as_ref().to_string(); - let name = format_ident!("{}", name.as_ref()); - - quote! { - impl From<*mut simics_api::ConfObject> for &'static mut #name { - fn from(value: *mut simics_api::ConfObject) -> Self { - tracing::debug!("Converting to {} from {:#x}", #name_string, value as usize); - let ptr: *mut #name = value as *mut #name; - unsafe { &mut *ptr } - } - } - } -} diff --git a/simics-api-macro/tests/test.rs b/simics-api-macro/tests/test.rs deleted file mode 100644 index 2f304f79..00000000 --- a/simics-api-macro/tests/test.rs +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Tests that the derive macro can correctly parse an input struct - -use simics_api::{ClassKind, ConfObject, SimicsModule}; -use simics_api_macro::module; - -#[macro_use] -extern crate simics_api_macro; - -// Test that we can have an impl without deriving the module impl - -#[module(class_name = "test_module")] -pub struct TestModule {} - -impl SimicsModule for TestModule { - fn init(obj: *mut simics_api::ConfObject) -> anyhow::Result<*mut ConfObject> { - Ok(obj) - } -} - -// Test that we can derive the Module impl by itself - -#[derive(SimicsModule)] -pub struct TestModule2 {} - -// Test that we can derive and have an impl - -#[module(derive, class_name = "test_module_3")] -pub struct TestModule3 {} - -// Test that we can customize the description fields - -#[module( - derive, - class_name = "test_module_4", - description = "Test module 4", - short_description = "TM4", - class_kind = ClassKind::Session -)] -pub struct TestModule4 {} - -#[test] -fn test() {} diff --git a/simics-api-sys/Makefile.toml b/simics-api-sys/Makefile.toml deleted file mode 100644 index af963e7c..00000000 --- a/simics-api-sys/Makefile.toml +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[tasks.update-bindings] -script_runner = "@rust" -script = { file = "scripts/update-bindings.rs" } diff --git a/simics-api-sys/src/bindings/bindings-6.0.163.rs b/simics-api-sys/src/bindings/bindings-6.0.163.rs deleted file mode 100644 index 4875844a..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.163.rs +++ /dev/null @@ -1,78903 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* automatically generated by rust-bindgen 0.65.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 36; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5usize] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7usize] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRANDOM_SYSCALL: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_BCM_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_FD_FRAMES: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_JOIN_FILTERS: u32 = 1; -pub const HAVE_LINUX_MEMFD_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_VM_SOCKETS_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PRLIMIT: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_ALG: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_AUXV_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35usize] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2usize] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SHM_NEEDS_LIBRT: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1usize] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48usize] = - b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2usize] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2usize] = b"l\0"; -pub const PRId8: &[u8; 2usize] = b"d\0"; -pub const PRId16: &[u8; 2usize] = b"d\0"; -pub const PRId32: &[u8; 2usize] = b"d\0"; -pub const PRId64: &[u8; 3usize] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdFAST16: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIi8: &[u8; 2usize] = b"i\0"; -pub const PRIi16: &[u8; 2usize] = b"i\0"; -pub const PRIi32: &[u8; 2usize] = b"i\0"; -pub const PRIi64: &[u8; 3usize] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiFAST16: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST32: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST64: &[u8; 3usize] = b"li\0"; -pub const PRIo8: &[u8; 2usize] = b"o\0"; -pub const PRIo16: &[u8; 2usize] = b"o\0"; -pub const PRIo32: &[u8; 2usize] = b"o\0"; -pub const PRIo64: &[u8; 3usize] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoFAST16: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIu8: &[u8; 2usize] = b"u\0"; -pub const PRIu16: &[u8; 2usize] = b"u\0"; -pub const PRIu32: &[u8; 2usize] = b"u\0"; -pub const PRIu64: &[u8; 3usize] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuFAST16: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIx8: &[u8; 2usize] = b"x\0"; -pub const PRIx16: &[u8; 2usize] = b"x\0"; -pub const PRIx32: &[u8; 2usize] = b"x\0"; -pub const PRIx64: &[u8; 3usize] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxFAST16: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIX8: &[u8; 2usize] = b"X\0"; -pub const PRIX16: &[u8; 2usize] = b"X\0"; -pub const PRIX32: &[u8; 2usize] = b"X\0"; -pub const PRIX64: &[u8; 3usize] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXFAST16: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIdMAX: &[u8; 3usize] = b"ld\0"; -pub const PRIiMAX: &[u8; 3usize] = b"li\0"; -pub const PRIoMAX: &[u8; 3usize] = b"lo\0"; -pub const PRIuMAX: &[u8; 3usize] = b"lu\0"; -pub const PRIxMAX: &[u8; 3usize] = b"lx\0"; -pub const PRIXMAX: &[u8; 3usize] = b"lX\0"; -pub const PRIdPTR: &[u8; 3usize] = b"ld\0"; -pub const PRIiPTR: &[u8; 3usize] = b"li\0"; -pub const PRIoPTR: &[u8; 3usize] = b"lo\0"; -pub const PRIuPTR: &[u8; 3usize] = b"lu\0"; -pub const PRIxPTR: &[u8; 3usize] = b"lx\0"; -pub const PRIXPTR: &[u8; 3usize] = b"lX\0"; -pub const SCNd8: &[u8; 4usize] = b"hhd\0"; -pub const SCNd16: &[u8; 3usize] = b"hd\0"; -pub const SCNd32: &[u8; 2usize] = b"d\0"; -pub const SCNd64: &[u8; 3usize] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3usize] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2usize] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNi8: &[u8; 4usize] = b"hhi\0"; -pub const SCNi16: &[u8; 3usize] = b"hi\0"; -pub const SCNi32: &[u8; 2usize] = b"i\0"; -pub const SCNi64: &[u8; 3usize] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3usize] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2usize] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST32: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST64: &[u8; 3usize] = b"li\0"; -pub const SCNu8: &[u8; 4usize] = b"hhu\0"; -pub const SCNu16: &[u8; 3usize] = b"hu\0"; -pub const SCNu32: &[u8; 2usize] = b"u\0"; -pub const SCNu64: &[u8; 3usize] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3usize] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2usize] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNo8: &[u8; 4usize] = b"hho\0"; -pub const SCNo16: &[u8; 3usize] = b"ho\0"; -pub const SCNo32: &[u8; 2usize] = b"o\0"; -pub const SCNo64: &[u8; 3usize] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3usize] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2usize] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNx8: &[u8; 4usize] = b"hhx\0"; -pub const SCNx16: &[u8; 3usize] = b"hx\0"; -pub const SCNx32: &[u8; 2usize] = b"x\0"; -pub const SCNx64: &[u8; 3usize] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3usize] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2usize] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNdMAX: &[u8; 3usize] = b"ld\0"; -pub const SCNiMAX: &[u8; 3usize] = b"li\0"; -pub const SCNoMAX: &[u8; 3usize] = b"lo\0"; -pub const SCNuMAX: &[u8; 3usize] = b"lu\0"; -pub const SCNxMAX: &[u8; 3usize] = b"lx\0"; -pub const SCNdPTR: &[u8; 3usize] = b"ld\0"; -pub const SCNiPTR: &[u8; 3usize] = b"li\0"; -pub const SCNoPTR: &[u8; 3usize] = b"lo\0"; -pub const SCNuPTR: &[u8; 3usize] = b"lu\0"; -pub const SCNxPTR: &[u8; 3usize] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2usize] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2usize] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2usize] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2usize] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5usize] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2usize] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14usize] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11usize] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9usize] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16usize] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15usize] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15usize] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17usize] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15usize] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15usize] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12usize] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3usize] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8usize] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2usize] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2usize] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4usize] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16usize] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9usize] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14usize] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19usize] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8usize] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18usize] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24usize] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20usize] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18usize] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16usize] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12usize] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28usize] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24usize] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18usize] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37usize] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12usize] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21usize] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5usize] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17usize] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20usize] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23usize] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9usize] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9usize] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5usize] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9usize] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11usize] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12usize] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14usize] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4usize] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4usize] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4usize] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18usize] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21usize] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11usize] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13usize] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9usize] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29usize] = - b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16usize] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8usize] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11usize] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11usize] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4usize] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10usize] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16usize] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9usize] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4usize] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8usize] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16usize] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14usize] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8usize] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15usize] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14usize] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18usize] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21usize] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16usize] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4usize] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11usize] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8usize] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18usize] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33usize] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18usize] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14usize] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20usize] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20usize] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19usize] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19usize] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7usize] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10usize] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6usize] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6215; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9usize] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13usize] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18usize] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8usize] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14usize] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16usize] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15usize] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15usize] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20usize] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15usize] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13usize] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16usize] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10usize] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19usize] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22usize] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18usize] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17usize] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4usize] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8usize] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11usize] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9usize] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10usize] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11usize] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11usize] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13usize] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14usize] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11usize] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10usize] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14usize] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15usize] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15usize] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14usize] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14usize] = b"interrupt_cpu\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17usize] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16usize] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10usize] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10usize] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13usize] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11usize] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10usize] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7usize] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10usize] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15usize] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4usize] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11usize] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11usize] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12usize] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16usize] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11usize] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11usize] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8usize] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13usize] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23usize] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15usize] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11usize] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14usize] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12usize] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20usize] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26usize] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12usize] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9usize] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18usize] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4usize] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4usize] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11usize] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11usize] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11usize] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5usize] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14usize] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16usize] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13usize] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14usize] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35usize] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34usize] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7usize] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19usize] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6usize] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10usize] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11usize] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23usize] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18usize] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11usize] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4usize] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19usize] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26usize] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11usize] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15usize] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24usize] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18usize] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12usize] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21usize] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22usize] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14usize] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17usize] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16usize] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18usize] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17usize] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31usize] = - b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24usize] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11usize] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18usize] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17usize] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20usize] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19usize] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24usize] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31usize] = - b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12usize] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11usize] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17usize] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10usize] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10usize] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20usize] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15usize] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17usize] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18usize] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10usize] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12usize] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14usize] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14usize] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8usize] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16usize] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18usize] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18usize] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19usize] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16usize] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16usize] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16usize] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12usize] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19usize] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22usize] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14usize] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21usize] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24usize] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21usize] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20usize] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19usize] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12usize] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14usize] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27usize] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28usize] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10usize] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11usize] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8usize] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16usize] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16usize] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24usize] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27usize] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20usize] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8usize] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18usize] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11usize] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8usize] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11usize] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6usize] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13usize] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12usize] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13usize] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18usize] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13usize] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12usize] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9usize] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17usize] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6usize] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18usize] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16usize] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4usize] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7usize] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15usize] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18usize] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17usize] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14usize] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12usize] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14usize] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21usize] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24usize] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14usize] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11usize] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16usize] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13usize] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5usize] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17usize] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6usize] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10usize] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15usize] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13usize] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13usize] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12usize] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9usize] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14usize] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16usize] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6usize] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17usize] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11usize] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8usize] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10usize] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13usize] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10usize] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12usize] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24usize] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16usize] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25usize] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19usize] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11usize] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24usize] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10usize] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15usize] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14usize] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17usize] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10usize] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18usize] = b"telnet_connection\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11usize] = b"vnc_server\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12usize] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11usize] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22usize] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21usize] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21usize] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16usize] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19usize] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12usize] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12usize] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11usize] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13usize] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18usize] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12usize] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29usize] = - b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21usize] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27usize] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14usize] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12usize] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15usize] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20usize] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27usize] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14usize] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25usize] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18usize] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17usize] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19usize] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17usize] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20usize] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15usize] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22usize] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31usize] = - b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20usize] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21usize] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11usize] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6usize] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12usize] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16usize] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12usize] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20usize] = b"probe_sampler_cache\0"; -pub const RECORDER_INTERFACE: &[u8; 9usize] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12usize] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9usize] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20usize] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12usize] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6usize] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n

    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nThis enum is used to identify pre-defined notification events. The corresponding names are as follows:\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.164.rs b/simics-api-sys/src/bindings/bindings-6.0.164.rs deleted file mode 100644 index 5e82c94f..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.164.rs +++ /dev/null @@ -1,79015 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* automatically generated by rust-bindgen 0.65.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 36; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5usize] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7usize] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRANDOM_SYSCALL: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_BCM_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_FD_FRAMES: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_JOIN_FILTERS: u32 = 1; -pub const HAVE_LINUX_MEMFD_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_VM_SOCKETS_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PRLIMIT: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_ALG: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_AUXV_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35usize] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2usize] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SHM_NEEDS_LIBRT: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1usize] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48usize] = - b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2usize] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2usize] = b"l\0"; -pub const PRId8: &[u8; 2usize] = b"d\0"; -pub const PRId16: &[u8; 2usize] = b"d\0"; -pub const PRId32: &[u8; 2usize] = b"d\0"; -pub const PRId64: &[u8; 3usize] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdFAST16: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIi8: &[u8; 2usize] = b"i\0"; -pub const PRIi16: &[u8; 2usize] = b"i\0"; -pub const PRIi32: &[u8; 2usize] = b"i\0"; -pub const PRIi64: &[u8; 3usize] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiFAST16: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST32: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST64: &[u8; 3usize] = b"li\0"; -pub const PRIo8: &[u8; 2usize] = b"o\0"; -pub const PRIo16: &[u8; 2usize] = b"o\0"; -pub const PRIo32: &[u8; 2usize] = b"o\0"; -pub const PRIo64: &[u8; 3usize] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoFAST16: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIu8: &[u8; 2usize] = b"u\0"; -pub const PRIu16: &[u8; 2usize] = b"u\0"; -pub const PRIu32: &[u8; 2usize] = b"u\0"; -pub const PRIu64: &[u8; 3usize] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuFAST16: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIx8: &[u8; 2usize] = b"x\0"; -pub const PRIx16: &[u8; 2usize] = b"x\0"; -pub const PRIx32: &[u8; 2usize] = b"x\0"; -pub const PRIx64: &[u8; 3usize] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxFAST16: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIX8: &[u8; 2usize] = b"X\0"; -pub const PRIX16: &[u8; 2usize] = b"X\0"; -pub const PRIX32: &[u8; 2usize] = b"X\0"; -pub const PRIX64: &[u8; 3usize] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXFAST16: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIdMAX: &[u8; 3usize] = b"ld\0"; -pub const PRIiMAX: &[u8; 3usize] = b"li\0"; -pub const PRIoMAX: &[u8; 3usize] = b"lo\0"; -pub const PRIuMAX: &[u8; 3usize] = b"lu\0"; -pub const PRIxMAX: &[u8; 3usize] = b"lx\0"; -pub const PRIXMAX: &[u8; 3usize] = b"lX\0"; -pub const PRIdPTR: &[u8; 3usize] = b"ld\0"; -pub const PRIiPTR: &[u8; 3usize] = b"li\0"; -pub const PRIoPTR: &[u8; 3usize] = b"lo\0"; -pub const PRIuPTR: &[u8; 3usize] = b"lu\0"; -pub const PRIxPTR: &[u8; 3usize] = b"lx\0"; -pub const PRIXPTR: &[u8; 3usize] = b"lX\0"; -pub const SCNd8: &[u8; 4usize] = b"hhd\0"; -pub const SCNd16: &[u8; 3usize] = b"hd\0"; -pub const SCNd32: &[u8; 2usize] = b"d\0"; -pub const SCNd64: &[u8; 3usize] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3usize] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2usize] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNi8: &[u8; 4usize] = b"hhi\0"; -pub const SCNi16: &[u8; 3usize] = b"hi\0"; -pub const SCNi32: &[u8; 2usize] = b"i\0"; -pub const SCNi64: &[u8; 3usize] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3usize] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2usize] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST32: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST64: &[u8; 3usize] = b"li\0"; -pub const SCNu8: &[u8; 4usize] = b"hhu\0"; -pub const SCNu16: &[u8; 3usize] = b"hu\0"; -pub const SCNu32: &[u8; 2usize] = b"u\0"; -pub const SCNu64: &[u8; 3usize] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3usize] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2usize] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNo8: &[u8; 4usize] = b"hho\0"; -pub const SCNo16: &[u8; 3usize] = b"ho\0"; -pub const SCNo32: &[u8; 2usize] = b"o\0"; -pub const SCNo64: &[u8; 3usize] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3usize] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2usize] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNx8: &[u8; 4usize] = b"hhx\0"; -pub const SCNx16: &[u8; 3usize] = b"hx\0"; -pub const SCNx32: &[u8; 2usize] = b"x\0"; -pub const SCNx64: &[u8; 3usize] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3usize] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2usize] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNdMAX: &[u8; 3usize] = b"ld\0"; -pub const SCNiMAX: &[u8; 3usize] = b"li\0"; -pub const SCNoMAX: &[u8; 3usize] = b"lo\0"; -pub const SCNuMAX: &[u8; 3usize] = b"lu\0"; -pub const SCNxMAX: &[u8; 3usize] = b"lx\0"; -pub const SCNdPTR: &[u8; 3usize] = b"ld\0"; -pub const SCNiPTR: &[u8; 3usize] = b"li\0"; -pub const SCNoPTR: &[u8; 3usize] = b"lo\0"; -pub const SCNuPTR: &[u8; 3usize] = b"lu\0"; -pub const SCNxPTR: &[u8; 3usize] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2usize] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2usize] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2usize] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2usize] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5usize] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2usize] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14usize] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11usize] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9usize] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16usize] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15usize] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15usize] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17usize] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15usize] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15usize] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12usize] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3usize] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8usize] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2usize] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2usize] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4usize] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16usize] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9usize] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14usize] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19usize] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8usize] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18usize] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24usize] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20usize] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18usize] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16usize] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12usize] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28usize] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24usize] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18usize] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37usize] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12usize] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21usize] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5usize] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17usize] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20usize] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23usize] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9usize] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9usize] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5usize] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9usize] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11usize] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12usize] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14usize] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4usize] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4usize] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4usize] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18usize] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21usize] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11usize] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13usize] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9usize] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29usize] = - b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16usize] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8usize] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11usize] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11usize] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4usize] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10usize] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16usize] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9usize] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4usize] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8usize] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16usize] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14usize] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8usize] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15usize] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14usize] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18usize] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21usize] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16usize] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4usize] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11usize] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8usize] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18usize] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33usize] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18usize] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14usize] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20usize] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20usize] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19usize] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19usize] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7usize] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10usize] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6usize] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6216; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9usize] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13usize] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18usize] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8usize] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14usize] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16usize] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15usize] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15usize] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20usize] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15usize] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13usize] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16usize] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10usize] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19usize] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22usize] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18usize] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17usize] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4usize] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8usize] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11usize] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9usize] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10usize] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11usize] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11usize] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13usize] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14usize] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11usize] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10usize] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14usize] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15usize] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15usize] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14usize] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14usize] = b"interrupt_cpu\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17usize] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16usize] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10usize] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10usize] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13usize] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11usize] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10usize] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7usize] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10usize] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15usize] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4usize] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11usize] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11usize] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12usize] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16usize] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11usize] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11usize] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8usize] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13usize] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23usize] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15usize] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11usize] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14usize] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12usize] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20usize] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26usize] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12usize] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9usize] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18usize] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4usize] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4usize] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11usize] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11usize] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11usize] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5usize] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14usize] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16usize] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13usize] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14usize] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35usize] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34usize] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7usize] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19usize] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6usize] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10usize] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11usize] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23usize] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18usize] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11usize] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4usize] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19usize] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26usize] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11usize] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15usize] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24usize] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18usize] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12usize] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21usize] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22usize] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14usize] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17usize] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16usize] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18usize] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17usize] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31usize] = - b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24usize] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11usize] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18usize] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17usize] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20usize] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19usize] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24usize] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31usize] = - b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12usize] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11usize] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17usize] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10usize] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10usize] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20usize] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15usize] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17usize] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18usize] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10usize] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12usize] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14usize] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14usize] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8usize] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16usize] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18usize] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18usize] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19usize] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16usize] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16usize] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16usize] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12usize] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19usize] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22usize] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14usize] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21usize] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24usize] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21usize] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20usize] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19usize] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12usize] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14usize] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27usize] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28usize] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10usize] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11usize] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8usize] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16usize] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16usize] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24usize] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27usize] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20usize] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8usize] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18usize] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11usize] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8usize] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11usize] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6usize] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13usize] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12usize] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13usize] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18usize] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13usize] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12usize] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9usize] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17usize] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6usize] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18usize] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16usize] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4usize] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7usize] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15usize] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18usize] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17usize] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14usize] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12usize] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14usize] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21usize] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24usize] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14usize] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11usize] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16usize] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13usize] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5usize] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17usize] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6usize] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10usize] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15usize] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13usize] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13usize] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12usize] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9usize] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14usize] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16usize] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6usize] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17usize] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11usize] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8usize] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10usize] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13usize] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10usize] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12usize] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24usize] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16usize] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25usize] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19usize] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11usize] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24usize] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10usize] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15usize] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14usize] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17usize] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10usize] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18usize] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21usize] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11usize] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14usize] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12usize] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11usize] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22usize] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21usize] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21usize] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16usize] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19usize] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12usize] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12usize] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11usize] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13usize] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18usize] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12usize] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29usize] = - b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21usize] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27usize] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14usize] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12usize] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15usize] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20usize] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27usize] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14usize] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25usize] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18usize] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17usize] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19usize] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17usize] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20usize] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15usize] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22usize] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31usize] = - b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20usize] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21usize] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11usize] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6usize] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12usize] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16usize] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12usize] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20usize] = b"probe_sampler_cache\0"; -pub const RECORDER_INTERFACE: &[u8; 9usize] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12usize] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9usize] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20usize] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12usize] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6usize] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nThis enum is used to identify pre-defined notification events. The corresponding names are as follows:\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.165.rs b/simics-api-sys/src/bindings/bindings-6.0.165.rs deleted file mode 100644 index 8613a91a..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.165.rs +++ /dev/null @@ -1,79015 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* automatically generated by rust-bindgen 0.65.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 36; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5usize] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7usize] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRANDOM_SYSCALL: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_BCM_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_FD_FRAMES: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_JOIN_FILTERS: u32 = 1; -pub const HAVE_LINUX_MEMFD_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_VM_SOCKETS_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PRLIMIT: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_ALG: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_AUXV_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35usize] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2usize] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SHM_NEEDS_LIBRT: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1usize] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48usize] = - b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2usize] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2usize] = b"l\0"; -pub const PRId8: &[u8; 2usize] = b"d\0"; -pub const PRId16: &[u8; 2usize] = b"d\0"; -pub const PRId32: &[u8; 2usize] = b"d\0"; -pub const PRId64: &[u8; 3usize] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdFAST16: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIi8: &[u8; 2usize] = b"i\0"; -pub const PRIi16: &[u8; 2usize] = b"i\0"; -pub const PRIi32: &[u8; 2usize] = b"i\0"; -pub const PRIi64: &[u8; 3usize] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiFAST16: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST32: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST64: &[u8; 3usize] = b"li\0"; -pub const PRIo8: &[u8; 2usize] = b"o\0"; -pub const PRIo16: &[u8; 2usize] = b"o\0"; -pub const PRIo32: &[u8; 2usize] = b"o\0"; -pub const PRIo64: &[u8; 3usize] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoFAST16: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIu8: &[u8; 2usize] = b"u\0"; -pub const PRIu16: &[u8; 2usize] = b"u\0"; -pub const PRIu32: &[u8; 2usize] = b"u\0"; -pub const PRIu64: &[u8; 3usize] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuFAST16: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIx8: &[u8; 2usize] = b"x\0"; -pub const PRIx16: &[u8; 2usize] = b"x\0"; -pub const PRIx32: &[u8; 2usize] = b"x\0"; -pub const PRIx64: &[u8; 3usize] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxFAST16: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIX8: &[u8; 2usize] = b"X\0"; -pub const PRIX16: &[u8; 2usize] = b"X\0"; -pub const PRIX32: &[u8; 2usize] = b"X\0"; -pub const PRIX64: &[u8; 3usize] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXFAST16: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIdMAX: &[u8; 3usize] = b"ld\0"; -pub const PRIiMAX: &[u8; 3usize] = b"li\0"; -pub const PRIoMAX: &[u8; 3usize] = b"lo\0"; -pub const PRIuMAX: &[u8; 3usize] = b"lu\0"; -pub const PRIxMAX: &[u8; 3usize] = b"lx\0"; -pub const PRIXMAX: &[u8; 3usize] = b"lX\0"; -pub const PRIdPTR: &[u8; 3usize] = b"ld\0"; -pub const PRIiPTR: &[u8; 3usize] = b"li\0"; -pub const PRIoPTR: &[u8; 3usize] = b"lo\0"; -pub const PRIuPTR: &[u8; 3usize] = b"lu\0"; -pub const PRIxPTR: &[u8; 3usize] = b"lx\0"; -pub const PRIXPTR: &[u8; 3usize] = b"lX\0"; -pub const SCNd8: &[u8; 4usize] = b"hhd\0"; -pub const SCNd16: &[u8; 3usize] = b"hd\0"; -pub const SCNd32: &[u8; 2usize] = b"d\0"; -pub const SCNd64: &[u8; 3usize] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3usize] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2usize] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNi8: &[u8; 4usize] = b"hhi\0"; -pub const SCNi16: &[u8; 3usize] = b"hi\0"; -pub const SCNi32: &[u8; 2usize] = b"i\0"; -pub const SCNi64: &[u8; 3usize] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3usize] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2usize] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST32: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST64: &[u8; 3usize] = b"li\0"; -pub const SCNu8: &[u8; 4usize] = b"hhu\0"; -pub const SCNu16: &[u8; 3usize] = b"hu\0"; -pub const SCNu32: &[u8; 2usize] = b"u\0"; -pub const SCNu64: &[u8; 3usize] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3usize] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2usize] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNo8: &[u8; 4usize] = b"hho\0"; -pub const SCNo16: &[u8; 3usize] = b"ho\0"; -pub const SCNo32: &[u8; 2usize] = b"o\0"; -pub const SCNo64: &[u8; 3usize] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3usize] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2usize] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNx8: &[u8; 4usize] = b"hhx\0"; -pub const SCNx16: &[u8; 3usize] = b"hx\0"; -pub const SCNx32: &[u8; 2usize] = b"x\0"; -pub const SCNx64: &[u8; 3usize] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3usize] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2usize] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNdMAX: &[u8; 3usize] = b"ld\0"; -pub const SCNiMAX: &[u8; 3usize] = b"li\0"; -pub const SCNoMAX: &[u8; 3usize] = b"lo\0"; -pub const SCNuMAX: &[u8; 3usize] = b"lu\0"; -pub const SCNxMAX: &[u8; 3usize] = b"lx\0"; -pub const SCNdPTR: &[u8; 3usize] = b"ld\0"; -pub const SCNiPTR: &[u8; 3usize] = b"li\0"; -pub const SCNoPTR: &[u8; 3usize] = b"lo\0"; -pub const SCNuPTR: &[u8; 3usize] = b"lu\0"; -pub const SCNxPTR: &[u8; 3usize] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2usize] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2usize] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2usize] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2usize] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5usize] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2usize] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14usize] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11usize] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9usize] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16usize] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15usize] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15usize] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17usize] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15usize] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15usize] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12usize] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3usize] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8usize] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2usize] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2usize] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4usize] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16usize] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9usize] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14usize] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19usize] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8usize] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18usize] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24usize] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20usize] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18usize] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16usize] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12usize] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28usize] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24usize] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18usize] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37usize] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12usize] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21usize] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5usize] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17usize] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20usize] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23usize] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9usize] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9usize] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5usize] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9usize] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11usize] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12usize] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14usize] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4usize] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4usize] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4usize] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18usize] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21usize] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11usize] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13usize] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9usize] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29usize] = - b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16usize] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8usize] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11usize] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11usize] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4usize] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10usize] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16usize] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9usize] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4usize] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8usize] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16usize] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14usize] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8usize] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15usize] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14usize] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18usize] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21usize] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16usize] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4usize] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11usize] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8usize] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18usize] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33usize] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18usize] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14usize] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20usize] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20usize] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19usize] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19usize] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7usize] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10usize] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6usize] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6217; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9usize] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13usize] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18usize] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8usize] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14usize] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16usize] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15usize] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15usize] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20usize] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15usize] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13usize] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16usize] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10usize] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19usize] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22usize] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18usize] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17usize] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4usize] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8usize] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11usize] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9usize] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10usize] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11usize] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11usize] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13usize] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14usize] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11usize] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10usize] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14usize] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15usize] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15usize] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14usize] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14usize] = b"interrupt_cpu\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17usize] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16usize] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10usize] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10usize] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13usize] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11usize] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10usize] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7usize] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10usize] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15usize] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4usize] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11usize] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11usize] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12usize] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16usize] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11usize] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11usize] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8usize] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13usize] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23usize] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15usize] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11usize] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14usize] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12usize] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20usize] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26usize] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12usize] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9usize] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18usize] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4usize] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4usize] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11usize] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11usize] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11usize] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5usize] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14usize] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16usize] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13usize] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14usize] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35usize] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34usize] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7usize] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19usize] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6usize] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10usize] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11usize] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23usize] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18usize] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11usize] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4usize] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19usize] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26usize] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11usize] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15usize] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24usize] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18usize] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12usize] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21usize] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22usize] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14usize] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17usize] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16usize] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18usize] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17usize] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31usize] = - b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24usize] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11usize] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18usize] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17usize] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20usize] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19usize] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24usize] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31usize] = - b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12usize] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11usize] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17usize] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10usize] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10usize] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20usize] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15usize] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17usize] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18usize] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10usize] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12usize] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14usize] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14usize] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8usize] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16usize] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18usize] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18usize] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19usize] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16usize] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16usize] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16usize] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12usize] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19usize] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22usize] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14usize] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21usize] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24usize] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21usize] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20usize] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19usize] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12usize] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14usize] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27usize] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28usize] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10usize] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11usize] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8usize] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16usize] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16usize] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24usize] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27usize] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20usize] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8usize] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18usize] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11usize] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8usize] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11usize] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6usize] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13usize] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12usize] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13usize] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18usize] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13usize] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12usize] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9usize] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17usize] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6usize] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18usize] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16usize] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4usize] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7usize] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15usize] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18usize] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17usize] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14usize] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12usize] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14usize] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21usize] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24usize] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14usize] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11usize] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16usize] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13usize] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5usize] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17usize] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6usize] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10usize] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15usize] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13usize] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13usize] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12usize] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9usize] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14usize] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16usize] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6usize] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17usize] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11usize] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8usize] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10usize] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13usize] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10usize] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12usize] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24usize] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16usize] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25usize] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19usize] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11usize] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24usize] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10usize] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15usize] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14usize] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17usize] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10usize] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18usize] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21usize] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11usize] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14usize] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12usize] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11usize] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22usize] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21usize] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21usize] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16usize] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19usize] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12usize] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12usize] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11usize] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13usize] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18usize] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12usize] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29usize] = - b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21usize] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27usize] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14usize] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12usize] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15usize] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20usize] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27usize] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14usize] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25usize] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18usize] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17usize] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19usize] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17usize] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20usize] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15usize] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22usize] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31usize] = - b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20usize] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21usize] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11usize] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6usize] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12usize] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16usize] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12usize] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20usize] = b"probe_sampler_cache\0"; -pub const RECORDER_INTERFACE: &[u8; 9usize] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12usize] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9usize] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20usize] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12usize] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6usize] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nThis enum is used to identify pre-defined notification events. The corresponding names are as follows:\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.166.rs b/simics-api-sys/src/bindings/bindings-6.0.166.rs deleted file mode 100644 index 011514b8..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.166.rs +++ /dev/null @@ -1,79015 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* automatically generated by rust-bindgen 0.65.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 36; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5usize] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7usize] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRANDOM_SYSCALL: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_BCM_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_FD_FRAMES: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_JOIN_FILTERS: u32 = 1; -pub const HAVE_LINUX_MEMFD_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_VM_SOCKETS_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PRLIMIT: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_ALG: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_AUXV_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35usize] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2usize] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SHM_NEEDS_LIBRT: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1usize] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48usize] = - b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5usize] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5usize] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2usize] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2usize] = b"l\0"; -pub const PRId8: &[u8; 2usize] = b"d\0"; -pub const PRId16: &[u8; 2usize] = b"d\0"; -pub const PRId32: &[u8; 2usize] = b"d\0"; -pub const PRId64: &[u8; 3usize] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2usize] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2usize] = b"d\0"; -pub const PRIdFAST16: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3usize] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3usize] = b"ld\0"; -pub const PRIi8: &[u8; 2usize] = b"i\0"; -pub const PRIi16: &[u8; 2usize] = b"i\0"; -pub const PRIi32: &[u8; 2usize] = b"i\0"; -pub const PRIi64: &[u8; 3usize] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2usize] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST8: &[u8; 2usize] = b"i\0"; -pub const PRIiFAST16: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST32: &[u8; 3usize] = b"li\0"; -pub const PRIiFAST64: &[u8; 3usize] = b"li\0"; -pub const PRIo8: &[u8; 2usize] = b"o\0"; -pub const PRIo16: &[u8; 2usize] = b"o\0"; -pub const PRIo32: &[u8; 2usize] = b"o\0"; -pub const PRIo64: &[u8; 3usize] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2usize] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2usize] = b"o\0"; -pub const PRIoFAST16: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3usize] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3usize] = b"lo\0"; -pub const PRIu8: &[u8; 2usize] = b"u\0"; -pub const PRIu16: &[u8; 2usize] = b"u\0"; -pub const PRIu32: &[u8; 2usize] = b"u\0"; -pub const PRIu64: &[u8; 3usize] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2usize] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2usize] = b"u\0"; -pub const PRIuFAST16: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3usize] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3usize] = b"lu\0"; -pub const PRIx8: &[u8; 2usize] = b"x\0"; -pub const PRIx16: &[u8; 2usize] = b"x\0"; -pub const PRIx32: &[u8; 2usize] = b"x\0"; -pub const PRIx64: &[u8; 3usize] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2usize] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2usize] = b"x\0"; -pub const PRIxFAST16: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3usize] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3usize] = b"lx\0"; -pub const PRIX8: &[u8; 2usize] = b"X\0"; -pub const PRIX16: &[u8; 2usize] = b"X\0"; -pub const PRIX32: &[u8; 2usize] = b"X\0"; -pub const PRIX64: &[u8; 3usize] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2usize] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2usize] = b"X\0"; -pub const PRIXFAST16: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3usize] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3usize] = b"lX\0"; -pub const PRIdMAX: &[u8; 3usize] = b"ld\0"; -pub const PRIiMAX: &[u8; 3usize] = b"li\0"; -pub const PRIoMAX: &[u8; 3usize] = b"lo\0"; -pub const PRIuMAX: &[u8; 3usize] = b"lu\0"; -pub const PRIxMAX: &[u8; 3usize] = b"lx\0"; -pub const PRIXMAX: &[u8; 3usize] = b"lX\0"; -pub const PRIdPTR: &[u8; 3usize] = b"ld\0"; -pub const PRIiPTR: &[u8; 3usize] = b"li\0"; -pub const PRIoPTR: &[u8; 3usize] = b"lo\0"; -pub const PRIuPTR: &[u8; 3usize] = b"lu\0"; -pub const PRIxPTR: &[u8; 3usize] = b"lx\0"; -pub const PRIXPTR: &[u8; 3usize] = b"lX\0"; -pub const SCNd8: &[u8; 4usize] = b"hhd\0"; -pub const SCNd16: &[u8; 3usize] = b"hd\0"; -pub const SCNd32: &[u8; 2usize] = b"d\0"; -pub const SCNd64: &[u8; 3usize] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3usize] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2usize] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4usize] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3usize] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3usize] = b"ld\0"; -pub const SCNi8: &[u8; 4usize] = b"hhi\0"; -pub const SCNi16: &[u8; 3usize] = b"hi\0"; -pub const SCNi32: &[u8; 2usize] = b"i\0"; -pub const SCNi64: &[u8; 3usize] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3usize] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2usize] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST8: &[u8; 4usize] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST32: &[u8; 3usize] = b"li\0"; -pub const SCNiFAST64: &[u8; 3usize] = b"li\0"; -pub const SCNu8: &[u8; 4usize] = b"hhu\0"; -pub const SCNu16: &[u8; 3usize] = b"hu\0"; -pub const SCNu32: &[u8; 2usize] = b"u\0"; -pub const SCNu64: &[u8; 3usize] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3usize] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2usize] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4usize] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3usize] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3usize] = b"lu\0"; -pub const SCNo8: &[u8; 4usize] = b"hho\0"; -pub const SCNo16: &[u8; 3usize] = b"ho\0"; -pub const SCNo32: &[u8; 2usize] = b"o\0"; -pub const SCNo64: &[u8; 3usize] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3usize] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2usize] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4usize] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3usize] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3usize] = b"lo\0"; -pub const SCNx8: &[u8; 4usize] = b"hhx\0"; -pub const SCNx16: &[u8; 3usize] = b"hx\0"; -pub const SCNx32: &[u8; 2usize] = b"x\0"; -pub const SCNx64: &[u8; 3usize] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3usize] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2usize] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4usize] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3usize] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3usize] = b"lx\0"; -pub const SCNdMAX: &[u8; 3usize] = b"ld\0"; -pub const SCNiMAX: &[u8; 3usize] = b"li\0"; -pub const SCNoMAX: &[u8; 3usize] = b"lo\0"; -pub const SCNuMAX: &[u8; 3usize] = b"lu\0"; -pub const SCNxMAX: &[u8; 3usize] = b"lx\0"; -pub const SCNdPTR: &[u8; 3usize] = b"ld\0"; -pub const SCNiPTR: &[u8; 3usize] = b"li\0"; -pub const SCNoPTR: &[u8; 3usize] = b"lo\0"; -pub const SCNuPTR: &[u8; 3usize] = b"lu\0"; -pub const SCNxPTR: &[u8; 3usize] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2usize] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2usize] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2usize] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2usize] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5usize] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2usize] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14usize] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11usize] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9usize] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16usize] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15usize] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15usize] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17usize] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15usize] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15usize] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12usize] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3usize] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8usize] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2usize] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2usize] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4usize] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16usize] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9usize] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14usize] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19usize] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8usize] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18usize] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24usize] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20usize] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18usize] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16usize] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12usize] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28usize] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24usize] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18usize] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37usize] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12usize] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21usize] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5usize] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17usize] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20usize] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23usize] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23usize] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9usize] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9usize] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5usize] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9usize] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11usize] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12usize] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14usize] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4usize] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4usize] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4usize] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18usize] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21usize] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11usize] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13usize] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9usize] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29usize] = - b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16usize] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8usize] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11usize] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11usize] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4usize] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10usize] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16usize] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9usize] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4usize] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8usize] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16usize] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14usize] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8usize] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15usize] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14usize] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18usize] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21usize] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16usize] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4usize] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11usize] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8usize] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22usize] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17usize] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20usize] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18usize] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33usize] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30usize] = - b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18usize] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24usize] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23usize] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14usize] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20usize] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20usize] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19usize] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19usize] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7usize] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10usize] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6usize] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6218; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9usize] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13usize] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18usize] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8usize] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14usize] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16usize] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15usize] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15usize] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20usize] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15usize] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13usize] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16usize] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10usize] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19usize] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22usize] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18usize] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17usize] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4usize] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8usize] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11usize] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9usize] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10usize] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11usize] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11usize] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13usize] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14usize] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11usize] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10usize] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14usize] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15usize] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15usize] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18usize] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14usize] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14usize] = b"interrupt_cpu\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17usize] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16usize] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10usize] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10usize] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13usize] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11usize] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10usize] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7usize] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10usize] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15usize] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4usize] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11usize] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11usize] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12usize] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16usize] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11usize] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11usize] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8usize] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13usize] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23usize] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15usize] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11usize] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14usize] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12usize] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20usize] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26usize] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12usize] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9usize] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18usize] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4usize] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4usize] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11usize] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11usize] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11usize] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5usize] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14usize] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16usize] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13usize] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14usize] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35usize] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34usize] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7usize] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19usize] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6usize] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10usize] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11usize] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23usize] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18usize] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11usize] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4usize] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19usize] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26usize] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11usize] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15usize] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24usize] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18usize] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12usize] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21usize] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22usize] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14usize] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17usize] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16usize] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18usize] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17usize] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31usize] = - b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24usize] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11usize] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18usize] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17usize] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20usize] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19usize] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24usize] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31usize] = - b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12usize] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11usize] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17usize] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10usize] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10usize] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20usize] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15usize] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17usize] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18usize] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10usize] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12usize] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14usize] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14usize] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8usize] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16usize] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18usize] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18usize] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19usize] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16usize] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16usize] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16usize] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12usize] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19usize] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22usize] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14usize] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21usize] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24usize] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21usize] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20usize] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19usize] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12usize] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14usize] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27usize] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28usize] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10usize] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11usize] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8usize] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16usize] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16usize] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24usize] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27usize] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20usize] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8usize] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18usize] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11usize] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8usize] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11usize] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6usize] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13usize] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12usize] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13usize] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18usize] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13usize] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12usize] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9usize] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17usize] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6usize] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18usize] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16usize] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4usize] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7usize] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15usize] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18usize] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17usize] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14usize] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12usize] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14usize] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21usize] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24usize] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14usize] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11usize] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16usize] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13usize] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5usize] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17usize] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6usize] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10usize] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15usize] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13usize] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13usize] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12usize] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9usize] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14usize] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16usize] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6usize] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17usize] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11usize] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8usize] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10usize] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13usize] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10usize] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12usize] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24usize] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16usize] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25usize] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19usize] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11usize] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24usize] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10usize] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15usize] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14usize] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17usize] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10usize] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18usize] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21usize] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11usize] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14usize] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12usize] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11usize] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22usize] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21usize] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21usize] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16usize] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20usize] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19usize] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12usize] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12usize] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11usize] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13usize] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18usize] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12usize] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29usize] = - b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30usize] = - b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21usize] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27usize] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14usize] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12usize] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15usize] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20usize] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27usize] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14usize] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25usize] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18usize] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17usize] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19usize] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17usize] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20usize] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15usize] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22usize] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31usize] = - b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24usize] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20usize] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21usize] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11usize] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6usize] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12usize] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16usize] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12usize] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20usize] = b"probe_sampler_cache\0"; -pub const RECORDER_INTERFACE: &[u8; 9usize] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12usize] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9usize] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20usize] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12usize] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6usize] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nThis enum is used to identify pre-defined notification events. The corresponding names are as follows:\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.167.rs b/simics-api-sys/src/bindings/bindings-6.0.167.rs deleted file mode 100644 index 0d49f95c..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.167.rs +++ /dev/null @@ -1,79049 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 36; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_H: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48] = b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0"; -pub const PRId8: &[u8; 2] = b"d\0"; -pub const PRId16: &[u8; 2] = b"d\0"; -pub const PRId32: &[u8; 2] = b"d\0"; -pub const PRId64: &[u8; 3] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2] = b"d\0"; -pub const PRIdFAST16: &[u8; 3] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3] = b"ld\0"; -pub const PRIi8: &[u8; 2] = b"i\0"; -pub const PRIi16: &[u8; 2] = b"i\0"; -pub const PRIi32: &[u8; 2] = b"i\0"; -pub const PRIi64: &[u8; 3] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3] = b"li\0"; -pub const PRIiFAST8: &[u8; 2] = b"i\0"; -pub const PRIiFAST16: &[u8; 3] = b"li\0"; -pub const PRIiFAST32: &[u8; 3] = b"li\0"; -pub const PRIiFAST64: &[u8; 3] = b"li\0"; -pub const PRIo8: &[u8; 2] = b"o\0"; -pub const PRIo16: &[u8; 2] = b"o\0"; -pub const PRIo32: &[u8; 2] = b"o\0"; -pub const PRIo64: &[u8; 3] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2] = b"o\0"; -pub const PRIoFAST16: &[u8; 3] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3] = b"lo\0"; -pub const PRIu8: &[u8; 2] = b"u\0"; -pub const PRIu16: &[u8; 2] = b"u\0"; -pub const PRIu32: &[u8; 2] = b"u\0"; -pub const PRIu64: &[u8; 3] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2] = b"u\0"; -pub const PRIuFAST16: &[u8; 3] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3] = b"lu\0"; -pub const PRIx8: &[u8; 2] = b"x\0"; -pub const PRIx16: &[u8; 2] = b"x\0"; -pub const PRIx32: &[u8; 2] = b"x\0"; -pub const PRIx64: &[u8; 3] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2] = b"x\0"; -pub const PRIxFAST16: &[u8; 3] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3] = b"lx\0"; -pub const PRIX8: &[u8; 2] = b"X\0"; -pub const PRIX16: &[u8; 2] = b"X\0"; -pub const PRIX32: &[u8; 2] = b"X\0"; -pub const PRIX64: &[u8; 3] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2] = b"X\0"; -pub const PRIXFAST16: &[u8; 3] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3] = b"lX\0"; -pub const PRIdMAX: &[u8; 3] = b"ld\0"; -pub const PRIiMAX: &[u8; 3] = b"li\0"; -pub const PRIoMAX: &[u8; 3] = b"lo\0"; -pub const PRIuMAX: &[u8; 3] = b"lu\0"; -pub const PRIxMAX: &[u8; 3] = b"lx\0"; -pub const PRIXMAX: &[u8; 3] = b"lX\0"; -pub const PRIdPTR: &[u8; 3] = b"ld\0"; -pub const PRIiPTR: &[u8; 3] = b"li\0"; -pub const PRIoPTR: &[u8; 3] = b"lo\0"; -pub const PRIuPTR: &[u8; 3] = b"lu\0"; -pub const PRIxPTR: &[u8; 3] = b"lx\0"; -pub const PRIXPTR: &[u8; 3] = b"lX\0"; -pub const SCNd8: &[u8; 4] = b"hhd\0"; -pub const SCNd16: &[u8; 3] = b"hd\0"; -pub const SCNd32: &[u8; 2] = b"d\0"; -pub const SCNd64: &[u8; 3] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3] = b"ld\0"; -pub const SCNi8: &[u8; 4] = b"hhi\0"; -pub const SCNi16: &[u8; 3] = b"hi\0"; -pub const SCNi32: &[u8; 2] = b"i\0"; -pub const SCNi64: &[u8; 3] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3] = b"li\0"; -pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3] = b"li\0"; -pub const SCNiFAST32: &[u8; 3] = b"li\0"; -pub const SCNiFAST64: &[u8; 3] = b"li\0"; -pub const SCNu8: &[u8; 4] = b"hhu\0"; -pub const SCNu16: &[u8; 3] = b"hu\0"; -pub const SCNu32: &[u8; 2] = b"u\0"; -pub const SCNu64: &[u8; 3] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3] = b"lu\0"; -pub const SCNo8: &[u8; 4] = b"hho\0"; -pub const SCNo16: &[u8; 3] = b"ho\0"; -pub const SCNo32: &[u8; 2] = b"o\0"; -pub const SCNo64: &[u8; 3] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3] = b"lo\0"; -pub const SCNx8: &[u8; 4] = b"hhx\0"; -pub const SCNx16: &[u8; 3] = b"hx\0"; -pub const SCNx32: &[u8; 2] = b"x\0"; -pub const SCNx64: &[u8; 3] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3] = b"lx\0"; -pub const SCNdMAX: &[u8; 3] = b"ld\0"; -pub const SCNiMAX: &[u8; 3] = b"li\0"; -pub const SCNoMAX: &[u8; 3] = b"lo\0"; -pub const SCNuMAX: &[u8; 3] = b"lu\0"; -pub const SCNxMAX: &[u8; 3] = b"lx\0"; -pub const SCNdPTR: &[u8; 3] = b"ld\0"; -pub const SCNiPTR: &[u8; 3] = b"li\0"; -pub const SCNoPTR: &[u8; 3] = b"lo\0"; -pub const SCNuPTR: &[u8; 3] = b"lu\0"; -pub const SCNxPTR: &[u8; 3] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29] = b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6223; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14] = b"interrupt_cpu\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31] = b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31] = b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29] = b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30] = b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30] = b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31] = b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20] = b"probe_sampler_cache\0"; -pub const PROBE_NOTIFICATION_CONTEXT_INTERFACE: &[u8; 27] = b"probe_notification_context\0"; -pub const RECORDER_INTERFACE: &[u8; 9] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nThis enum is used to identify pre-defined notification events. The corresponding names are as follows:\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -pub type probe_notification_context_interface_t = probe_notification_context_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_notification_context_interface { - pub get: ::std::option::Option *mut lang_void>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, context: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_probe_notification_context_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_rmenv(name: *const ::std::os::raw::c_char); -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.168.rs b/simics-api-sys/src/bindings/bindings-6.0.168.rs deleted file mode 100644 index b1dd7630..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.168.rs +++ /dev/null @@ -1,79113 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 35; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_H: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48] = b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0"; -pub const PRId8: &[u8; 2] = b"d\0"; -pub const PRId16: &[u8; 2] = b"d\0"; -pub const PRId32: &[u8; 2] = b"d\0"; -pub const PRId64: &[u8; 3] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2] = b"d\0"; -pub const PRIdFAST16: &[u8; 3] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3] = b"ld\0"; -pub const PRIi8: &[u8; 2] = b"i\0"; -pub const PRIi16: &[u8; 2] = b"i\0"; -pub const PRIi32: &[u8; 2] = b"i\0"; -pub const PRIi64: &[u8; 3] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3] = b"li\0"; -pub const PRIiFAST8: &[u8; 2] = b"i\0"; -pub const PRIiFAST16: &[u8; 3] = b"li\0"; -pub const PRIiFAST32: &[u8; 3] = b"li\0"; -pub const PRIiFAST64: &[u8; 3] = b"li\0"; -pub const PRIo8: &[u8; 2] = b"o\0"; -pub const PRIo16: &[u8; 2] = b"o\0"; -pub const PRIo32: &[u8; 2] = b"o\0"; -pub const PRIo64: &[u8; 3] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2] = b"o\0"; -pub const PRIoFAST16: &[u8; 3] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3] = b"lo\0"; -pub const PRIu8: &[u8; 2] = b"u\0"; -pub const PRIu16: &[u8; 2] = b"u\0"; -pub const PRIu32: &[u8; 2] = b"u\0"; -pub const PRIu64: &[u8; 3] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2] = b"u\0"; -pub const PRIuFAST16: &[u8; 3] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3] = b"lu\0"; -pub const PRIx8: &[u8; 2] = b"x\0"; -pub const PRIx16: &[u8; 2] = b"x\0"; -pub const PRIx32: &[u8; 2] = b"x\0"; -pub const PRIx64: &[u8; 3] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2] = b"x\0"; -pub const PRIxFAST16: &[u8; 3] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3] = b"lx\0"; -pub const PRIX8: &[u8; 2] = b"X\0"; -pub const PRIX16: &[u8; 2] = b"X\0"; -pub const PRIX32: &[u8; 2] = b"X\0"; -pub const PRIX64: &[u8; 3] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2] = b"X\0"; -pub const PRIXFAST16: &[u8; 3] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3] = b"lX\0"; -pub const PRIdMAX: &[u8; 3] = b"ld\0"; -pub const PRIiMAX: &[u8; 3] = b"li\0"; -pub const PRIoMAX: &[u8; 3] = b"lo\0"; -pub const PRIuMAX: &[u8; 3] = b"lu\0"; -pub const PRIxMAX: &[u8; 3] = b"lx\0"; -pub const PRIXMAX: &[u8; 3] = b"lX\0"; -pub const PRIdPTR: &[u8; 3] = b"ld\0"; -pub const PRIiPTR: &[u8; 3] = b"li\0"; -pub const PRIoPTR: &[u8; 3] = b"lo\0"; -pub const PRIuPTR: &[u8; 3] = b"lu\0"; -pub const PRIxPTR: &[u8; 3] = b"lx\0"; -pub const PRIXPTR: &[u8; 3] = b"lX\0"; -pub const SCNd8: &[u8; 4] = b"hhd\0"; -pub const SCNd16: &[u8; 3] = b"hd\0"; -pub const SCNd32: &[u8; 2] = b"d\0"; -pub const SCNd64: &[u8; 3] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3] = b"ld\0"; -pub const SCNi8: &[u8; 4] = b"hhi\0"; -pub const SCNi16: &[u8; 3] = b"hi\0"; -pub const SCNi32: &[u8; 2] = b"i\0"; -pub const SCNi64: &[u8; 3] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3] = b"li\0"; -pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3] = b"li\0"; -pub const SCNiFAST32: &[u8; 3] = b"li\0"; -pub const SCNiFAST64: &[u8; 3] = b"li\0"; -pub const SCNu8: &[u8; 4] = b"hhu\0"; -pub const SCNu16: &[u8; 3] = b"hu\0"; -pub const SCNu32: &[u8; 2] = b"u\0"; -pub const SCNu64: &[u8; 3] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3] = b"lu\0"; -pub const SCNo8: &[u8; 4] = b"hho\0"; -pub const SCNo16: &[u8; 3] = b"ho\0"; -pub const SCNo32: &[u8; 2] = b"o\0"; -pub const SCNo64: &[u8; 3] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3] = b"lo\0"; -pub const SCNx8: &[u8; 4] = b"hhx\0"; -pub const SCNx16: &[u8; 3] = b"hx\0"; -pub const SCNx32: &[u8; 2] = b"x\0"; -pub const SCNx64: &[u8; 3] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3] = b"lx\0"; -pub const SCNdMAX: &[u8; 3] = b"ld\0"; -pub const SCNiMAX: &[u8; 3] = b"li\0"; -pub const SCNoMAX: &[u8; 3] = b"lo\0"; -pub const SCNuMAX: &[u8; 3] = b"lu\0"; -pub const SCNxMAX: &[u8; 3] = b"lx\0"; -pub const SCNdPTR: &[u8; 3] = b"ld\0"; -pub const SCNiPTR: &[u8; 3] = b"li\0"; -pub const SCNoPTR: &[u8; 3] = b"lo\0"; -pub const SCNuPTR: &[u8; 3] = b"lu\0"; -pub const SCNxPTR: &[u8; 3] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12] = b"tcf_channel\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16] = b"terminal_client\0"; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18] = b"telemetry_manager\0"; -pub const SIM_VERSION: u32 = 6231; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const BIGTIME_ATTRTYPE: &[u8; 7] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_ALEN: u32 = 6; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const VGA_UPDATE_INTERFACE: &[u8; 11] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8] = b"gfx_con\0"; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12] = b"pre_decoder\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28] = b"cycle_event_instrumentation\0"; -pub const IMAGE_INTERFACE: &[u8; 6] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13] = b"pool_protect\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const COMPONENT_INTERFACE: &[u8; 10] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15] = b"disk_component\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11] = b"exec_trace\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18] = b"concurrency_group\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18] = b"instruction_fetch\0"; -pub const STEP_INTERFACE: &[u8; 5] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10] = b"step_info\0"; -pub const MMC_INTERFACE: &[u8; 4] = b"mmc\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10] = b"cpu_group\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12] = b"jit_control\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14] = b"register_view\0"; -pub const FREERUN_INTERFACE: &[u8; 8] = b"freerun\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14] = b"processor_gui\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10] = b"exception\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14] = b"callback_info\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16] = b"vga_text_update\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14] = b"data_profiler\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24] = b"register_view_read_only\0"; -pub const DECODER_INTERFACE: &[u8; 8] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18] = b"attribute_monitor\0"; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31] = b"virtual_instruction_breakpoint\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19] = b"describe_registers\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12] = b"transaction\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12] = b"cdrom_media\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16] = b"memory_profiler\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17] = b"synchronous_mode\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31] = b"bank_instrumentation_subscribe\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14] = b"cycle_control\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15] = b"temporal_state\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14] = b"event_handler\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6] = b"video\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19] = b"direct_memory_tags\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18] = b"dummy_memory_page\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11] = b"save_state\0"; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16] = b"simulator_cache\0"; -pub const PACKET_INTERFACE: &[u8; 7] = b"packet\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22] = b"device_identification\0"; -pub const EXECUTE_INTERFACE: &[u8; 8] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16] = b"execute_control\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11] = b"hap_listen\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14] = b"cache_control\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13] = b"snoop_memory\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13] = b"uint64_state\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21] = b"abs_pointer_activate\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13] = b"int_register\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20] = b"tcp_connection_info\0"; -pub const RAM_INTERFACE: &[u8; 4] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4] = b"rom\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21] = b"ram_access_subscribe\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6] = b"mouse\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18] = b"simple_dispatcher\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14] = b"interrupt_cpu\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7] = b"bridge\0"; -pub const SIGNAL_INTERFACE: &[u8; 7] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6] = b"pulse\0"; -pub const MIPS_INTERFACE: &[u8; 5] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9] = b"mips_eic\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21] = b"mips_exception_query\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13] = b"sh_interrupt\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8] = b"x86_ept\0"; -pub const PPC_INTERFACE: &[u8; 4] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11] = b"riscv_clic\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"smm_instrumentation_subscribe\0"; -pub const ARM_INTERFACE: &[u8; 4] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18] = b"arm_cpu_group_tlb\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19] = b"xtensa_import_wire\0"; -pub const NIOS_INTERFACE: &[u8; 5] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12] = b"nios_custom\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29] = b"sparc_v8_ecc_fault_injection\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12] = b"i8051_timer\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34] = - b"serial_peripheral_interface_slave\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14] = b"datagram_link\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18] = b"x86-cstate-change\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const PCI_DEVICE_INTERFACE: &[u8; 11] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18] = b"pcie_port_control\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11] = b"mdio45_phy\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16] = b"interrupt_query\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10] = b"telemetry\0"; -pub const APIC_BUS_INTERFACE: &[u8; 9] = b"apic_bus\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11] = b"nand_flash\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14] = b"i3c_daa_snoop\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16] = b"firewire_device\0"; -pub const COREINT_INTERFACE: &[u8; 8] = b"coreint\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18] = b"translation_flush\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16] = b"ms1553_terminal\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18] = b"arinc429_receiver\0"; -pub const INTERRUPT_SUBSCRIBER_INTERFACE: &[u8; 21] = b"interrupt_subscriber\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4] = b"usb\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11] = b"rapidio_v5\0"; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20] = b"ethernet_vlan_snoop\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10] = b"microwire\0"; -pub const SATA_INTERFACE: &[u8; 5] = b"sata\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15] = b"ethernet_probe\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17] = b"gbic_transceiver\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_mac_v3\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26] = b"vectored_interrupt_source\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14] = b"i2c_master_v2\0"; -pub const HPI_INTERFACE: &[u8; 4] = b"hpi\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31] = b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21] = b"osa_micro_checkpoint\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29] = b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30] = b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30] = b"instrumentation_filter_master\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15] = b"osa_control_v2\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12] = b"disassemble\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12] = b"scalar_time\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14] = b"osa_component\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11] = b"preference\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27] = b"osa_node_tree_notification\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27] = b"instrumentation_connection\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14] = b"osa_node_path\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11] = b"branch_arc\0"; -pub const RECORDER_INTERFACE: &[u8; 9] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20] = b"register_breakpoint\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18] = b"debug_symbol_file\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12] = b"osa_control\0"; -pub const TABLE_INTERFACE: &[u8; 6] = b"table\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19] = b"breakpoint_manager\0"; -pub const PROBE_INTERFACE: &[u8; 6] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20] = b"probe_sampler_cache\0"; -pub const PROBE_NOTIFICATION_CONTEXT_INTERFACE: &[u8; 27] = b"probe_notification_context\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gui_console_backend\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11] = b"checkpoint\0"; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type va_list = __gnuc_va_list; -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its bolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - #[doc = " Note: gi_frame can be NULL if the generator is \"finished\""] - pub gi_frame: *mut PyFrameObject, - #[doc = " True if generator is being executed."] - pub gi_running: ::std::os::raw::c_char, - #[doc = " The code object backing the generator"] - pub gi_code: *mut PyObject, - #[doc = " List of weak reference."] - pub gi_weakreflist: *mut PyObject, - #[doc = " Name of the generator."] - pub gi_name: *mut PyObject, - #[doc = " Qualified name of the generator."] - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - #[doc = " Note: gi_frame can be NULL if the generator is \"finished\""] - pub cr_frame: *mut PyFrameObject, - #[doc = " True if generator is being executed."] - pub cr_running: ::std::os::raw::c_char, - #[doc = " The code object backing the generator"] - pub cr_code: *mut PyObject, - #[doc = " List of weak reference."] - pub cr_weakreflist: *mut PyObject, - #[doc = " Name of the generator."] - pub cr_name: *mut PyObject, - #[doc = " Qualified name of the generator."] - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - #[doc = " Note: gi_frame can be NULL if the generator is \"finished\""] - pub ag_frame: *mut PyFrameObject, - #[doc = " True if generator is being executed."] - pub ag_running: ::std::os::raw::c_char, - #[doc = " The code object backing the generator"] - pub ag_code: *mut PyObject, - #[doc = " List of weak reference."] - pub ag_weakreflist: *mut PyObject, - #[doc = " Name of the generator."] - pub ag_name: *mut PyObject, - #[doc = " Qualified name of the generator."] - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - #[doc = " For List, Dict and Data: the number of items.\nFor Integer: 0 for unsigned, 1 for signed."] - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -extern "C" { - pub fn VT_attr_values_equal(a1: attr_value_t, a2: attr_value_t) -> bool; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nValues of the notifier_type_t type identify notification events.\nA notifier_type_t value should be obtained from\nthe SIM_notifier_type function and can then be used in other\nfunctions such as SIM_register_notifier,\nSIM_add_notifier, SIM_notify.\n\nA few notification events have predefined (constant) values. They are listed\nbelow where a notifier type in the form of a string (as accepted by\nSIM_notifier_type) is followed by the constant of the\nnotifier_type_t type corresponding to the notification event\n(as returned by SIM_notifier_type):\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_rmenv(name: *const ::std::os::raw::c_char); -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; interrupt_acknowledge, special_cycle"] - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -pub const interrupt_source_t_Interrupt_Source_Icr_Ipr: interrupt_source_t = 0; -pub const interrupt_source_t_Interrupt_Source_Msi: interrupt_source_t = 1; -pub const interrupt_source_t_Interrupt_Source_Virtual_Wire: interrupt_source_t = 2; -pub const interrupt_source_t_Interrupt_Source_Nmi_Pin: interrupt_source_t = 3; -pub const interrupt_source_t_Interrupt_Source_Lvt: interrupt_source_t = 4; -pub const interrupt_source_t_Interrupt_Source_Iommu: interrupt_source_t = 5; -pub const interrupt_source_t_Interrupt_Source_Int2: interrupt_source_t = 6; -pub const interrupt_source_t_Interrupt_Source_Vmcs_Injection: interrupt_source_t = 7; -pub const interrupt_source_t_Interrupt_Source_Legacy_Apic_Vector: interrupt_source_t = 8; -pub const interrupt_source_t_Interrupt_Source_Self_Ipi: interrupt_source_t = 9; -pub const interrupt_source_t_Interrupt_Source_Unknown: interrupt_source_t = 10; -pub type interrupt_source_t = ::std::os::raw::c_uint; -pub type interrupt_subscriber_interface_t = interrupt_subscriber_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_subscriber_interface { - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - delivery_mode: apic_delivery_mode_t, - level_assert: bool, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - source: interrupt_source_t, - ), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_interrupt_subscriber_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(reset) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -pub type probe_notification_context_interface_t = probe_notification_context_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_notification_context_interface { - pub get: ::std::option::Option *mut lang_void>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, context: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_probe_notification_context_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(set) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.169.rs b/simics-api-sys/src/bindings/bindings-6.0.169.rs deleted file mode 100644 index aabfb720..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.169.rs +++ /dev/null @@ -1,79091 +0,0 @@ -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 35; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_H: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48] = b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0"; -pub const PRId8: &[u8; 2] = b"d\0"; -pub const PRId16: &[u8; 2] = b"d\0"; -pub const PRId32: &[u8; 2] = b"d\0"; -pub const PRId64: &[u8; 3] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2] = b"d\0"; -pub const PRIdFAST16: &[u8; 3] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3] = b"ld\0"; -pub const PRIi8: &[u8; 2] = b"i\0"; -pub const PRIi16: &[u8; 2] = b"i\0"; -pub const PRIi32: &[u8; 2] = b"i\0"; -pub const PRIi64: &[u8; 3] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3] = b"li\0"; -pub const PRIiFAST8: &[u8; 2] = b"i\0"; -pub const PRIiFAST16: &[u8; 3] = b"li\0"; -pub const PRIiFAST32: &[u8; 3] = b"li\0"; -pub const PRIiFAST64: &[u8; 3] = b"li\0"; -pub const PRIo8: &[u8; 2] = b"o\0"; -pub const PRIo16: &[u8; 2] = b"o\0"; -pub const PRIo32: &[u8; 2] = b"o\0"; -pub const PRIo64: &[u8; 3] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2] = b"o\0"; -pub const PRIoFAST16: &[u8; 3] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3] = b"lo\0"; -pub const PRIu8: &[u8; 2] = b"u\0"; -pub const PRIu16: &[u8; 2] = b"u\0"; -pub const PRIu32: &[u8; 2] = b"u\0"; -pub const PRIu64: &[u8; 3] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2] = b"u\0"; -pub const PRIuFAST16: &[u8; 3] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3] = b"lu\0"; -pub const PRIx8: &[u8; 2] = b"x\0"; -pub const PRIx16: &[u8; 2] = b"x\0"; -pub const PRIx32: &[u8; 2] = b"x\0"; -pub const PRIx64: &[u8; 3] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2] = b"x\0"; -pub const PRIxFAST16: &[u8; 3] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3] = b"lx\0"; -pub const PRIX8: &[u8; 2] = b"X\0"; -pub const PRIX16: &[u8; 2] = b"X\0"; -pub const PRIX32: &[u8; 2] = b"X\0"; -pub const PRIX64: &[u8; 3] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2] = b"X\0"; -pub const PRIXFAST16: &[u8; 3] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3] = b"lX\0"; -pub const PRIdMAX: &[u8; 3] = b"ld\0"; -pub const PRIiMAX: &[u8; 3] = b"li\0"; -pub const PRIoMAX: &[u8; 3] = b"lo\0"; -pub const PRIuMAX: &[u8; 3] = b"lu\0"; -pub const PRIxMAX: &[u8; 3] = b"lx\0"; -pub const PRIXMAX: &[u8; 3] = b"lX\0"; -pub const PRIdPTR: &[u8; 3] = b"ld\0"; -pub const PRIiPTR: &[u8; 3] = b"li\0"; -pub const PRIoPTR: &[u8; 3] = b"lo\0"; -pub const PRIuPTR: &[u8; 3] = b"lu\0"; -pub const PRIxPTR: &[u8; 3] = b"lx\0"; -pub const PRIXPTR: &[u8; 3] = b"lX\0"; -pub const SCNd8: &[u8; 4] = b"hhd\0"; -pub const SCNd16: &[u8; 3] = b"hd\0"; -pub const SCNd32: &[u8; 2] = b"d\0"; -pub const SCNd64: &[u8; 3] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3] = b"ld\0"; -pub const SCNi8: &[u8; 4] = b"hhi\0"; -pub const SCNi16: &[u8; 3] = b"hi\0"; -pub const SCNi32: &[u8; 2] = b"i\0"; -pub const SCNi64: &[u8; 3] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3] = b"li\0"; -pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3] = b"li\0"; -pub const SCNiFAST32: &[u8; 3] = b"li\0"; -pub const SCNiFAST64: &[u8; 3] = b"li\0"; -pub const SCNu8: &[u8; 4] = b"hhu\0"; -pub const SCNu16: &[u8; 3] = b"hu\0"; -pub const SCNu32: &[u8; 2] = b"u\0"; -pub const SCNu64: &[u8; 3] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3] = b"lu\0"; -pub const SCNo8: &[u8; 4] = b"hho\0"; -pub const SCNo16: &[u8; 3] = b"ho\0"; -pub const SCNo32: &[u8; 2] = b"o\0"; -pub const SCNo64: &[u8; 3] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3] = b"lo\0"; -pub const SCNx8: &[u8; 4] = b"hhx\0"; -pub const SCNx16: &[u8; 3] = b"hx\0"; -pub const SCNx32: &[u8; 2] = b"x\0"; -pub const SCNx64: &[u8; 3] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3] = b"lx\0"; -pub const SCNdMAX: &[u8; 3] = b"ld\0"; -pub const SCNiMAX: &[u8; 3] = b"li\0"; -pub const SCNoMAX: &[u8; 3] = b"lo\0"; -pub const SCNuMAX: &[u8; 3] = b"lu\0"; -pub const SCNxMAX: &[u8; 3] = b"lx\0"; -pub const SCNdPTR: &[u8; 3] = b"ld\0"; -pub const SCNiPTR: &[u8; 3] = b"li\0"; -pub const SCNoPTR: &[u8; 3] = b"lo\0"; -pub const SCNuPTR: &[u8; 3] = b"lu\0"; -pub const SCNxPTR: &[u8; 3] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const SIMICS_HOST_TYPE: &[u8; 8] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const SO_SFX: &[u8; 3] = b"so\0"; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const __bool_true_false_are_defined: u32 = 1; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const SIM_VERSION: u32 = 6233; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const BIGTIME_ATTRTYPE: &[u8; 7] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31] = b"virtual_instruction_breakpoint\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24] = b"branch_recorder_handler\0"; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12] = b"tcf_channel\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29] = b"sparc_v8_ecc_fault_injection\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18] = b"riscv_coprocessor\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11] = b"riscv_clic\0"; -pub const ARM_INTERFACE: &[u8; 4] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18] = b"arm_cpu_group_tlb\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8] = b"x86_ept\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4] = b"pmr\0"; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12] = b"pre_decoder\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"smm_instrumentation_subscribe\0"; -pub const NIOS_INTERFACE: &[u8; 5] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12] = b"nios_custom\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19] = b"xtensa_import_wire\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12] = b"i8051_timer\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13] = b"sh_interrupt\0"; -pub const MIPS_INTERFACE: &[u8; 5] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9] = b"mips_eic\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21] = b"mips_exception_query\0"; -pub const COMPONENT_INTERFACE: &[u8; 10] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15] = b"disk_component\0"; -pub const DECODER_INTERFACE: &[u8; 8] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const EXEC_TRACE_INTERFACE: &[u8; 11] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16] = b"execute_control\0"; -pub const IMAGE_INTERFACE: &[u8; 6] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13] = b"pool_protect\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13] = b"int_register\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11] = b"save_state\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15] = b"temporal_state\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18] = b"simple_dispatcher\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14] = b"interrupt_cpu\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7] = b"bridge\0"; -pub const RAM_INTERFACE: &[u8; 4] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4] = b"rom\0"; -pub const SIGNAL_INTERFACE: &[u8; 7] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6] = b"pulse\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11] = b"rapidio_v5\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11] = b"mdio45_phy\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18] = b"pcie_port_control\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26] = b"vectored_interrupt_source\0"; -pub const APIC_BUS_INTERFACE: &[u8; 9] = b"apic_bus\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14] = b"datagram_link\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4] = b"usb\0"; -pub const INTERRUPT_SUBSCRIBER_INTERFACE: &[u8; 21] = b"interrupt_subscriber\0"; -pub const COREINT_INTERFACE: &[u8; 8] = b"coreint\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14] = b"i2c_master_v2\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10] = b"telemetry\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18] = b"x86-cstate-change\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11] = b"nand_flash\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18] = b"arinc429_receiver\0"; -pub const HPI_INTERFACE: &[u8; 4] = b"hpi\0"; -pub const SATA_INTERFACE: &[u8; 5] = b"sata\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14] = b"i3c_daa_snoop\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34] = - b"serial_peripheral_interface_slave\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17] = b"gbic_transceiver\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16] = b"ms1553_terminal\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16] = b"interrupt_query\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16] = b"firewire_device\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const MICROWIRE_INTERFACE: &[u8; 10] = b"microwire\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18] = b"translation_flush\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_mac_v3\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15] = b"ethernet_probe\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31] = b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24] = b"osa_tracker_state_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17] = b"osa_mapper_query\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22] = b"osa_tracker_component\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18] = b"debug_symbol_file\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19] = b"breakpoint_manager\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20] = b"osa_tracker_control\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14] = b"osa_component\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27] = b"osa_node_tree_notification\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11] = b"preference\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15] = b"osa_control_v2\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14] = b"osa_node_path\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21] = b"osa_micro_checkpoint\0"; -pub const TABLE_INTERFACE: &[u8; 6] = b"table\0"; -pub const PROBE_INTERFACE: &[u8; 6] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20] = b"probe_sampler_cache\0"; -pub const PROBE_NOTIFICATION_CONTEXT_INTERFACE: &[u8; 27] = b"probe_notification_context\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12] = b"disassemble\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11] = b"branch_arc\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20] = b"osa_node_tree_admin\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12] = b"scalar_time\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27] = b"instrumentation_connection\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gui_console_backend\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29] = b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30] = b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30] = b"instrumentation_filter_master\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18] = b"osa_machine_query\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15] = b"osa_parameters\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20] = b"register_breakpoint\0"; -pub const RECORDER_INTERFACE: &[u8; 9] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9] = b"recorded\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11] = b"checkpoint\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19] = b"describe_registers\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14] = b"callback_info\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11] = b"hap_listen\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14] = b"register_view\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19] = b"direct_memory_tags\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18] = b"dummy_memory_page\0"; -pub const MMC_INTERFACE: &[u8; 4] = b"mmc\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18] = b"attribute_monitor\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14] = b"cycle_control\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14] = b"event_handler\0"; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16] = b"simulator_cache\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12] = b"cdrom_media\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16] = b"vga_text_update\0"; -pub const FREERUN_INTERFACE: &[u8; 8] = b"freerun\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17] = b"synchronous_mode\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22] = b"device_identification\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20] = b"tcp_connection_info\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16] = b"memory_profiler\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21] = b"ram_access_subscribe\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21] = b"abs_pointer_activate\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10] = b"cpu_group\0"; -pub const PACKET_INTERFACE: &[u8; 7] = b"packet\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18] = b"concurrency_group\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18] = b"instruction_fetch\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6] = b"video\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12] = b"transaction\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14] = b"processor_gui\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10] = b"exception\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24] = b"register_view_read_only\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14] = b"data_profiler\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13] = b"snoop_memory\0"; -pub const STEP_INTERFACE: &[u8; 5] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10] = b"step_info\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13] = b"uint64_state\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8] = b"gfx_con\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6] = b"mouse\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31] = b"bank_instrumentation_subscribe\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12] = b"jit_control\0"; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its bolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -extern "C" { - pub fn VT_attr_values_equal(a1: attr_value_t, a2: attr_value_t) -> bool; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " \nnotifier_type_t\nnotifier_type_t\n\nnotifier_type_t\n\n\n\n\n\n\nValues of the notifier_type_t type identify notification events.\nA notifier_type_t value should be obtained from\nthe SIM_notifier_type function and can then be used in other\nfunctions such as SIM_register_notifier,\nSIM_add_notifier, SIM_notify.\n\nA few notification events have predefined (constant) values. They are listed\nbelow where a notifier type in the form of a string (as accepted by\nSIM_notifier_type) is followed by the constant of the\nnotifier_type_t type corresponding to the notification event\n(as returned by SIM_notifier_type):\n
    \n
  • \"queue-change\" (Sim_Notify_Queue_Change)
  • \n
  • \"cell-change\" (Sim_Notify_Cell_Change)
  • \n
  • \"frequency-change\" (Sim_Notify_Frequency_Change)
  • \n
  • \"concurrency-change\" (Sim_Notify_Concurrency_Change)
  • \n
  • \"object-delete\" (Sim_Notify_Object_Delete)
  • \n
  • \"map-change\" (Sim_Notify_Map_Change)
  • \n
  • \"state-change\" (Sim_Notify_State_Change)
  • \n
  • \"freerunning-mode-change\"\n(Sim_Notify_Freerunning_Mode_Change)
  • \n
  • \"bank-register-value-change\"\n(Sim_Notify_Bank_Register_Value_Change)
  • \n
\n
\n\nSIM_notify,\nSIM_add_notifier,\nSIM_register_notifier,\nSIM_notifier_type,\nSIM_describe_notifier,\nSIM_notifier_description\n\n
\n
\n\n"] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_coprocessor_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub const interrupt_source_t_Interrupt_Source_Icr_Ipr: interrupt_source_t = 0; -pub const interrupt_source_t_Interrupt_Source_Msi: interrupt_source_t = 1; -pub const interrupt_source_t_Interrupt_Source_Virtual_Wire: interrupt_source_t = 2; -pub const interrupt_source_t_Interrupt_Source_Nmi_Pin: interrupt_source_t = 3; -pub const interrupt_source_t_Interrupt_Source_Lvt: interrupt_source_t = 4; -pub const interrupt_source_t_Interrupt_Source_Iommu: interrupt_source_t = 5; -pub const interrupt_source_t_Interrupt_Source_Int2: interrupt_source_t = 6; -pub const interrupt_source_t_Interrupt_Source_Vmcs_Injection: interrupt_source_t = 7; -pub const interrupt_source_t_Interrupt_Source_Legacy_Apic_Vector: interrupt_source_t = 8; -pub const interrupt_source_t_Interrupt_Source_Self_Ipi: interrupt_source_t = 9; -pub const interrupt_source_t_Interrupt_Source_Unknown: interrupt_source_t = 10; -pub type interrupt_source_t = ::std::os::raw::c_uint; -pub type interrupt_subscriber_interface_t = interrupt_subscriber_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_subscriber_interface { - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - delivery_mode: apic_delivery_mode_t, - level_assert: bool, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - source: interrupt_source_t, - ), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_interrupt_subscriber_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -pub type probe_notification_context_interface_t = probe_notification_context_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_notification_context_interface { - pub get: ::std::option::Option *mut lang_void>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, context: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_probe_notification_context_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(set) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_rmenv(name: *const ::std::os::raw::c_char); -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.170.rs b/simics-api-sys/src/bindings/bindings-6.0.170.rs deleted file mode 100644 index 61f55f7c..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.170.rs +++ /dev/null @@ -1,79198 +0,0 @@ -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 35; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const __GNUC_VA_LIST: u32 = 1; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_H: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48] = b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0"; -pub const PRId8: &[u8; 2] = b"d\0"; -pub const PRId16: &[u8; 2] = b"d\0"; -pub const PRId32: &[u8; 2] = b"d\0"; -pub const PRId64: &[u8; 3] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2] = b"d\0"; -pub const PRIdFAST16: &[u8; 3] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3] = b"ld\0"; -pub const PRIi8: &[u8; 2] = b"i\0"; -pub const PRIi16: &[u8; 2] = b"i\0"; -pub const PRIi32: &[u8; 2] = b"i\0"; -pub const PRIi64: &[u8; 3] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3] = b"li\0"; -pub const PRIiFAST8: &[u8; 2] = b"i\0"; -pub const PRIiFAST16: &[u8; 3] = b"li\0"; -pub const PRIiFAST32: &[u8; 3] = b"li\0"; -pub const PRIiFAST64: &[u8; 3] = b"li\0"; -pub const PRIo8: &[u8; 2] = b"o\0"; -pub const PRIo16: &[u8; 2] = b"o\0"; -pub const PRIo32: &[u8; 2] = b"o\0"; -pub const PRIo64: &[u8; 3] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2] = b"o\0"; -pub const PRIoFAST16: &[u8; 3] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3] = b"lo\0"; -pub const PRIu8: &[u8; 2] = b"u\0"; -pub const PRIu16: &[u8; 2] = b"u\0"; -pub const PRIu32: &[u8; 2] = b"u\0"; -pub const PRIu64: &[u8; 3] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2] = b"u\0"; -pub const PRIuFAST16: &[u8; 3] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3] = b"lu\0"; -pub const PRIx8: &[u8; 2] = b"x\0"; -pub const PRIx16: &[u8; 2] = b"x\0"; -pub const PRIx32: &[u8; 2] = b"x\0"; -pub const PRIx64: &[u8; 3] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2] = b"x\0"; -pub const PRIxFAST16: &[u8; 3] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3] = b"lx\0"; -pub const PRIX8: &[u8; 2] = b"X\0"; -pub const PRIX16: &[u8; 2] = b"X\0"; -pub const PRIX32: &[u8; 2] = b"X\0"; -pub const PRIX64: &[u8; 3] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2] = b"X\0"; -pub const PRIXFAST16: &[u8; 3] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3] = b"lX\0"; -pub const PRIdMAX: &[u8; 3] = b"ld\0"; -pub const PRIiMAX: &[u8; 3] = b"li\0"; -pub const PRIoMAX: &[u8; 3] = b"lo\0"; -pub const PRIuMAX: &[u8; 3] = b"lu\0"; -pub const PRIxMAX: &[u8; 3] = b"lx\0"; -pub const PRIXMAX: &[u8; 3] = b"lX\0"; -pub const PRIdPTR: &[u8; 3] = b"ld\0"; -pub const PRIiPTR: &[u8; 3] = b"li\0"; -pub const PRIoPTR: &[u8; 3] = b"lo\0"; -pub const PRIuPTR: &[u8; 3] = b"lu\0"; -pub const PRIxPTR: &[u8; 3] = b"lx\0"; -pub const PRIXPTR: &[u8; 3] = b"lX\0"; -pub const SCNd8: &[u8; 4] = b"hhd\0"; -pub const SCNd16: &[u8; 3] = b"hd\0"; -pub const SCNd32: &[u8; 2] = b"d\0"; -pub const SCNd64: &[u8; 3] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3] = b"ld\0"; -pub const SCNi8: &[u8; 4] = b"hhi\0"; -pub const SCNi16: &[u8; 3] = b"hi\0"; -pub const SCNi32: &[u8; 2] = b"i\0"; -pub const SCNi64: &[u8; 3] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3] = b"li\0"; -pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3] = b"li\0"; -pub const SCNiFAST32: &[u8; 3] = b"li\0"; -pub const SCNiFAST64: &[u8; 3] = b"li\0"; -pub const SCNu8: &[u8; 4] = b"hhu\0"; -pub const SCNu16: &[u8; 3] = b"hu\0"; -pub const SCNu32: &[u8; 2] = b"u\0"; -pub const SCNu64: &[u8; 3] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3] = b"lu\0"; -pub const SCNo8: &[u8; 4] = b"hho\0"; -pub const SCNo16: &[u8; 3] = b"ho\0"; -pub const SCNo32: &[u8; 2] = b"o\0"; -pub const SCNo64: &[u8; 3] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3] = b"lo\0"; -pub const SCNx8: &[u8; 4] = b"hhx\0"; -pub const SCNx16: &[u8; 3] = b"hx\0"; -pub const SCNx32: &[u8; 2] = b"x\0"; -pub const SCNx64: &[u8; 3] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3] = b"lx\0"; -pub const SCNdMAX: &[u8; 3] = b"ld\0"; -pub const SCNiMAX: &[u8; 3] = b"li\0"; -pub const SCNoMAX: &[u8; 3] = b"lo\0"; -pub const SCNuMAX: &[u8; 3] = b"lu\0"; -pub const SCNxMAX: &[u8; 3] = b"lx\0"; -pub const SCNdPTR: &[u8; 3] = b"ld\0"; -pub const SCNiPTR: &[u8; 3] = b"li\0"; -pub const SCNoPTR: &[u8; 3] = b"lo\0"; -pub const SCNuPTR: &[u8; 3] = b"lu\0"; -pub const SCNxPTR: &[u8; 3] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const SIMICS_HOST_TYPE: &[u8; 8] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const SO_SFX: &[u8; 3] = b"so\0"; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const __bool_true_false_are_defined: u32 = 1; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const SIM_VERSION: u32 = 6235; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const BIGTIME_ATTRTYPE: &[u8; 7] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31] = b"virtual_instruction_breakpoint\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24] = b"branch_recorder_handler\0"; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12] = b"tcf_channel\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29] = b"sparc_v8_ecc_fault_injection\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18] = b"riscv_coprocessor\0"; -pub const RISCV_IMSIC_INTERFACE: &[u8; 12] = b"riscv_imsic\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11] = b"riscv_clic\0"; -pub const ARM_INTERFACE: &[u8; 4] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18] = b"arm_cpu_group_tlb\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8] = b"x86_ept\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4] = b"pmr\0"; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12] = b"pre_decoder\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"smm_instrumentation_subscribe\0"; -pub const NIOS_INTERFACE: &[u8; 5] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12] = b"nios_custom\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19] = b"xtensa_import_wire\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12] = b"i8051_timer\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13] = b"sh_interrupt\0"; -pub const MIPS_INTERFACE: &[u8; 5] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9] = b"mips_eic\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21] = b"mips_exception_query\0"; -pub const COMPONENT_INTERFACE: &[u8; 10] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15] = b"disk_component\0"; -pub const DECODER_INTERFACE: &[u8; 8] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const EXEC_TRACE_INTERFACE: &[u8; 11] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16] = b"execute_control\0"; -pub const IMAGE_INTERFACE: &[u8; 6] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13] = b"pool_protect\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13] = b"int_register\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11] = b"save_state\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15] = b"temporal_state\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18] = b"simple_dispatcher\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14] = b"interrupt_cpu\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7] = b"bridge\0"; -pub const RAM_INTERFACE: &[u8; 4] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4] = b"rom\0"; -pub const SIGNAL_INTERFACE: &[u8; 7] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6] = b"pulse\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11] = b"rapidio_v5\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11] = b"mdio45_phy\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18] = b"pcie_port_control\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26] = b"vectored_interrupt_source\0"; -pub const APIC_BUS_INTERFACE: &[u8; 9] = b"apic_bus\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14] = b"datagram_link\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4] = b"usb\0"; -pub const INTERRUPT_SUBSCRIBER_INTERFACE: &[u8; 21] = b"interrupt_subscriber\0"; -pub const COREINT_INTERFACE: &[u8; 8] = b"coreint\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14] = b"i2c_master_v2\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10] = b"telemetry\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18] = b"x86-cstate-change\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11] = b"nand_flash\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18] = b"arinc429_receiver\0"; -pub const HPI_INTERFACE: &[u8; 4] = b"hpi\0"; -pub const SATA_INTERFACE: &[u8; 5] = b"sata\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14] = b"i3c_daa_snoop\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34] = - b"serial_peripheral_interface_slave\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17] = b"gbic_transceiver\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16] = b"ms1553_terminal\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16] = b"interrupt_query\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16] = b"firewire_device\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const MICROWIRE_INTERFACE: &[u8; 10] = b"microwire\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18] = b"translation_flush\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_mac_v3\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15] = b"ethernet_probe\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31] = b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24] = b"osa_tracker_state_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17] = b"osa_mapper_query\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22] = b"osa_tracker_component\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18] = b"debug_symbol_file\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19] = b"breakpoint_manager\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20] = b"osa_tracker_control\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14] = b"osa_component\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27] = b"osa_node_tree_notification\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11] = b"preference\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15] = b"osa_control_v2\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14] = b"osa_node_path\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21] = b"osa_micro_checkpoint\0"; -pub const TABLE_INTERFACE: &[u8; 6] = b"table\0"; -pub const PROBE_INTERFACE: &[u8; 6] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20] = b"probe_sampler_cache\0"; -pub const PROBE_NOTIFICATION_CONTEXT_INTERFACE: &[u8; 27] = b"probe_notification_context\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12] = b"disassemble\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11] = b"branch_arc\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20] = b"osa_node_tree_admin\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12] = b"scalar_time\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27] = b"instrumentation_connection\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gui_console_backend\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29] = b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30] = b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30] = b"instrumentation_filter_master\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18] = b"osa_machine_query\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15] = b"osa_parameters\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20] = b"register_breakpoint\0"; -pub const RECORDER_INTERFACE: &[u8; 9] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9] = b"recorded\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11] = b"checkpoint\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19] = b"describe_registers\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14] = b"callback_info\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11] = b"hap_listen\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14] = b"register_view\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19] = b"direct_memory_tags\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18] = b"dummy_memory_page\0"; -pub const MMC_INTERFACE: &[u8; 4] = b"mmc\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18] = b"attribute_monitor\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14] = b"cycle_control\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14] = b"event_handler\0"; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16] = b"simulator_cache\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12] = b"cdrom_media\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16] = b"vga_text_update\0"; -pub const FREERUN_INTERFACE: &[u8; 8] = b"freerun\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17] = b"synchronous_mode\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22] = b"device_identification\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20] = b"tcp_connection_info\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16] = b"memory_profiler\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21] = b"ram_access_subscribe\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21] = b"abs_pointer_activate\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10] = b"cpu_group\0"; -pub const PACKET_INTERFACE: &[u8; 7] = b"packet\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18] = b"concurrency_group\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18] = b"instruction_fetch\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6] = b"video\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12] = b"transaction\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14] = b"processor_gui\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10] = b"exception\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24] = b"register_view_read_only\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14] = b"data_profiler\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13] = b"snoop_memory\0"; -pub const STEP_INTERFACE: &[u8; 5] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10] = b"step_info\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13] = b"uint64_state\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8] = b"gfx_con\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6] = b"mouse\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31] = b"bank_instrumentation_subscribe\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12] = b"jit_control\0"; -pub type va_list = __builtin_va_list; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its bolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -extern "C" { - pub fn VT_attr_values_equal(a1: attr_value_t, a2: attr_value_t) -> bool; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " Note that notifier types can be added either by modifying this enum or\nby using SIM_notifier_type. The latter is typically preferred since it does\nnot change the Simics API."] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_imsic_file_id_t_Riscv_Imsic_Machine_File: riscv_imsic_file_id_t = -1; -pub const riscv_imsic_file_id_t_Riscv_Imsic_Supervisor_File: riscv_imsic_file_id_t = 0; -#[doc = " \nriscv_imsic_file_id_t\nriscv_imsic_file_id_t\n\nriscv_imsic_file_id_t\n\n\n\n\nType used with the internal interface riscv_imsic_interface_t.\n\n\n\n\n\n"] -pub type riscv_imsic_file_id_t = ::std::os::raw::c_int; -pub type riscv_imsic_interface_t = riscv_imsic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_imsic_interface { - #[doc = " GEILEN"] - pub num_guest_files: - ::std::option::Option uint32>, - #[doc = " id is either one of the standard files, machine or supervisor,\n or one of the guest files (vgein)."] - pub read_irq_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - offset: uint32, - ) -> uint64, - >, - pub read_and_write_irq_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - offset: uint32, - new_value: uint64, - mask: uint64, - ) -> uint64, - >, - pub read_xtopei: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: riscv_imsic_file_id_t) -> uint64, - >, - pub read_and_write_xtopei: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - value: uint64, - mask: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_riscv_imsic_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(riscv_imsic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_imsic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_guest_files) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(num_guest_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_irq_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_irq_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_and_write_irq_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_and_write_irq_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_xtopei) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_xtopei) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_and_write_xtopei) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_and_write_xtopei) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_imsic_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub const interrupt_source_t_Interrupt_Source_Icr_Ipr: interrupt_source_t = 0; -pub const interrupt_source_t_Interrupt_Source_Msi: interrupt_source_t = 1; -pub const interrupt_source_t_Interrupt_Source_Virtual_Wire: interrupt_source_t = 2; -pub const interrupt_source_t_Interrupt_Source_Nmi_Pin: interrupt_source_t = 3; -pub const interrupt_source_t_Interrupt_Source_Lvt: interrupt_source_t = 4; -pub const interrupt_source_t_Interrupt_Source_Iommu: interrupt_source_t = 5; -pub const interrupt_source_t_Interrupt_Source_Int2: interrupt_source_t = 6; -pub const interrupt_source_t_Interrupt_Source_Vmcs_Injection: interrupt_source_t = 7; -pub const interrupt_source_t_Interrupt_Source_Legacy_Apic_Vector: interrupt_source_t = 8; -pub const interrupt_source_t_Interrupt_Source_Self_Ipi: interrupt_source_t = 9; -pub const interrupt_source_t_Interrupt_Source_Unknown: interrupt_source_t = 10; -pub type interrupt_source_t = ::std::os::raw::c_uint; -pub type interrupt_subscriber_interface_t = interrupt_subscriber_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_subscriber_interface { - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - delivery_mode: apic_delivery_mode_t, - level_assert: bool, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - source: interrupt_source_t, - ), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_interrupt_subscriber_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -pub type probe_notification_context_interface_t = probe_notification_context_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_notification_context_interface { - pub get: ::std::option::Option *mut lang_void>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, context: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_probe_notification_context_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(set) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_rmenv(name: *const ::std::os::raw::c_char); -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.171.rs b/simics-api-sys/src/bindings/bindings-6.0.171.rs deleted file mode 100644 index ca3cd9c3..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.171.rs +++ /dev/null @@ -1,79227 +0,0 @@ -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 37; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_H: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48] = b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0"; -pub const PRId8: &[u8; 2] = b"d\0"; -pub const PRId16: &[u8; 2] = b"d\0"; -pub const PRId32: &[u8; 2] = b"d\0"; -pub const PRId64: &[u8; 3] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2] = b"d\0"; -pub const PRIdFAST16: &[u8; 3] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3] = b"ld\0"; -pub const PRIi8: &[u8; 2] = b"i\0"; -pub const PRIi16: &[u8; 2] = b"i\0"; -pub const PRIi32: &[u8; 2] = b"i\0"; -pub const PRIi64: &[u8; 3] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3] = b"li\0"; -pub const PRIiFAST8: &[u8; 2] = b"i\0"; -pub const PRIiFAST16: &[u8; 3] = b"li\0"; -pub const PRIiFAST32: &[u8; 3] = b"li\0"; -pub const PRIiFAST64: &[u8; 3] = b"li\0"; -pub const PRIo8: &[u8; 2] = b"o\0"; -pub const PRIo16: &[u8; 2] = b"o\0"; -pub const PRIo32: &[u8; 2] = b"o\0"; -pub const PRIo64: &[u8; 3] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2] = b"o\0"; -pub const PRIoFAST16: &[u8; 3] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3] = b"lo\0"; -pub const PRIu8: &[u8; 2] = b"u\0"; -pub const PRIu16: &[u8; 2] = b"u\0"; -pub const PRIu32: &[u8; 2] = b"u\0"; -pub const PRIu64: &[u8; 3] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2] = b"u\0"; -pub const PRIuFAST16: &[u8; 3] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3] = b"lu\0"; -pub const PRIx8: &[u8; 2] = b"x\0"; -pub const PRIx16: &[u8; 2] = b"x\0"; -pub const PRIx32: &[u8; 2] = b"x\0"; -pub const PRIx64: &[u8; 3] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2] = b"x\0"; -pub const PRIxFAST16: &[u8; 3] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3] = b"lx\0"; -pub const PRIX8: &[u8; 2] = b"X\0"; -pub const PRIX16: &[u8; 2] = b"X\0"; -pub const PRIX32: &[u8; 2] = b"X\0"; -pub const PRIX64: &[u8; 3] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2] = b"X\0"; -pub const PRIXFAST16: &[u8; 3] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3] = b"lX\0"; -pub const PRIdMAX: &[u8; 3] = b"ld\0"; -pub const PRIiMAX: &[u8; 3] = b"li\0"; -pub const PRIoMAX: &[u8; 3] = b"lo\0"; -pub const PRIuMAX: &[u8; 3] = b"lu\0"; -pub const PRIxMAX: &[u8; 3] = b"lx\0"; -pub const PRIXMAX: &[u8; 3] = b"lX\0"; -pub const PRIdPTR: &[u8; 3] = b"ld\0"; -pub const PRIiPTR: &[u8; 3] = b"li\0"; -pub const PRIoPTR: &[u8; 3] = b"lo\0"; -pub const PRIuPTR: &[u8; 3] = b"lu\0"; -pub const PRIxPTR: &[u8; 3] = b"lx\0"; -pub const PRIXPTR: &[u8; 3] = b"lX\0"; -pub const SCNd8: &[u8; 4] = b"hhd\0"; -pub const SCNd16: &[u8; 3] = b"hd\0"; -pub const SCNd32: &[u8; 2] = b"d\0"; -pub const SCNd64: &[u8; 3] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3] = b"ld\0"; -pub const SCNi8: &[u8; 4] = b"hhi\0"; -pub const SCNi16: &[u8; 3] = b"hi\0"; -pub const SCNi32: &[u8; 2] = b"i\0"; -pub const SCNi64: &[u8; 3] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3] = b"li\0"; -pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3] = b"li\0"; -pub const SCNiFAST32: &[u8; 3] = b"li\0"; -pub const SCNiFAST64: &[u8; 3] = b"li\0"; -pub const SCNu8: &[u8; 4] = b"hhu\0"; -pub const SCNu16: &[u8; 3] = b"hu\0"; -pub const SCNu32: &[u8; 2] = b"u\0"; -pub const SCNu64: &[u8; 3] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3] = b"lu\0"; -pub const SCNo8: &[u8; 4] = b"hho\0"; -pub const SCNo16: &[u8; 3] = b"ho\0"; -pub const SCNo32: &[u8; 2] = b"o\0"; -pub const SCNo64: &[u8; 3] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3] = b"lo\0"; -pub const SCNx8: &[u8; 4] = b"hhx\0"; -pub const SCNx16: &[u8; 3] = b"hx\0"; -pub const SCNx32: &[u8; 2] = b"x\0"; -pub const SCNx64: &[u8; 3] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3] = b"lx\0"; -pub const SCNdMAX: &[u8; 3] = b"ld\0"; -pub const SCNiMAX: &[u8; 3] = b"li\0"; -pub const SCNoMAX: &[u8; 3] = b"lo\0"; -pub const SCNuMAX: &[u8; 3] = b"lu\0"; -pub const SCNxMAX: &[u8; 3] = b"lx\0"; -pub const SCNdPTR: &[u8; 3] = b"ld\0"; -pub const SCNiPTR: &[u8; 3] = b"li\0"; -pub const SCNoPTR: &[u8; 3] = b"lo\0"; -pub const SCNuPTR: &[u8; 3] = b"lu\0"; -pub const SCNxPTR: &[u8; 3] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18] = b"riscv_coprocessor\0"; -pub const RISCV_IMSIC_INTERFACE: &[u8; 12] = b"riscv_imsic\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29] = b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6238; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14] = b"interrupt_cpu\0"; -pub const INTERRUPT_SUBSCRIBER_INTERFACE: &[u8; 21] = b"interrupt_subscriber\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31] = b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31] = b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29] = b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30] = b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30] = b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31] = b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20] = b"probe_sampler_cache\0"; -pub const PROBE_NOTIFICATION_CONTEXT_INTERFACE: &[u8; 27] = b"probe_notification_context\0"; -pub const RECORDER_INTERFACE: &[u8; 9] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type va_list = __gnuc_va_list; -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -extern "C" { - pub fn VT_attr_values_equal(a1: attr_value_t, a2: attr_value_t) -> bool; -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_imsic_file_id_t_Riscv_Imsic_Machine_File: riscv_imsic_file_id_t = -1; -pub const riscv_imsic_file_id_t_Riscv_Imsic_Supervisor_File: riscv_imsic_file_id_t = 0; -#[doc = " \nriscv_imsic_file_id_t\nriscv_imsic_file_id_t\n\nriscv_imsic_file_id_t\n\n\n\n\nType used with the internal interface riscv_imsic_interface_t.\n\n\n\n\n\n"] -pub type riscv_imsic_file_id_t = ::std::os::raw::c_int; -pub type riscv_imsic_interface_t = riscv_imsic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_imsic_interface { - #[doc = " GEILEN"] - pub num_guest_files: - ::std::option::Option uint32>, - #[doc = " id is either one of the standard files, machine or supervisor,\n or one of the guest files (vgein)."] - pub read_irq_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - offset: uint32, - ) -> uint64, - >, - pub read_and_write_irq_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - offset: uint32, - new_value: uint64, - mask: uint64, - ) -> uint64, - >, - pub read_xtopei: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: riscv_imsic_file_id_t) -> uint64, - >, - pub read_and_write_xtopei: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - value: uint64, - mask: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_riscv_imsic_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(riscv_imsic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_imsic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_guest_files) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(num_guest_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_irq_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_irq_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_and_write_irq_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_and_write_irq_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_xtopei) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_xtopei) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_and_write_xtopei) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_and_write_xtopei) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_imsic_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -pub const global_notifier_type_t_Sim_Global_Notify_Message: global_notifier_type_t = 102; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe Sim_Global_Notify_Message notifier is used by\nSIM_trigger_global_message.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
  • \"global-message\" (Sim_Global_Notify_Message)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " Note that notifier types can be added either by modifying this enum or\nby using SIM_notifier_type. The latter is typically preferred since it does\nnot change the Simics API."] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -pub type frags_t = frags; -pub type frags_it_t = frags_it; -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The structures should never be used directly. Only use the accessor\n functions."] -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub const interrupt_source_t_Interrupt_Source_Icr_Ipr: interrupt_source_t = 0; -pub const interrupt_source_t_Interrupt_Source_Msi: interrupt_source_t = 1; -pub const interrupt_source_t_Interrupt_Source_Virtual_Wire: interrupt_source_t = 2; -pub const interrupt_source_t_Interrupt_Source_Nmi_Pin: interrupt_source_t = 3; -pub const interrupt_source_t_Interrupt_Source_Lvt: interrupt_source_t = 4; -pub const interrupt_source_t_Interrupt_Source_Iommu: interrupt_source_t = 5; -pub const interrupt_source_t_Interrupt_Source_Int2: interrupt_source_t = 6; -pub const interrupt_source_t_Interrupt_Source_Vmcs_Injection: interrupt_source_t = 7; -pub const interrupt_source_t_Interrupt_Source_Legacy_Apic_Vector: interrupt_source_t = 8; -pub const interrupt_source_t_Interrupt_Source_Self_Ipi: interrupt_source_t = 9; -pub const interrupt_source_t_Interrupt_Source_Unknown: interrupt_source_t = 10; -pub type interrupt_source_t = ::std::os::raw::c_uint; -pub type interrupt_subscriber_interface_t = interrupt_subscriber_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_subscriber_interface { - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - delivery_mode: apic_delivery_mode_t, - level_assert: bool, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - source: interrupt_source_t, - ), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_interrupt_subscriber_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(reset) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -extern "C" { - pub fn SIM_trigger_global_message(msg: *const ::std::os::raw::c_char, ref_: *mut lang_void); -} -extern "C" { - pub fn SIM_get_global_message(ref_: *mut lang_void) -> *const ::std::os::raw::c_char; -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -pub type probe_notification_context_interface_t = probe_notification_context_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_notification_context_interface { - pub get: ::std::option::Option *mut lang_void>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, context: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_probe_notification_context_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_rmenv(name: *const ::std::os::raw::c_char); -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/bindings-6.0.172.rs b/simics-api-sys/src/bindings/bindings-6.0.172.rs deleted file mode 100644 index 5800ad5c..00000000 --- a/simics-api-sys/src/bindings/bindings-6.0.172.rs +++ /dev/null @@ -1,79227 +0,0 @@ -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] -pub struct __BindgenBitfieldUnit { - storage: Storage, -} -impl __BindgenBitfieldUnit { - #[inline] - pub const fn new(storage: Storage) -> Self { - Self { storage } - } -} -impl __BindgenBitfieldUnit -where - Storage: AsRef<[u8]> + AsMut<[u8]>, -{ - #[inline] - pub fn get_bit(&self, index: usize) -> bool { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = self.storage.as_ref()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - byte & mask == mask - } - #[inline] - pub fn set_bit(&mut self, index: usize, val: bool) { - debug_assert!(index / 8 < self.storage.as_ref().len()); - let byte_index = index / 8; - let byte = &mut self.storage.as_mut()[byte_index]; - let bit_index = if cfg!(target_endian = "big") { - 7 - (index % 8) - } else { - index % 8 - }; - let mask = 1 << bit_index; - if val { - *byte |= mask; - } else { - *byte &= !mask; - } - } - #[inline] - pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - let mut val = 0; - for i in 0..(bit_width as usize) { - if self.get_bit(i + bit_offset) { - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - val |= 1 << index; - } - } - val - } - #[inline] - pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { - debug_assert!(bit_width <= 64); - debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); - debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); - for i in 0..(bit_width as usize) { - let mask = 1 << i; - let val_bit_is_set = val & mask == mask; - let index = if cfg!(target_endian = "big") { - bit_width as usize - 1 - i - } else { - i - }; - self.set_bit(index + bit_offset, val_bit_is_set); - } - } -} -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::std::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const _STDIO_H: u32 = 1; -pub const _FEATURES_H: u32 = 1; -pub const _DEFAULT_SOURCE: u32 = 1; -pub const __GLIBC_USE_ISOC2X: u32 = 0; -pub const __USE_ISOC11: u32 = 1; -pub const __USE_ISOC99: u32 = 1; -pub const __USE_ISOC95: u32 = 1; -pub const __USE_POSIX_IMPLICITLY: u32 = 1; -pub const _POSIX_SOURCE: u32 = 1; -pub const _POSIX_C_SOURCE: u32 = 200809; -pub const __USE_POSIX: u32 = 1; -pub const __USE_POSIX2: u32 = 1; -pub const __USE_POSIX199309: u32 = 1; -pub const __USE_POSIX199506: u32 = 1; -pub const __USE_XOPEN2K: u32 = 1; -pub const __USE_XOPEN2K8: u32 = 1; -pub const _ATFILE_SOURCE: u32 = 1; -pub const __WORDSIZE: u32 = 64; -pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; -pub const __SYSCALL_WORDSIZE: u32 = 64; -pub const __TIMESIZE: u32 = 64; -pub const __USE_MISC: u32 = 1; -pub const __USE_ATFILE: u32 = 1; -pub const __USE_FORTIFY_LEVEL: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; -pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; -pub const _STDC_PREDEF_H: u32 = 1; -pub const __STDC_IEC_559__: u32 = 1; -pub const __STDC_IEC_60559_BFP__: u32 = 201404; -pub const __STDC_IEC_559_COMPLEX__: u32 = 1; -pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404; -pub const __STDC_ISO_10646__: u32 = 201706; -pub const __GNU_LIBRARY__: u32 = 6; -pub const __GLIBC__: u32 = 2; -pub const __GLIBC_MINOR__: u32 = 37; -pub const _SYS_CDEFS_H: u32 = 1; -pub const __glibc_c99_flexarr_available: u32 = 1; -pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; -pub const __HAVE_GENERIC_SELECTION: u32 = 1; -pub const __GLIBC_USE_LIB_EXT2: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0; -pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0; -pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0; -pub const _BITS_TYPES_H: u32 = 1; -pub const _BITS_TYPESIZES_H: u32 = 1; -pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; -pub const __INO_T_MATCHES_INO64_T: u32 = 1; -pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; -pub const __STATFS_MATCHES_STATFS64: u32 = 1; -pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; -pub const __FD_SETSIZE: u32 = 1024; -pub const _BITS_TIME64_H: u32 = 1; -pub const _____fpos_t_defined: u32 = 1; -pub const ____mbstate_t_defined: u32 = 1; -pub const _____fpos64_t_defined: u32 = 1; -pub const ____FILE_defined: u32 = 1; -pub const __FILE_defined: u32 = 1; -pub const __struct_FILE_defined: u32 = 1; -pub const _IO_EOF_SEEN: u32 = 16; -pub const _IO_ERR_SEEN: u32 = 32; -pub const _IO_USER_LOCK: u32 = 32768; -pub const _IOFBF: u32 = 0; -pub const _IOLBF: u32 = 1; -pub const _IONBF: u32 = 2; -pub const BUFSIZ: u32 = 8192; -pub const EOF: i32 = -1; -pub const SEEK_SET: u32 = 0; -pub const SEEK_CUR: u32 = 1; -pub const SEEK_END: u32 = 2; -pub const P_tmpdir: &[u8; 5] = b"/tmp\0"; -pub const _BITS_STDIO_LIM_H: u32 = 1; -pub const L_tmpnam: u32 = 20; -pub const TMP_MAX: u32 = 238328; -pub const FILENAME_MAX: u32 = 4096; -pub const L_ctermid: u32 = 9; -pub const FOPEN_MAX: u32 = 16; -pub const __HAVE_FLOAT128: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128: u32 = 0; -pub const __HAVE_FLOAT64X: u32 = 1; -pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1; -pub const __HAVE_FLOAT16: u32 = 0; -pub const __HAVE_FLOAT32: u32 = 1; -pub const __HAVE_FLOAT64: u32 = 1; -pub const __HAVE_FLOAT32X: u32 = 1; -pub const __HAVE_FLOAT128X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT16: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0; -pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0; -pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0; -pub const PY_RELEASE_LEVEL_ALPHA: u32 = 10; -pub const PY_RELEASE_LEVEL_BETA: u32 = 11; -pub const PY_RELEASE_LEVEL_GAMMA: u32 = 12; -pub const PY_RELEASE_LEVEL_FINAL: u32 = 15; -pub const PY_MAJOR_VERSION: u32 = 3; -pub const PY_MINOR_VERSION: u32 = 9; -pub const PY_MICRO_VERSION: u32 = 16; -pub const PY_RELEASE_LEVEL: u32 = 15; -pub const PY_RELEASE_SERIAL: u32 = 0; -pub const PY_VERSION: &[u8; 7] = b"3.9.16\0"; -pub const PY_VERSION_HEX: u32 = 50925808; -pub const DOUBLE_IS_LITTLE_ENDIAN_IEEE754: u32 = 1; -pub const ENABLE_IPV6: u32 = 1; -pub const HAVE_ACCEPT4: u32 = 1; -pub const HAVE_ACOSH: u32 = 1; -pub const HAVE_ADDRINFO: u32 = 1; -pub const HAVE_ALARM: u32 = 1; -pub const HAVE_ALLOCA_H: u32 = 1; -pub const HAVE_ASINH: u32 = 1; -pub const HAVE_ASM_TYPES_H: u32 = 1; -pub const HAVE_ATANH: u32 = 1; -pub const HAVE_BIND_TEXTDOMAIN_CODESET: u32 = 1; -pub const HAVE_BUILTIN_ATOMIC: u32 = 1; -pub const HAVE_CHOWN: u32 = 1; -pub const HAVE_CHROOT: u32 = 1; -pub const HAVE_CLOCK: u32 = 1; -pub const HAVE_CLOCK_GETRES: u32 = 1; -pub const HAVE_CLOCK_GETTIME: u32 = 1; -pub const HAVE_CLOCK_SETTIME: u32 = 1; -pub const HAVE_COMPUTED_GOTOS: u32 = 1; -pub const HAVE_CONFSTR: u32 = 1; -pub const HAVE_COPYSIGN: u32 = 1; -pub const HAVE_CRYPT_H: u32 = 1; -pub const HAVE_CRYPT_R: u32 = 1; -pub const HAVE_CTERMID: u32 = 1; -pub const HAVE_CURSES_FILTER: u32 = 1; -pub const HAVE_CURSES_H: u32 = 1; -pub const HAVE_CURSES_HAS_KEY: u32 = 1; -pub const HAVE_CURSES_IMMEDOK: u32 = 1; -pub const HAVE_CURSES_IS_PAD: u32 = 1; -pub const HAVE_CURSES_IS_TERM_RESIZED: u32 = 1; -pub const HAVE_CURSES_RESIZETERM: u32 = 1; -pub const HAVE_CURSES_RESIZE_TERM: u32 = 1; -pub const HAVE_CURSES_SYNCOK: u32 = 1; -pub const HAVE_CURSES_TYPEAHEAD: u32 = 1; -pub const HAVE_CURSES_USE_ENV: u32 = 1; -pub const HAVE_CURSES_WCHGAT: u32 = 1; -pub const HAVE_DECL_ISFINITE: u32 = 1; -pub const HAVE_DECL_ISINF: u32 = 1; -pub const HAVE_DECL_ISNAN: u32 = 1; -pub const HAVE_DECL_RTLD_DEEPBIND: u32 = 1; -pub const HAVE_DECL_RTLD_GLOBAL: u32 = 1; -pub const HAVE_DECL_RTLD_LAZY: u32 = 1; -pub const HAVE_DECL_RTLD_LOCAL: u32 = 1; -pub const HAVE_DECL_RTLD_MEMBER: u32 = 0; -pub const HAVE_DECL_RTLD_NODELETE: u32 = 1; -pub const HAVE_DECL_RTLD_NOLOAD: u32 = 1; -pub const HAVE_DECL_RTLD_NOW: u32 = 1; -pub const HAVE_DEVICE_MACROS: u32 = 1; -pub const HAVE_DEV_PTMX: u32 = 1; -pub const HAVE_DIRENT_D_TYPE: u32 = 1; -pub const HAVE_DIRENT_H: u32 = 1; -pub const HAVE_DIRFD: u32 = 1; -pub const HAVE_DLFCN_H: u32 = 1; -pub const HAVE_DLOPEN: u32 = 1; -pub const HAVE_DUP2: u32 = 1; -pub const HAVE_DUP3: u32 = 1; -pub const HAVE_DYNAMIC_LOADING: u32 = 1; -pub const HAVE_ENDIAN_H: u32 = 1; -pub const HAVE_EPOLL: u32 = 1; -pub const HAVE_EPOLL_CREATE1: u32 = 1; -pub const HAVE_ERF: u32 = 1; -pub const HAVE_ERFC: u32 = 1; -pub const HAVE_ERRNO_H: u32 = 1; -pub const HAVE_EXECV: u32 = 1; -pub const HAVE_EXPM1: u32 = 1; -pub const HAVE_FACCESSAT: u32 = 1; -pub const HAVE_FCHDIR: u32 = 1; -pub const HAVE_FCHMOD: u32 = 1; -pub const HAVE_FCHMODAT: u32 = 1; -pub const HAVE_FCHOWN: u32 = 1; -pub const HAVE_FCHOWNAT: u32 = 1; -pub const HAVE_FCNTL_H: u32 = 1; -pub const HAVE_FDATASYNC: u32 = 1; -pub const HAVE_FDOPENDIR: u32 = 1; -pub const HAVE_FEXECVE: u32 = 1; -pub const HAVE_FINITE: u32 = 1; -pub const HAVE_FLOCK: u32 = 1; -pub const HAVE_FORK: u32 = 1; -pub const HAVE_FORKPTY: u32 = 1; -pub const HAVE_FPATHCONF: u32 = 1; -pub const HAVE_FSEEKO: u32 = 1; -pub const HAVE_FSTATAT: u32 = 1; -pub const HAVE_FSTATVFS: u32 = 1; -pub const HAVE_FSYNC: u32 = 1; -pub const HAVE_FTELLO: u32 = 1; -pub const HAVE_FTIME: u32 = 1; -pub const HAVE_FTRUNCATE: u32 = 1; -pub const HAVE_FUTIMENS: u32 = 1; -pub const HAVE_FUTIMES: u32 = 1; -pub const HAVE_FUTIMESAT: u32 = 1; -pub const HAVE_GAI_STRERROR: u32 = 1; -pub const HAVE_GAMMA: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X64: u32 = 1; -pub const HAVE_GCC_ASM_FOR_X87: u32 = 1; -pub const HAVE_GCC_UINT128_T: u32 = 1; -pub const HAVE_GETADDRINFO: u32 = 1; -pub const HAVE_GETC_UNLOCKED: u32 = 1; -pub const HAVE_GETGRGID_R: u32 = 1; -pub const HAVE_GETGRNAM_R: u32 = 1; -pub const HAVE_GETGROUPLIST: u32 = 1; -pub const HAVE_GETGROUPS: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R: u32 = 1; -pub const HAVE_GETHOSTBYNAME_R_6_ARG: u32 = 1; -pub const HAVE_GETITIMER: u32 = 1; -pub const HAVE_GETLOADAVG: u32 = 1; -pub const HAVE_GETLOGIN: u32 = 1; -pub const HAVE_GETNAMEINFO: u32 = 1; -pub const HAVE_GETPAGESIZE: u32 = 1; -pub const HAVE_GETPEERNAME: u32 = 1; -pub const HAVE_GETPGID: u32 = 1; -pub const HAVE_GETPGRP: u32 = 1; -pub const HAVE_GETPID: u32 = 1; -pub const HAVE_GETPRIORITY: u32 = 1; -pub const HAVE_GETPWENT: u32 = 1; -pub const HAVE_GETPWNAM_R: u32 = 1; -pub const HAVE_GETPWUID_R: u32 = 1; -pub const HAVE_GETRESGID: u32 = 1; -pub const HAVE_GETRESUID: u32 = 1; -pub const HAVE_GETSID: u32 = 1; -pub const HAVE_GETSPENT: u32 = 1; -pub const HAVE_GETSPNAM: u32 = 1; -pub const HAVE_GETWD: u32 = 1; -pub const HAVE_GRP_H: u32 = 1; -pub const HAVE_HSTRERROR: u32 = 1; -pub const HAVE_HTOLE64: u32 = 1; -pub const HAVE_HYPOT: u32 = 1; -pub const HAVE_IF_NAMEINDEX: u32 = 1; -pub const HAVE_INET_ATON: u32 = 1; -pub const HAVE_INET_PTON: u32 = 1; -pub const HAVE_INITGROUPS: u32 = 1; -pub const HAVE_INTTYPES_H: u32 = 1; -pub const HAVE_KILL: u32 = 1; -pub const HAVE_KILLPG: u32 = 1; -pub const HAVE_LANGINFO_H: u32 = 1; -pub const HAVE_LCHOWN: u32 = 1; -pub const HAVE_LGAMMA: u32 = 1; -pub const HAVE_LIBDL: u32 = 1; -pub const HAVE_LIBINTL_H: u32 = 1; -pub const HAVE_LIBREADLINE: u32 = 1; -pub const HAVE_LIBUUID: u32 = 1; -pub const HAVE_LINK: u32 = 1; -pub const HAVE_LINKAT: u32 = 1; -pub const HAVE_LINUX_AUXVEC_H: u32 = 1; -pub const HAVE_LINUX_CAN_H: u32 = 1; -pub const HAVE_LINUX_CAN_RAW_H: u32 = 1; -pub const HAVE_LINUX_NETLINK_H: u32 = 1; -pub const HAVE_LINUX_RANDOM_H: u32 = 1; -pub const HAVE_LINUX_TIPC_H: u32 = 1; -pub const HAVE_LINUX_WAIT_H: u32 = 1; -pub const HAVE_LOCKF: u32 = 1; -pub const HAVE_LOG1P: u32 = 1; -pub const HAVE_LOG2: u32 = 1; -pub const HAVE_LONG_DOUBLE: u32 = 1; -pub const HAVE_LSTAT: u32 = 1; -pub const HAVE_LUTIMES: u32 = 1; -pub const HAVE_MADVISE: u32 = 1; -pub const HAVE_MAKEDEV: u32 = 1; -pub const HAVE_MBRTOWC: u32 = 1; -pub const HAVE_MEMORY_H: u32 = 1; -pub const HAVE_MEMRCHR: u32 = 1; -pub const HAVE_MKDIRAT: u32 = 1; -pub const HAVE_MKFIFO: u32 = 1; -pub const HAVE_MKFIFOAT: u32 = 1; -pub const HAVE_MKNOD: u32 = 1; -pub const HAVE_MKNODAT: u32 = 1; -pub const HAVE_MKTIME: u32 = 1; -pub const HAVE_MMAP: u32 = 1; -pub const HAVE_MREMAP: u32 = 1; -pub const HAVE_NCURSES_H: u32 = 1; -pub const HAVE_NETPACKET_PACKET_H: u32 = 1; -pub const HAVE_NET_IF_H: u32 = 1; -pub const HAVE_NICE: u32 = 1; -pub const HAVE_OPENAT: u32 = 1; -pub const HAVE_OPENPTY: u32 = 1; -pub const HAVE_PATHCONF: u32 = 1; -pub const HAVE_PAUSE: u32 = 1; -pub const HAVE_PIPE2: u32 = 1; -pub const HAVE_POLL: u32 = 1; -pub const HAVE_POLL_H: u32 = 1; -pub const HAVE_POSIX_FADVISE: u32 = 1; -pub const HAVE_POSIX_FALLOCATE: u32 = 1; -pub const HAVE_POSIX_SPAWN: u32 = 1; -pub const HAVE_POSIX_SPAWNP: u32 = 1; -pub const HAVE_PREAD: u32 = 1; -pub const HAVE_PREADV: u32 = 1; -pub const HAVE_PROTOTYPES: u32 = 1; -pub const HAVE_PTHREAD_CONDATTR_SETCLOCK: u32 = 1; -pub const HAVE_PTHREAD_GETCPUCLOCKID: u32 = 1; -pub const HAVE_PTHREAD_H: u32 = 1; -pub const HAVE_PTHREAD_KILL: u32 = 1; -pub const HAVE_PTHREAD_SIGMASK: u32 = 1; -pub const HAVE_PTY_H: u32 = 1; -pub const HAVE_PWRITE: u32 = 1; -pub const HAVE_PWRITEV: u32 = 1; -pub const HAVE_READLINK: u32 = 1; -pub const HAVE_READLINKAT: u32 = 1; -pub const HAVE_READV: u32 = 1; -pub const HAVE_REALPATH: u32 = 1; -pub const HAVE_RENAMEAT: u32 = 1; -pub const HAVE_RL_APPEND_HISTORY: u32 = 1; -pub const HAVE_RL_CATCH_SIGNAL: u32 = 1; -pub const HAVE_RL_COMPLETION_APPEND_CHARACTER: u32 = 1; -pub const HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK: u32 = 1; -pub const HAVE_RL_COMPLETION_MATCHES: u32 = 1; -pub const HAVE_RL_COMPLETION_SUPPRESS_APPEND: u32 = 1; -pub const HAVE_RL_PRE_INPUT_HOOK: u32 = 1; -pub const HAVE_RL_RESIZE_TERMINAL: u32 = 1; -pub const HAVE_ROUND: u32 = 1; -pub const HAVE_SCHED_GET_PRIORITY_MAX: u32 = 1; -pub const HAVE_SCHED_H: u32 = 1; -pub const HAVE_SCHED_RR_GET_INTERVAL: u32 = 1; -pub const HAVE_SCHED_SETAFFINITY: u32 = 1; -pub const HAVE_SCHED_SETPARAM: u32 = 1; -pub const HAVE_SCHED_SETSCHEDULER: u32 = 1; -pub const HAVE_SEM_GETVALUE: u32 = 1; -pub const HAVE_SEM_OPEN: u32 = 1; -pub const HAVE_SEM_TIMEDWAIT: u32 = 1; -pub const HAVE_SEM_UNLINK: u32 = 1; -pub const HAVE_SENDFILE: u32 = 1; -pub const HAVE_SETEGID: u32 = 1; -pub const HAVE_SETEUID: u32 = 1; -pub const HAVE_SETGID: u32 = 1; -pub const HAVE_SETGROUPS: u32 = 1; -pub const HAVE_SETHOSTNAME: u32 = 1; -pub const HAVE_SETITIMER: u32 = 1; -pub const HAVE_SETLOCALE: u32 = 1; -pub const HAVE_SETPGID: u32 = 1; -pub const HAVE_SETPGRP: u32 = 1; -pub const HAVE_SETPRIORITY: u32 = 1; -pub const HAVE_SETREGID: u32 = 1; -pub const HAVE_SETRESGID: u32 = 1; -pub const HAVE_SETRESUID: u32 = 1; -pub const HAVE_SETREUID: u32 = 1; -pub const HAVE_SETSID: u32 = 1; -pub const HAVE_SETUID: u32 = 1; -pub const HAVE_SETVBUF: u32 = 1; -pub const HAVE_SHADOW_H: u32 = 1; -pub const HAVE_SHM_OPEN: u32 = 1; -pub const HAVE_SHM_UNLINK: u32 = 1; -pub const HAVE_SIGACTION: u32 = 1; -pub const HAVE_SIGALTSTACK: u32 = 1; -pub const HAVE_SIGFILLSET: u32 = 1; -pub const HAVE_SIGINFO_T_SI_BAND: u32 = 1; -pub const HAVE_SIGINTERRUPT: u32 = 1; -pub const HAVE_SIGNAL_H: u32 = 1; -pub const HAVE_SIGPENDING: u32 = 1; -pub const HAVE_SIGRELSE: u32 = 1; -pub const HAVE_SIGTIMEDWAIT: u32 = 1; -pub const HAVE_SIGWAIT: u32 = 1; -pub const HAVE_SIGWAITINFO: u32 = 1; -pub const HAVE_SNPRINTF: u32 = 1; -pub const HAVE_SOCKADDR_STORAGE: u32 = 1; -pub const HAVE_SOCKETPAIR: u32 = 1; -pub const HAVE_SPAWN_H: u32 = 1; -pub const HAVE_SSIZE_T: u32 = 1; -pub const HAVE_STATVFS: u32 = 1; -pub const HAVE_STAT_TV_NSEC: u32 = 1; -pub const HAVE_STDARG_PROTOTYPES: u32 = 1; -pub const HAVE_STDINT_H: u32 = 1; -pub const HAVE_STDLIB_H: u32 = 1; -pub const HAVE_STD_ATOMIC: u32 = 1; -pub const HAVE_STRDUP: u32 = 1; -pub const HAVE_STRFTIME: u32 = 1; -pub const HAVE_STRINGS_H: u32 = 1; -pub const HAVE_STRING_H: u32 = 1; -pub const HAVE_STRSIGNAL: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_GECOS: u32 = 1; -pub const HAVE_STRUCT_PASSWD_PW_PASSWD: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLKSIZE: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_BLOCKS: u32 = 1; -pub const HAVE_STRUCT_STAT_ST_RDEV: u32 = 1; -pub const HAVE_STRUCT_TM_TM_ZONE: u32 = 1; -pub const HAVE_SYMLINK: u32 = 1; -pub const HAVE_SYMLINKAT: u32 = 1; -pub const HAVE_SYNC: u32 = 1; -pub const HAVE_SYSCONF: u32 = 1; -pub const HAVE_SYSEXITS_H: u32 = 1; -pub const HAVE_SYS_EPOLL_H: u32 = 1; -pub const HAVE_SYS_FILE_H: u32 = 1; -pub const HAVE_SYS_IOCTL_H: u32 = 1; -pub const HAVE_SYS_MMAN_H: u32 = 1; -pub const HAVE_SYS_PARAM_H: u32 = 1; -pub const HAVE_SYS_POLL_H: u32 = 1; -pub const HAVE_SYS_RESOURCE_H: u32 = 1; -pub const HAVE_SYS_SELECT_H: u32 = 1; -pub const HAVE_SYS_SENDFILE_H: u32 = 1; -pub const HAVE_SYS_SOCKET_H: u32 = 1; -pub const HAVE_SYS_STATVFS_H: u32 = 1; -pub const HAVE_SYS_STAT_H: u32 = 1; -pub const HAVE_SYS_SYSCALL_H: u32 = 1; -pub const HAVE_SYS_SYSMACROS_H: u32 = 1; -pub const HAVE_SYS_TIMES_H: u32 = 1; -pub const HAVE_SYS_TIME_H: u32 = 1; -pub const HAVE_SYS_TYPES_H: u32 = 1; -pub const HAVE_SYS_UIO_H: u32 = 1; -pub const HAVE_SYS_UN_H: u32 = 1; -pub const HAVE_SYS_UTSNAME_H: u32 = 1; -pub const HAVE_SYS_WAIT_H: u32 = 1; -pub const HAVE_SYS_XATTR_H: u32 = 1; -pub const HAVE_TCGETPGRP: u32 = 1; -pub const HAVE_TCSETPGRP: u32 = 1; -pub const HAVE_TEMPNAM: u32 = 1; -pub const HAVE_TERMIOS_H: u32 = 1; -pub const HAVE_TERM_H: u32 = 1; -pub const HAVE_TGAMMA: u32 = 1; -pub const HAVE_TIMEGM: u32 = 1; -pub const HAVE_TIMES: u32 = 1; -pub const HAVE_TMPFILE: u32 = 1; -pub const HAVE_TMPNAM: u32 = 1; -pub const HAVE_TMPNAM_R: u32 = 1; -pub const HAVE_TM_ZONE: u32 = 1; -pub const HAVE_TRUNCATE: u32 = 1; -pub const HAVE_UNAME: u32 = 1; -pub const HAVE_UNISTD_H: u32 = 1; -pub const HAVE_UNLINKAT: u32 = 1; -pub const HAVE_UTIMENSAT: u32 = 1; -pub const HAVE_UTIMES: u32 = 1; -pub const HAVE_UTIME_H: u32 = 1; -pub const HAVE_UUID_GENERATE_TIME_SAFE: u32 = 1; -pub const HAVE_UUID_H: u32 = 1; -pub const HAVE_UUID_UUID_H: u32 = 1; -pub const HAVE_WAIT3: u32 = 1; -pub const HAVE_WAIT4: u32 = 1; -pub const HAVE_WAITID: u32 = 1; -pub const HAVE_WAITPID: u32 = 1; -pub const HAVE_WCHAR_H: u32 = 1; -pub const HAVE_WCSCOLL: u32 = 1; -pub const HAVE_WCSFTIME: u32 = 1; -pub const HAVE_WCSXFRM: u32 = 1; -pub const HAVE_WMEMCMP: u32 = 1; -pub const HAVE_WORKING_TZSET: u32 = 1; -pub const HAVE_WRITEV: u32 = 1; -pub const HAVE_X509_VERIFY_PARAM_SET1_HOST: u32 = 1; -pub const HAVE_ZLIB_COPY: u32 = 1; -pub const MVWDELCH_IS_EXPRESSION: u32 = 1; -pub const PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT: u32 = 1; -pub const PTHREAD_SYSTEM_SCHED_SUPPORTED: u32 = 1; -pub const PY_BUILTIN_HASHLIB_HASHES: &[u8; 35] = b"md5,sha1,sha256,sha512,sha3,blake2\0"; -pub const PY_COERCE_C_LOCALE: u32 = 1; -pub const PY_FORMAT_SIZE_T: &[u8; 2] = b"z\0"; -pub const PY_SSL_DEFAULT_CIPHERS: u32 = 1; -pub const SIZEOF_DOUBLE: u32 = 8; -pub const SIZEOF_FLOAT: u32 = 4; -pub const SIZEOF_FPOS_T: u32 = 16; -pub const SIZEOF_INT: u32 = 4; -pub const SIZEOF_LONG: u32 = 8; -pub const SIZEOF_LONG_DOUBLE: u32 = 16; -pub const SIZEOF_LONG_LONG: u32 = 8; -pub const SIZEOF_OFF_T: u32 = 8; -pub const SIZEOF_PID_T: u32 = 4; -pub const SIZEOF_PTHREAD_KEY_T: u32 = 4; -pub const SIZEOF_PTHREAD_T: u32 = 8; -pub const SIZEOF_SHORT: u32 = 2; -pub const SIZEOF_SIZE_T: u32 = 8; -pub const SIZEOF_TIME_T: u32 = 8; -pub const SIZEOF_UINTPTR_T: u32 = 8; -pub const SIZEOF_VOID_P: u32 = 8; -pub const SIZEOF_WCHAR_T: u32 = 4; -pub const SIZEOF__BOOL: u32 = 1; -pub const STDC_HEADERS: u32 = 1; -pub const SYS_SELECT_WITH_SYS_TIME: u32 = 1; -pub const TIME_WITH_SYS_TIME: u32 = 1; -pub const USE_COMPUTED_GOTOS: u32 = 1; -pub const _ALL_SOURCE: u32 = 1; -pub const _GNU_SOURCE: u32 = 1; -pub const _POSIX_PTHREAD_SEMANTICS: u32 = 1; -pub const _TANDEM_SOURCE: u32 = 1; -pub const __EXTENSIONS__: u32 = 1; -pub const WINDOW_HAS_FLAGS: u32 = 1; -pub const WITH_DECIMAL_CONTEXTVAR: u32 = 1; -pub const WITH_DOC_STRINGS: u32 = 1; -pub const WITH_PYMALLOC: u32 = 1; -pub const _DARWIN_C_SOURCE: u32 = 1; -pub const _FILE_OFFSET_BITS: u32 = 64; -pub const _LARGEFILE_SOURCE: u32 = 1; -pub const _NETBSD_SOURCE: u32 = 1; -pub const _PYTHONFRAMEWORK: &[u8; 1] = b"\0"; -pub const _XOPEN_SOURCE: u32 = 700; -pub const _XOPEN_SOURCE_EXTENDED: u32 = 1; -pub const __BSD_VISIBLE: u32 = 1; -pub const _LIBC_LIMITS_H_: u32 = 1; -pub const MB_LEN_MAX: u32 = 16; -pub const _BITS_POSIX1_LIM_H: u32 = 1; -pub const _POSIX_AIO_LISTIO_MAX: u32 = 2; -pub const _POSIX_AIO_MAX: u32 = 1; -pub const _POSIX_ARG_MAX: u32 = 4096; -pub const _POSIX_CHILD_MAX: u32 = 25; -pub const _POSIX_DELAYTIMER_MAX: u32 = 32; -pub const _POSIX_HOST_NAME_MAX: u32 = 255; -pub const _POSIX_LINK_MAX: u32 = 8; -pub const _POSIX_LOGIN_NAME_MAX: u32 = 9; -pub const _POSIX_MAX_CANON: u32 = 255; -pub const _POSIX_MAX_INPUT: u32 = 255; -pub const _POSIX_MQ_OPEN_MAX: u32 = 8; -pub const _POSIX_MQ_PRIO_MAX: u32 = 32; -pub const _POSIX_NAME_MAX: u32 = 14; -pub const _POSIX_NGROUPS_MAX: u32 = 8; -pub const _POSIX_OPEN_MAX: u32 = 20; -pub const _POSIX_PATH_MAX: u32 = 256; -pub const _POSIX_PIPE_BUF: u32 = 512; -pub const _POSIX_RE_DUP_MAX: u32 = 255; -pub const _POSIX_RTSIG_MAX: u32 = 8; -pub const _POSIX_SEM_NSEMS_MAX: u32 = 256; -pub const _POSIX_SEM_VALUE_MAX: u32 = 32767; -pub const _POSIX_SIGQUEUE_MAX: u32 = 32; -pub const _POSIX_SSIZE_MAX: u32 = 32767; -pub const _POSIX_STREAM_MAX: u32 = 8; -pub const _POSIX_SYMLINK_MAX: u32 = 255; -pub const _POSIX_SYMLOOP_MAX: u32 = 8; -pub const _POSIX_TIMER_MAX: u32 = 32; -pub const _POSIX_TTY_NAME_MAX: u32 = 9; -pub const _POSIX_TZNAME_MAX: u32 = 6; -pub const _POSIX_CLOCKRES_MIN: u32 = 20000000; -pub const NR_OPEN: u32 = 1024; -pub const NGROUPS_MAX: u32 = 65536; -pub const ARG_MAX: u32 = 131072; -pub const LINK_MAX: u32 = 127; -pub const MAX_CANON: u32 = 255; -pub const MAX_INPUT: u32 = 255; -pub const NAME_MAX: u32 = 255; -pub const PATH_MAX: u32 = 4096; -pub const PIPE_BUF: u32 = 4096; -pub const XATTR_NAME_MAX: u32 = 255; -pub const XATTR_SIZE_MAX: u32 = 65536; -pub const XATTR_LIST_MAX: u32 = 65536; -pub const RTSIG_MAX: u32 = 32; -pub const _POSIX_THREAD_KEYS_MAX: u32 = 128; -pub const PTHREAD_KEYS_MAX: u32 = 1024; -pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4; -pub const _POSIX_THREAD_THREADS_MAX: u32 = 64; -pub const AIO_PRIO_DELTA_MAX: u32 = 20; -pub const PTHREAD_STACK_MIN: u32 = 16384; -pub const DELAYTIMER_MAX: u32 = 2147483647; -pub const TTY_NAME_MAX: u32 = 32; -pub const LOGIN_NAME_MAX: u32 = 256; -pub const HOST_NAME_MAX: u32 = 64; -pub const MQ_PRIO_MAX: u32 = 32768; -pub const SEM_VALUE_MAX: u32 = 2147483647; -pub const _BITS_POSIX2_LIM_H: u32 = 1; -pub const _POSIX2_BC_BASE_MAX: u32 = 99; -pub const _POSIX2_BC_DIM_MAX: u32 = 2048; -pub const _POSIX2_BC_SCALE_MAX: u32 = 99; -pub const _POSIX2_BC_STRING_MAX: u32 = 1000; -pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2; -pub const _POSIX2_EXPR_NEST_MAX: u32 = 32; -pub const _POSIX2_LINE_MAX: u32 = 2048; -pub const _POSIX2_RE_DUP_MAX: u32 = 255; -pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14; -pub const BC_BASE_MAX: u32 = 99; -pub const BC_DIM_MAX: u32 = 2048; -pub const BC_SCALE_MAX: u32 = 99; -pub const BC_STRING_MAX: u32 = 1000; -pub const COLL_WEIGHTS_MAX: u32 = 255; -pub const EXPR_NEST_MAX: u32 = 32; -pub const LINE_MAX: u32 = 2048; -pub const CHARCLASS_NAME_MAX: u32 = 2048; -pub const RE_DUP_MAX: u32 = 32767; -pub const _STRING_H: u32 = 1; -pub const _BITS_TYPES_LOCALE_T_H: u32 = 1; -pub const _BITS_TYPES___LOCALE_T_H: u32 = 1; -pub const _STRINGS_H: u32 = 1; -pub const _ERRNO_H: u32 = 1; -pub const _BITS_ERRNO_H: u32 = 1; -pub const EPERM: u32 = 1; -pub const ENOENT: u32 = 2; -pub const ESRCH: u32 = 3; -pub const EINTR: u32 = 4; -pub const EIO: u32 = 5; -pub const ENXIO: u32 = 6; -pub const E2BIG: u32 = 7; -pub const ENOEXEC: u32 = 8; -pub const EBADF: u32 = 9; -pub const ECHILD: u32 = 10; -pub const EAGAIN: u32 = 11; -pub const ENOMEM: u32 = 12; -pub const EACCES: u32 = 13; -pub const EFAULT: u32 = 14; -pub const ENOTBLK: u32 = 15; -pub const EBUSY: u32 = 16; -pub const EEXIST: u32 = 17; -pub const EXDEV: u32 = 18; -pub const ENODEV: u32 = 19; -pub const ENOTDIR: u32 = 20; -pub const EISDIR: u32 = 21; -pub const EINVAL: u32 = 22; -pub const ENFILE: u32 = 23; -pub const EMFILE: u32 = 24; -pub const ENOTTY: u32 = 25; -pub const ETXTBSY: u32 = 26; -pub const EFBIG: u32 = 27; -pub const ENOSPC: u32 = 28; -pub const ESPIPE: u32 = 29; -pub const EROFS: u32 = 30; -pub const EMLINK: u32 = 31; -pub const EPIPE: u32 = 32; -pub const EDOM: u32 = 33; -pub const ERANGE: u32 = 34; -pub const EDEADLK: u32 = 35; -pub const ENAMETOOLONG: u32 = 36; -pub const ENOLCK: u32 = 37; -pub const ENOSYS: u32 = 38; -pub const ENOTEMPTY: u32 = 39; -pub const ELOOP: u32 = 40; -pub const EWOULDBLOCK: u32 = 11; -pub const ENOMSG: u32 = 42; -pub const EIDRM: u32 = 43; -pub const ECHRNG: u32 = 44; -pub const EL2NSYNC: u32 = 45; -pub const EL3HLT: u32 = 46; -pub const EL3RST: u32 = 47; -pub const ELNRNG: u32 = 48; -pub const EUNATCH: u32 = 49; -pub const ENOCSI: u32 = 50; -pub const EL2HLT: u32 = 51; -pub const EBADE: u32 = 52; -pub const EBADR: u32 = 53; -pub const EXFULL: u32 = 54; -pub const ENOANO: u32 = 55; -pub const EBADRQC: u32 = 56; -pub const EBADSLT: u32 = 57; -pub const EDEADLOCK: u32 = 35; -pub const EBFONT: u32 = 59; -pub const ENOSTR: u32 = 60; -pub const ENODATA: u32 = 61; -pub const ETIME: u32 = 62; -pub const ENOSR: u32 = 63; -pub const ENONET: u32 = 64; -pub const ENOPKG: u32 = 65; -pub const EREMOTE: u32 = 66; -pub const ENOLINK: u32 = 67; -pub const EADV: u32 = 68; -pub const ESRMNT: u32 = 69; -pub const ECOMM: u32 = 70; -pub const EPROTO: u32 = 71; -pub const EMULTIHOP: u32 = 72; -pub const EDOTDOT: u32 = 73; -pub const EBADMSG: u32 = 74; -pub const EOVERFLOW: u32 = 75; -pub const ENOTUNIQ: u32 = 76; -pub const EBADFD: u32 = 77; -pub const EREMCHG: u32 = 78; -pub const ELIBACC: u32 = 79; -pub const ELIBBAD: u32 = 80; -pub const ELIBSCN: u32 = 81; -pub const ELIBMAX: u32 = 82; -pub const ELIBEXEC: u32 = 83; -pub const EILSEQ: u32 = 84; -pub const ERESTART: u32 = 85; -pub const ESTRPIPE: u32 = 86; -pub const EUSERS: u32 = 87; -pub const ENOTSOCK: u32 = 88; -pub const EDESTADDRREQ: u32 = 89; -pub const EMSGSIZE: u32 = 90; -pub const EPROTOTYPE: u32 = 91; -pub const ENOPROTOOPT: u32 = 92; -pub const EPROTONOSUPPORT: u32 = 93; -pub const ESOCKTNOSUPPORT: u32 = 94; -pub const EOPNOTSUPP: u32 = 95; -pub const EPFNOSUPPORT: u32 = 96; -pub const EAFNOSUPPORT: u32 = 97; -pub const EADDRINUSE: u32 = 98; -pub const EADDRNOTAVAIL: u32 = 99; -pub const ENETDOWN: u32 = 100; -pub const ENETUNREACH: u32 = 101; -pub const ENETRESET: u32 = 102; -pub const ECONNABORTED: u32 = 103; -pub const ECONNRESET: u32 = 104; -pub const ENOBUFS: u32 = 105; -pub const EISCONN: u32 = 106; -pub const ENOTCONN: u32 = 107; -pub const ESHUTDOWN: u32 = 108; -pub const ETOOMANYREFS: u32 = 109; -pub const ETIMEDOUT: u32 = 110; -pub const ECONNREFUSED: u32 = 111; -pub const EHOSTDOWN: u32 = 112; -pub const EHOSTUNREACH: u32 = 113; -pub const EALREADY: u32 = 114; -pub const EINPROGRESS: u32 = 115; -pub const ESTALE: u32 = 116; -pub const EUCLEAN: u32 = 117; -pub const ENOTNAM: u32 = 118; -pub const ENAVAIL: u32 = 119; -pub const EISNAM: u32 = 120; -pub const EREMOTEIO: u32 = 121; -pub const EDQUOT: u32 = 122; -pub const ENOMEDIUM: u32 = 123; -pub const EMEDIUMTYPE: u32 = 124; -pub const ECANCELED: u32 = 125; -pub const ENOKEY: u32 = 126; -pub const EKEYEXPIRED: u32 = 127; -pub const EKEYREVOKED: u32 = 128; -pub const EKEYREJECTED: u32 = 129; -pub const EOWNERDEAD: u32 = 130; -pub const ENOTRECOVERABLE: u32 = 131; -pub const ERFKILL: u32 = 132; -pub const EHWPOISON: u32 = 133; -pub const ENOTSUP: u32 = 95; -pub const _STDLIB_H: u32 = 1; -pub const WNOHANG: u32 = 1; -pub const WUNTRACED: u32 = 2; -pub const WSTOPPED: u32 = 2; -pub const WEXITED: u32 = 4; -pub const WCONTINUED: u32 = 8; -pub const WNOWAIT: u32 = 16777216; -pub const __WNOTHREAD: u32 = 536870912; -pub const __WALL: u32 = 1073741824; -pub const __WCLONE: u32 = 2147483648; -pub const __W_CONTINUED: u32 = 65535; -pub const __WCOREFLAG: u32 = 128; -pub const __ldiv_t_defined: u32 = 1; -pub const __lldiv_t_defined: u32 = 1; -pub const RAND_MAX: u32 = 2147483647; -pub const EXIT_FAILURE: u32 = 1; -pub const EXIT_SUCCESS: u32 = 0; -pub const _SYS_TYPES_H: u32 = 1; -pub const __clock_t_defined: u32 = 1; -pub const __clockid_t_defined: u32 = 1; -pub const __time_t_defined: u32 = 1; -pub const __timer_t_defined: u32 = 1; -pub const _BITS_STDINT_INTN_H: u32 = 1; -pub const __BIT_TYPES_DEFINED__: u32 = 1; -pub const _ENDIAN_H: u32 = 1; -pub const _BITS_ENDIAN_H: u32 = 1; -pub const __LITTLE_ENDIAN: u32 = 1234; -pub const __BIG_ENDIAN: u32 = 4321; -pub const __PDP_ENDIAN: u32 = 3412; -pub const _BITS_ENDIANNESS_H: u32 = 1; -pub const __BYTE_ORDER: u32 = 1234; -pub const __FLOAT_WORD_ORDER: u32 = 1234; -pub const LITTLE_ENDIAN: u32 = 1234; -pub const BIG_ENDIAN: u32 = 4321; -pub const PDP_ENDIAN: u32 = 3412; -pub const BYTE_ORDER: u32 = 1234; -pub const _BITS_BYTESWAP_H: u32 = 1; -pub const _BITS_UINTN_IDENTITY_H: u32 = 1; -pub const _SYS_SELECT_H: u32 = 1; -pub const __sigset_t_defined: u32 = 1; -pub const __timeval_defined: u32 = 1; -pub const _STRUCT_TIMESPEC: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; -pub const _THREAD_SHARED_TYPES_H: u32 = 1; -pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; -pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; -pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; -pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; -pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; -pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; -pub const __have_pthread_attr_t: u32 = 1; -pub const _ALLOCA_H: u32 = 1; -pub const _UNISTD_H: u32 = 1; -pub const _POSIX_VERSION: u32 = 200809; -pub const __POSIX2_THIS_VERSION: u32 = 200809; -pub const _POSIX2_VERSION: u32 = 200809; -pub const _POSIX2_C_VERSION: u32 = 200809; -pub const _POSIX2_C_BIND: u32 = 200809; -pub const _POSIX2_C_DEV: u32 = 200809; -pub const _POSIX2_SW_DEV: u32 = 200809; -pub const _POSIX2_LOCALEDEF: u32 = 200809; -pub const _XOPEN_VERSION: u32 = 700; -pub const _XOPEN_XCU_VERSION: u32 = 4; -pub const _XOPEN_XPG2: u32 = 1; -pub const _XOPEN_XPG3: u32 = 1; -pub const _XOPEN_XPG4: u32 = 1; -pub const _XOPEN_UNIX: u32 = 1; -pub const _XOPEN_ENH_I18N: u32 = 1; -pub const _XOPEN_LEGACY: u32 = 1; -pub const _BITS_POSIX_OPT_H: u32 = 1; -pub const _POSIX_JOB_CONTROL: u32 = 1; -pub const _POSIX_SAVED_IDS: u32 = 1; -pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809; -pub const _POSIX_FSYNC: u32 = 200809; -pub const _POSIX_MAPPED_FILES: u32 = 200809; -pub const _POSIX_MEMLOCK: u32 = 200809; -pub const _POSIX_MEMLOCK_RANGE: u32 = 200809; -pub const _POSIX_MEMORY_PROTECTION: u32 = 200809; -pub const _POSIX_CHOWN_RESTRICTED: u32 = 0; -pub const _POSIX_VDISABLE: u8 = 0u8; -pub const _POSIX_NO_TRUNC: u32 = 1; -pub const _XOPEN_REALTIME: u32 = 1; -pub const _XOPEN_REALTIME_THREADS: u32 = 1; -pub const _XOPEN_SHM: u32 = 1; -pub const _POSIX_THREADS: u32 = 200809; -pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1; -pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809; -pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809; -pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809; -pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809; -pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1; -pub const _POSIX_SEMAPHORES: u32 = 200809; -pub const _POSIX_REALTIME_SIGNALS: u32 = 200809; -pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809; -pub const _POSIX_ASYNC_IO: u32 = 1; -pub const _LFS_ASYNCHRONOUS_IO: u32 = 1; -pub const _POSIX_PRIORITIZED_IO: u32 = 200809; -pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1; -pub const _LFS_LARGEFILE: u32 = 1; -pub const _LFS64_LARGEFILE: u32 = 1; -pub const _LFS64_STDIO: u32 = 1; -pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809; -pub const _POSIX_CPUTIME: u32 = 0; -pub const _POSIX_THREAD_CPUTIME: u32 = 0; -pub const _POSIX_REGEXP: u32 = 1; -pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809; -pub const _POSIX_SHELL: u32 = 1; -pub const _POSIX_TIMEOUTS: u32 = 200809; -pub const _POSIX_SPIN_LOCKS: u32 = 200809; -pub const _POSIX_SPAWN: u32 = 200809; -pub const _POSIX_TIMERS: u32 = 200809; -pub const _POSIX_BARRIERS: u32 = 200809; -pub const _POSIX_MESSAGE_PASSING: u32 = 200809; -pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809; -pub const _POSIX_MONOTONIC_CLOCK: u32 = 0; -pub const _POSIX_CLOCK_SELECTION: u32 = 200809; -pub const _POSIX_ADVISORY_INFO: u32 = 200809; -pub const _POSIX_IPV6: u32 = 200809; -pub const _POSIX_RAW_SOCKETS: u32 = 200809; -pub const _POSIX2_CHAR_TERM: u32 = 200809; -pub const _POSIX_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1; -pub const _POSIX_TRACE: i32 = -1; -pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1; -pub const _POSIX_TRACE_INHERIT: i32 = -1; -pub const _POSIX_TRACE_LOG: i32 = -1; -pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1; -pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1; -pub const _XBS5_LPBIG_OFFBIG: i32 = -1; -pub const _POSIX_V7_LP64_OFF64: u32 = 1; -pub const _POSIX_V6_LP64_OFF64: u32 = 1; -pub const _XBS5_LP64_OFF64: u32 = 1; -pub const __ILP32_OFF32_CFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFF32_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __ILP32_OFFBIG_CFLAGS: &[u8; 48] = b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0"; -pub const __ILP32_OFFBIG_LDFLAGS: &[u8; 5] = b"-m32\0"; -pub const __LP64_OFF64_CFLAGS: &[u8; 5] = b"-m64\0"; -pub const __LP64_OFF64_LDFLAGS: &[u8; 5] = b"-m64\0"; -pub const STDIN_FILENO: u32 = 0; -pub const STDOUT_FILENO: u32 = 1; -pub const STDERR_FILENO: u32 = 2; -pub const R_OK: u32 = 4; -pub const W_OK: u32 = 2; -pub const X_OK: u32 = 1; -pub const F_OK: u32 = 0; -pub const L_SET: u32 = 0; -pub const L_INCR: u32 = 1; -pub const L_XTND: u32 = 2; -pub const _GETOPT_POSIX_H: u32 = 1; -pub const _GETOPT_CORE_H: u32 = 1; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const _ASSERT_H: u32 = 1; -pub const _INTTYPES_H: u32 = 1; -pub const _STDINT_H: u32 = 1; -pub const _BITS_WCHAR_H: u32 = 1; -pub const _BITS_STDINT_UINTN_H: u32 = 1; -pub const INT8_MIN: i32 = -128; -pub const INT16_MIN: i32 = -32768; -pub const INT32_MIN: i32 = -2147483648; -pub const INT8_MAX: u32 = 127; -pub const INT16_MAX: u32 = 32767; -pub const INT32_MAX: u32 = 2147483647; -pub const UINT8_MAX: u32 = 255; -pub const UINT16_MAX: u32 = 65535; -pub const UINT32_MAX: u32 = 4294967295; -pub const INT_LEAST8_MIN: i32 = -128; -pub const INT_LEAST16_MIN: i32 = -32768; -pub const INT_LEAST32_MIN: i32 = -2147483648; -pub const INT_LEAST8_MAX: u32 = 127; -pub const INT_LEAST16_MAX: u32 = 32767; -pub const INT_LEAST32_MAX: u32 = 2147483647; -pub const UINT_LEAST8_MAX: u32 = 255; -pub const UINT_LEAST16_MAX: u32 = 65535; -pub const UINT_LEAST32_MAX: u32 = 4294967295; -pub const INT_FAST8_MIN: i32 = -128; -pub const INT_FAST16_MIN: i64 = -9223372036854775808; -pub const INT_FAST32_MIN: i64 = -9223372036854775808; -pub const INT_FAST8_MAX: u32 = 127; -pub const INT_FAST16_MAX: u64 = 9223372036854775807; -pub const INT_FAST32_MAX: u64 = 9223372036854775807; -pub const UINT_FAST8_MAX: u32 = 255; -pub const UINT_FAST16_MAX: i32 = -1; -pub const UINT_FAST32_MAX: i32 = -1; -pub const INTPTR_MIN: i64 = -9223372036854775808; -pub const INTPTR_MAX: u64 = 9223372036854775807; -pub const UINTPTR_MAX: i32 = -1; -pub const PTRDIFF_MIN: i64 = -9223372036854775808; -pub const PTRDIFF_MAX: u64 = 9223372036854775807; -pub const SIG_ATOMIC_MIN: i32 = -2147483648; -pub const SIG_ATOMIC_MAX: u32 = 2147483647; -pub const SIZE_MAX: i32 = -1; -pub const WINT_MIN: u32 = 0; -pub const WINT_MAX: u32 = 4294967295; -pub const ____gwchar_t_defined: u32 = 1; -pub const __PRI64_PREFIX: &[u8; 2] = b"l\0"; -pub const __PRIPTR_PREFIX: &[u8; 2] = b"l\0"; -pub const PRId8: &[u8; 2] = b"d\0"; -pub const PRId16: &[u8; 2] = b"d\0"; -pub const PRId32: &[u8; 2] = b"d\0"; -pub const PRId64: &[u8; 3] = b"ld\0"; -pub const PRIdLEAST8: &[u8; 2] = b"d\0"; -pub const PRIdLEAST16: &[u8; 2] = b"d\0"; -pub const PRIdLEAST32: &[u8; 2] = b"d\0"; -pub const PRIdLEAST64: &[u8; 3] = b"ld\0"; -pub const PRIdFAST8: &[u8; 2] = b"d\0"; -pub const PRIdFAST16: &[u8; 3] = b"ld\0"; -pub const PRIdFAST32: &[u8; 3] = b"ld\0"; -pub const PRIdFAST64: &[u8; 3] = b"ld\0"; -pub const PRIi8: &[u8; 2] = b"i\0"; -pub const PRIi16: &[u8; 2] = b"i\0"; -pub const PRIi32: &[u8; 2] = b"i\0"; -pub const PRIi64: &[u8; 3] = b"li\0"; -pub const PRIiLEAST8: &[u8; 2] = b"i\0"; -pub const PRIiLEAST16: &[u8; 2] = b"i\0"; -pub const PRIiLEAST32: &[u8; 2] = b"i\0"; -pub const PRIiLEAST64: &[u8; 3] = b"li\0"; -pub const PRIiFAST8: &[u8; 2] = b"i\0"; -pub const PRIiFAST16: &[u8; 3] = b"li\0"; -pub const PRIiFAST32: &[u8; 3] = b"li\0"; -pub const PRIiFAST64: &[u8; 3] = b"li\0"; -pub const PRIo8: &[u8; 2] = b"o\0"; -pub const PRIo16: &[u8; 2] = b"o\0"; -pub const PRIo32: &[u8; 2] = b"o\0"; -pub const PRIo64: &[u8; 3] = b"lo\0"; -pub const PRIoLEAST8: &[u8; 2] = b"o\0"; -pub const PRIoLEAST16: &[u8; 2] = b"o\0"; -pub const PRIoLEAST32: &[u8; 2] = b"o\0"; -pub const PRIoLEAST64: &[u8; 3] = b"lo\0"; -pub const PRIoFAST8: &[u8; 2] = b"o\0"; -pub const PRIoFAST16: &[u8; 3] = b"lo\0"; -pub const PRIoFAST32: &[u8; 3] = b"lo\0"; -pub const PRIoFAST64: &[u8; 3] = b"lo\0"; -pub const PRIu8: &[u8; 2] = b"u\0"; -pub const PRIu16: &[u8; 2] = b"u\0"; -pub const PRIu32: &[u8; 2] = b"u\0"; -pub const PRIu64: &[u8; 3] = b"lu\0"; -pub const PRIuLEAST8: &[u8; 2] = b"u\0"; -pub const PRIuLEAST16: &[u8; 2] = b"u\0"; -pub const PRIuLEAST32: &[u8; 2] = b"u\0"; -pub const PRIuLEAST64: &[u8; 3] = b"lu\0"; -pub const PRIuFAST8: &[u8; 2] = b"u\0"; -pub const PRIuFAST16: &[u8; 3] = b"lu\0"; -pub const PRIuFAST32: &[u8; 3] = b"lu\0"; -pub const PRIuFAST64: &[u8; 3] = b"lu\0"; -pub const PRIx8: &[u8; 2] = b"x\0"; -pub const PRIx16: &[u8; 2] = b"x\0"; -pub const PRIx32: &[u8; 2] = b"x\0"; -pub const PRIx64: &[u8; 3] = b"lx\0"; -pub const PRIxLEAST8: &[u8; 2] = b"x\0"; -pub const PRIxLEAST16: &[u8; 2] = b"x\0"; -pub const PRIxLEAST32: &[u8; 2] = b"x\0"; -pub const PRIxLEAST64: &[u8; 3] = b"lx\0"; -pub const PRIxFAST8: &[u8; 2] = b"x\0"; -pub const PRIxFAST16: &[u8; 3] = b"lx\0"; -pub const PRIxFAST32: &[u8; 3] = b"lx\0"; -pub const PRIxFAST64: &[u8; 3] = b"lx\0"; -pub const PRIX8: &[u8; 2] = b"X\0"; -pub const PRIX16: &[u8; 2] = b"X\0"; -pub const PRIX32: &[u8; 2] = b"X\0"; -pub const PRIX64: &[u8; 3] = b"lX\0"; -pub const PRIXLEAST8: &[u8; 2] = b"X\0"; -pub const PRIXLEAST16: &[u8; 2] = b"X\0"; -pub const PRIXLEAST32: &[u8; 2] = b"X\0"; -pub const PRIXLEAST64: &[u8; 3] = b"lX\0"; -pub const PRIXFAST8: &[u8; 2] = b"X\0"; -pub const PRIXFAST16: &[u8; 3] = b"lX\0"; -pub const PRIXFAST32: &[u8; 3] = b"lX\0"; -pub const PRIXFAST64: &[u8; 3] = b"lX\0"; -pub const PRIdMAX: &[u8; 3] = b"ld\0"; -pub const PRIiMAX: &[u8; 3] = b"li\0"; -pub const PRIoMAX: &[u8; 3] = b"lo\0"; -pub const PRIuMAX: &[u8; 3] = b"lu\0"; -pub const PRIxMAX: &[u8; 3] = b"lx\0"; -pub const PRIXMAX: &[u8; 3] = b"lX\0"; -pub const PRIdPTR: &[u8; 3] = b"ld\0"; -pub const PRIiPTR: &[u8; 3] = b"li\0"; -pub const PRIoPTR: &[u8; 3] = b"lo\0"; -pub const PRIuPTR: &[u8; 3] = b"lu\0"; -pub const PRIxPTR: &[u8; 3] = b"lx\0"; -pub const PRIXPTR: &[u8; 3] = b"lX\0"; -pub const SCNd8: &[u8; 4] = b"hhd\0"; -pub const SCNd16: &[u8; 3] = b"hd\0"; -pub const SCNd32: &[u8; 2] = b"d\0"; -pub const SCNd64: &[u8; 3] = b"ld\0"; -pub const SCNdLEAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdLEAST16: &[u8; 3] = b"hd\0"; -pub const SCNdLEAST32: &[u8; 2] = b"d\0"; -pub const SCNdLEAST64: &[u8; 3] = b"ld\0"; -pub const SCNdFAST8: &[u8; 4] = b"hhd\0"; -pub const SCNdFAST16: &[u8; 3] = b"ld\0"; -pub const SCNdFAST32: &[u8; 3] = b"ld\0"; -pub const SCNdFAST64: &[u8; 3] = b"ld\0"; -pub const SCNi8: &[u8; 4] = b"hhi\0"; -pub const SCNi16: &[u8; 3] = b"hi\0"; -pub const SCNi32: &[u8; 2] = b"i\0"; -pub const SCNi64: &[u8; 3] = b"li\0"; -pub const SCNiLEAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiLEAST16: &[u8; 3] = b"hi\0"; -pub const SCNiLEAST32: &[u8; 2] = b"i\0"; -pub const SCNiLEAST64: &[u8; 3] = b"li\0"; -pub const SCNiFAST8: &[u8; 4] = b"hhi\0"; -pub const SCNiFAST16: &[u8; 3] = b"li\0"; -pub const SCNiFAST32: &[u8; 3] = b"li\0"; -pub const SCNiFAST64: &[u8; 3] = b"li\0"; -pub const SCNu8: &[u8; 4] = b"hhu\0"; -pub const SCNu16: &[u8; 3] = b"hu\0"; -pub const SCNu32: &[u8; 2] = b"u\0"; -pub const SCNu64: &[u8; 3] = b"lu\0"; -pub const SCNuLEAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuLEAST16: &[u8; 3] = b"hu\0"; -pub const SCNuLEAST32: &[u8; 2] = b"u\0"; -pub const SCNuLEAST64: &[u8; 3] = b"lu\0"; -pub const SCNuFAST8: &[u8; 4] = b"hhu\0"; -pub const SCNuFAST16: &[u8; 3] = b"lu\0"; -pub const SCNuFAST32: &[u8; 3] = b"lu\0"; -pub const SCNuFAST64: &[u8; 3] = b"lu\0"; -pub const SCNo8: &[u8; 4] = b"hho\0"; -pub const SCNo16: &[u8; 3] = b"ho\0"; -pub const SCNo32: &[u8; 2] = b"o\0"; -pub const SCNo64: &[u8; 3] = b"lo\0"; -pub const SCNoLEAST8: &[u8; 4] = b"hho\0"; -pub const SCNoLEAST16: &[u8; 3] = b"ho\0"; -pub const SCNoLEAST32: &[u8; 2] = b"o\0"; -pub const SCNoLEAST64: &[u8; 3] = b"lo\0"; -pub const SCNoFAST8: &[u8; 4] = b"hho\0"; -pub const SCNoFAST16: &[u8; 3] = b"lo\0"; -pub const SCNoFAST32: &[u8; 3] = b"lo\0"; -pub const SCNoFAST64: &[u8; 3] = b"lo\0"; -pub const SCNx8: &[u8; 4] = b"hhx\0"; -pub const SCNx16: &[u8; 3] = b"hx\0"; -pub const SCNx32: &[u8; 2] = b"x\0"; -pub const SCNx64: &[u8; 3] = b"lx\0"; -pub const SCNxLEAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxLEAST16: &[u8; 3] = b"hx\0"; -pub const SCNxLEAST32: &[u8; 2] = b"x\0"; -pub const SCNxLEAST64: &[u8; 3] = b"lx\0"; -pub const SCNxFAST8: &[u8; 4] = b"hhx\0"; -pub const SCNxFAST16: &[u8; 3] = b"lx\0"; -pub const SCNxFAST32: &[u8; 3] = b"lx\0"; -pub const SCNxFAST64: &[u8; 3] = b"lx\0"; -pub const SCNdMAX: &[u8; 3] = b"ld\0"; -pub const SCNiMAX: &[u8; 3] = b"li\0"; -pub const SCNoMAX: &[u8; 3] = b"lo\0"; -pub const SCNuMAX: &[u8; 3] = b"lu\0"; -pub const SCNxMAX: &[u8; 3] = b"lx\0"; -pub const SCNdPTR: &[u8; 3] = b"ld\0"; -pub const SCNiPTR: &[u8; 3] = b"li\0"; -pub const SCNoPTR: &[u8; 3] = b"lo\0"; -pub const SCNuPTR: &[u8; 3] = b"lu\0"; -pub const SCNxPTR: &[u8; 3] = b"lx\0"; -pub const HAVE_LONG_LONG: u32 = 1; -pub const PYLONG_BITS_IN_DIGIT: u32 = 30; -pub const SIZEOF_PY_HASH_T: u32 = 8; -pub const SIZEOF_PY_UHASH_T: u32 = 8; -pub const PY_SIZE_MAX: i32 = -1; -pub const _MATH_H: u32 = 1; -pub const _BITS_LIBM_SIMD_DECL_STUBS_H: u32 = 1; -pub const __FP_LOGB0_IS_MIN: u32 = 1; -pub const __FP_LOGBNAN_IS_MIN: u32 = 1; -pub const FP_ILOGB0: i32 = -2147483648; -pub const FP_ILOGBNAN: i32 = -2147483648; -pub const __MATH_DECLARING_DOUBLE: u32 = 1; -pub const __MATH_DECLARING_FLOATN: u32 = 0; -pub const __MATH_DECLARE_LDOUBLE: u32 = 1; -pub const MATH_ERRNO: u32 = 1; -pub const MATH_ERREXCEPT: u32 = 2; -pub const math_errhandling: u32 = 3; -pub const _SYS_TIME_H: u32 = 1; -pub const _TIME_H: u32 = 1; -pub const _BITS_TIME_H: u32 = 1; -pub const CLOCK_REALTIME: u32 = 0; -pub const CLOCK_MONOTONIC: u32 = 1; -pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; -pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; -pub const CLOCK_MONOTONIC_RAW: u32 = 4; -pub const CLOCK_REALTIME_COARSE: u32 = 5; -pub const CLOCK_MONOTONIC_COARSE: u32 = 6; -pub const CLOCK_BOOTTIME: u32 = 7; -pub const CLOCK_REALTIME_ALARM: u32 = 8; -pub const CLOCK_BOOTTIME_ALARM: u32 = 9; -pub const CLOCK_TAI: u32 = 11; -pub const TIMER_ABSTIME: u32 = 1; -pub const __struct_tm_defined: u32 = 1; -pub const __itimerspec_defined: u32 = 1; -pub const TIME_UTC: u32 = 1; -pub const _SYS_STAT_H: u32 = 1; -pub const _BITS_STAT_H: u32 = 1; -pub const _BITS_STRUCT_STAT_H: u32 = 1; -pub const __S_IFMT: u32 = 61440; -pub const __S_IFDIR: u32 = 16384; -pub const __S_IFCHR: u32 = 8192; -pub const __S_IFBLK: u32 = 24576; -pub const __S_IFREG: u32 = 32768; -pub const __S_IFIFO: u32 = 4096; -pub const __S_IFLNK: u32 = 40960; -pub const __S_IFSOCK: u32 = 49152; -pub const __S_ISUID: u32 = 2048; -pub const __S_ISGID: u32 = 1024; -pub const __S_ISVTX: u32 = 512; -pub const __S_IREAD: u32 = 256; -pub const __S_IWRITE: u32 = 128; -pub const __S_IEXEC: u32 = 64; -pub const UTIME_NOW: u32 = 1073741823; -pub const UTIME_OMIT: u32 = 1073741822; -pub const S_IFMT: u32 = 61440; -pub const S_IFDIR: u32 = 16384; -pub const S_IFCHR: u32 = 8192; -pub const S_IFBLK: u32 = 24576; -pub const S_IFREG: u32 = 32768; -pub const S_IFIFO: u32 = 4096; -pub const S_IFLNK: u32 = 40960; -pub const S_IFSOCK: u32 = 49152; -pub const S_ISUID: u32 = 2048; -pub const S_ISGID: u32 = 1024; -pub const S_ISVTX: u32 = 512; -pub const S_IRUSR: u32 = 256; -pub const S_IWUSR: u32 = 128; -pub const S_IXUSR: u32 = 64; -pub const S_IRWXU: u32 = 448; -pub const S_IREAD: u32 = 256; -pub const S_IWRITE: u32 = 128; -pub const S_IEXEC: u32 = 64; -pub const S_IRGRP: u32 = 32; -pub const S_IWGRP: u32 = 16; -pub const S_IXGRP: u32 = 8; -pub const S_IRWXG: u32 = 56; -pub const S_IROTH: u32 = 4; -pub const S_IWOTH: u32 = 2; -pub const S_IXOTH: u32 = 1; -pub const S_IRWXO: u32 = 7; -pub const ACCESSPERMS: u32 = 511; -pub const ALLPERMS: u32 = 4095; -pub const DEFFILEMODE: u32 = 438; -pub const S_BLKSIZE: u32 = 512; -pub const HAVE_PY_SET_53BIT_PRECISION: u32 = 1; -pub const LONG_BIT: u32 = 64; -pub const PY_BIG_ENDIAN: u32 = 0; -pub const PY_LITTLE_ENDIAN: u32 = 1; -pub const PY_DWORD_MAX: u32 = 4294967295; -pub const Py_PRINT_RAW: u32 = 1; -pub const Py_TPFLAGS_HEAPTYPE: u32 = 512; -pub const Py_TPFLAGS_BASETYPE: u32 = 1024; -pub const Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const _Py_TPFLAGS_HAVE_VECTORCALL: u32 = 2048; -pub const Py_TPFLAGS_READY: u32 = 4096; -pub const Py_TPFLAGS_READYING: u32 = 8192; -pub const Py_TPFLAGS_HAVE_GC: u32 = 16384; -pub const Py_TPFLAGS_HAVE_STACKLESS_EXTENSION: u32 = 0; -pub const Py_TPFLAGS_METHOD_DESCRIPTOR: u32 = 131072; -pub const Py_TPFLAGS_HAVE_VERSION_TAG: u32 = 262144; -pub const Py_TPFLAGS_VALID_VERSION_TAG: u32 = 524288; -pub const Py_TPFLAGS_IS_ABSTRACT: u32 = 1048576; -pub const Py_TPFLAGS_LONG_SUBCLASS: u32 = 16777216; -pub const Py_TPFLAGS_LIST_SUBCLASS: u32 = 33554432; -pub const Py_TPFLAGS_TUPLE_SUBCLASS: u32 = 67108864; -pub const Py_TPFLAGS_BYTES_SUBCLASS: u32 = 134217728; -pub const Py_TPFLAGS_UNICODE_SUBCLASS: u32 = 268435456; -pub const Py_TPFLAGS_DICT_SUBCLASS: u32 = 536870912; -pub const Py_TPFLAGS_BASE_EXC_SUBCLASS: u32 = 1073741824; -pub const Py_TPFLAGS_TYPE_SUBCLASS: u32 = 2147483648; -pub const Py_TPFLAGS_DEFAULT: u32 = 262144; -pub const Py_TPFLAGS_HAVE_FINALIZE: u32 = 1; -pub const Py_LT: u32 = 0; -pub const Py_LE: u32 = 1; -pub const Py_EQ: u32 = 2; -pub const Py_NE: u32 = 3; -pub const Py_GT: u32 = 4; -pub const Py_GE: u32 = 5; -pub const PyBUF_MAX_NDIM: u32 = 64; -pub const PyBUF_SIMPLE: u32 = 0; -pub const PyBUF_WRITABLE: u32 = 1; -pub const PyBUF_WRITEABLE: u32 = 1; -pub const PyBUF_FORMAT: u32 = 4; -pub const PyBUF_ND: u32 = 8; -pub const PyBUF_STRIDES: u32 = 24; -pub const PyBUF_C_CONTIGUOUS: u32 = 56; -pub const PyBUF_F_CONTIGUOUS: u32 = 88; -pub const PyBUF_ANY_CONTIGUOUS: u32 = 152; -pub const PyBUF_INDIRECT: u32 = 280; -pub const PyBUF_CONTIG: u32 = 9; -pub const PyBUF_CONTIG_RO: u32 = 8; -pub const PyBUF_STRIDED: u32 = 25; -pub const PyBUF_STRIDED_RO: u32 = 24; -pub const PyBUF_RECORDS: u32 = 29; -pub const PyBUF_RECORDS_RO: u32 = 28; -pub const PyBUF_FULL: u32 = 285; -pub const PyBUF_FULL_RO: u32 = 284; -pub const PyBUF_READ: u32 = 256; -pub const PyBUF_WRITE: u32 = 512; -pub const PyTrash_UNWIND_LEVEL: u32 = 50; -pub const Py_bf_getbuffer: u32 = 1; -pub const Py_bf_releasebuffer: u32 = 2; -pub const Py_mp_ass_subscript: u32 = 3; -pub const Py_mp_length: u32 = 4; -pub const Py_mp_subscript: u32 = 5; -pub const Py_nb_absolute: u32 = 6; -pub const Py_nb_add: u32 = 7; -pub const Py_nb_and: u32 = 8; -pub const Py_nb_bool: u32 = 9; -pub const Py_nb_divmod: u32 = 10; -pub const Py_nb_float: u32 = 11; -pub const Py_nb_floor_divide: u32 = 12; -pub const Py_nb_index: u32 = 13; -pub const Py_nb_inplace_add: u32 = 14; -pub const Py_nb_inplace_and: u32 = 15; -pub const Py_nb_inplace_floor_divide: u32 = 16; -pub const Py_nb_inplace_lshift: u32 = 17; -pub const Py_nb_inplace_multiply: u32 = 18; -pub const Py_nb_inplace_or: u32 = 19; -pub const Py_nb_inplace_power: u32 = 20; -pub const Py_nb_inplace_remainder: u32 = 21; -pub const Py_nb_inplace_rshift: u32 = 22; -pub const Py_nb_inplace_subtract: u32 = 23; -pub const Py_nb_inplace_true_divide: u32 = 24; -pub const Py_nb_inplace_xor: u32 = 25; -pub const Py_nb_int: u32 = 26; -pub const Py_nb_invert: u32 = 27; -pub const Py_nb_lshift: u32 = 28; -pub const Py_nb_multiply: u32 = 29; -pub const Py_nb_negative: u32 = 30; -pub const Py_nb_or: u32 = 31; -pub const Py_nb_positive: u32 = 32; -pub const Py_nb_power: u32 = 33; -pub const Py_nb_remainder: u32 = 34; -pub const Py_nb_rshift: u32 = 35; -pub const Py_nb_subtract: u32 = 36; -pub const Py_nb_true_divide: u32 = 37; -pub const Py_nb_xor: u32 = 38; -pub const Py_sq_ass_item: u32 = 39; -pub const Py_sq_concat: u32 = 40; -pub const Py_sq_contains: u32 = 41; -pub const Py_sq_inplace_concat: u32 = 42; -pub const Py_sq_inplace_repeat: u32 = 43; -pub const Py_sq_item: u32 = 44; -pub const Py_sq_length: u32 = 45; -pub const Py_sq_repeat: u32 = 46; -pub const Py_tp_alloc: u32 = 47; -pub const Py_tp_base: u32 = 48; -pub const Py_tp_bases: u32 = 49; -pub const Py_tp_call: u32 = 50; -pub const Py_tp_clear: u32 = 51; -pub const Py_tp_dealloc: u32 = 52; -pub const Py_tp_del: u32 = 53; -pub const Py_tp_descr_get: u32 = 54; -pub const Py_tp_descr_set: u32 = 55; -pub const Py_tp_doc: u32 = 56; -pub const Py_tp_getattr: u32 = 57; -pub const Py_tp_getattro: u32 = 58; -pub const Py_tp_hash: u32 = 59; -pub const Py_tp_init: u32 = 60; -pub const Py_tp_is_gc: u32 = 61; -pub const Py_tp_iter: u32 = 62; -pub const Py_tp_iternext: u32 = 63; -pub const Py_tp_methods: u32 = 64; -pub const Py_tp_new: u32 = 65; -pub const Py_tp_repr: u32 = 66; -pub const Py_tp_richcompare: u32 = 67; -pub const Py_tp_setattr: u32 = 68; -pub const Py_tp_setattro: u32 = 69; -pub const Py_tp_str: u32 = 70; -pub const Py_tp_traverse: u32 = 71; -pub const Py_tp_members: u32 = 72; -pub const Py_tp_getset: u32 = 73; -pub const Py_tp_free: u32 = 74; -pub const Py_nb_matrix_multiply: u32 = 75; -pub const Py_nb_inplace_matrix_multiply: u32 = 76; -pub const Py_am_await: u32 = 77; -pub const Py_am_aiter: u32 = 78; -pub const Py_am_anext: u32 = 79; -pub const Py_tp_finalize: u32 = 80; -pub const _PyHASH_MULTIPLIER: u32 = 1000003; -pub const _PyHASH_BITS: u32 = 61; -pub const _PyHASH_INF: u32 = 314159; -pub const _PyHASH_NAN: u32 = 0; -pub const _PyHASH_IMAG: u32 = 1000003; -pub const Py_HASH_CUTOFF: u32 = 0; -pub const Py_HASH_EXTERNAL: u32 = 0; -pub const Py_HASH_SIPHASH24: u32 = 1; -pub const Py_HASH_FNV: u32 = 2; -pub const Py_HASH_ALGORITHM: u32 = 1; -pub const F_LJUST: u32 = 1; -pub const F_SIGN: u32 = 2; -pub const F_BLANK: u32 = 4; -pub const F_ALT: u32 = 8; -pub const F_ZERO: u32 = 16; -pub const _CTYPE_H: u32 = 1; -pub const Py_UNICODE_SIZE: u32 = 4; -pub const _WCHAR_H: u32 = 1; -pub const __wint_t_defined: u32 = 1; -pub const _WINT_T: u32 = 1; -pub const __mbstate_t_defined: u32 = 1; -pub const WEOF: u32 = 4294967295; -pub const SSTATE_NOT_INTERNED: u32 = 0; -pub const SSTATE_INTERNED_MORTAL: u32 = 1; -pub const SSTATE_INTERNED_IMMORTAL: u32 = 2; -pub const _Py_PARSE_PID: &[u8; 2] = b"i\0"; -pub const _Py_PARSE_INTPTR: &[u8; 2] = b"l\0"; -pub const _Py_PARSE_UINTPTR: &[u8; 2] = b"k\0"; -pub const PyLong_SHIFT: u32 = 30; -pub const _PyLong_DECIMAL_SHIFT: u32 = 9; -pub const _Py_MANAGED_BUFFER_RELEASED: u32 = 1; -pub const _Py_MANAGED_BUFFER_FREE_FORMAT: u32 = 2; -pub const _Py_MEMORYVIEW_RELEASED: u32 = 1; -pub const _Py_MEMORYVIEW_C: u32 = 2; -pub const _Py_MEMORYVIEW_FORTRAN: u32 = 4; -pub const _Py_MEMORYVIEW_SCALAR: u32 = 8; -pub const _Py_MEMORYVIEW_PIL: u32 = 16; -pub const PySet_MINSIZE: u32 = 8; -pub const METH_VARARGS: u32 = 1; -pub const METH_KEYWORDS: u32 = 2; -pub const METH_NOARGS: u32 = 4; -pub const METH_O: u32 = 8; -pub const METH_CLASS: u32 = 16; -pub const METH_STATIC: u32 = 32; -pub const METH_COEXIST: u32 = 64; -pub const METH_FASTCALL: u32 = 128; -pub const METH_STACKLESS: u32 = 0; -pub const METH_METHOD: u32 = 512; -pub const Py_mod_create: u32 = 1; -pub const Py_mod_exec: u32 = 2; -pub const _Py_mod_LAST_SLOT: u32 = 2; -pub const PY_STDIOTEXTMODE: &[u8; 2] = b"b\0"; -pub const CO_OPTIMIZED: u32 = 1; -pub const CO_NEWLOCALS: u32 = 2; -pub const CO_VARARGS: u32 = 4; -pub const CO_VARKEYWORDS: u32 = 8; -pub const CO_NESTED: u32 = 16; -pub const CO_GENERATOR: u32 = 32; -pub const CO_NOFREE: u32 = 64; -pub const CO_COROUTINE: u32 = 128; -pub const CO_ITERABLE_COROUTINE: u32 = 256; -pub const CO_ASYNC_GENERATOR: u32 = 512; -pub const CO_FUTURE_DIVISION: u32 = 131072; -pub const CO_FUTURE_ABSOLUTE_IMPORT: u32 = 262144; -pub const CO_FUTURE_WITH_STATEMENT: u32 = 524288; -pub const CO_FUTURE_PRINT_FUNCTION: u32 = 1048576; -pub const CO_FUTURE_UNICODE_LITERALS: u32 = 2097152; -pub const CO_FUTURE_BARRY_AS_BDFL: u32 = 4194304; -pub const CO_FUTURE_GENERATOR_STOP: u32 = 8388608; -pub const CO_FUTURE_ANNOTATIONS: u32 = 16777216; -pub const CO_CELL_NOT_AN_ARG: i32 = -1; -pub const CO_MAXBLOCKS: u32 = 20; -pub const MAX_CO_EXTRA_USERS: u32 = 255; -pub const PyTrace_CALL: u32 = 0; -pub const PyTrace_EXCEPTION: u32 = 1; -pub const PyTrace_LINE: u32 = 2; -pub const PyTrace_RETURN: u32 = 3; -pub const PyTrace_C_CALL: u32 = 4; -pub const PyTrace_C_EXCEPTION: u32 = 5; -pub const PyTrace_C_RETURN: u32 = 6; -pub const PyTrace_OPCODE: u32 = 7; -pub const PyWrapperFlag_KEYWORDS: u32 = 1; -pub const WAIT_LOCK: u32 = 1; -pub const NOWAIT_LOCK: u32 = 0; -pub const _PTHREAD_H: u32 = 1; -pub const _SCHED_H: u32 = 1; -pub const _BITS_SCHED_H: u32 = 1; -pub const SCHED_OTHER: u32 = 0; -pub const SCHED_FIFO: u32 = 1; -pub const SCHED_RR: u32 = 2; -pub const _BITS_TYPES_STRUCT_SCHED_PARAM: u32 = 1; -pub const _BITS_CPU_SET_H: u32 = 1; -pub const __CPU_SETSIZE: u32 = 1024; -pub const _BITS_SETJMP_H: u32 = 1; -pub const __jmp_buf_tag_defined: u32 = 1; -pub const PTHREAD_ONCE_INIT: u32 = 0; -pub const PTHREAD_BARRIER_SERIAL_THREAD: i32 = -1; -pub const Py_CLEANUP_SUPPORTED: u32 = 131072; -pub const PYTHON_API_VERSION: u32 = 1013; -pub const PYTHON_API_STRING: &[u8; 5] = b"1013\0"; -pub const PYTHON_ABI_VERSION: u32 = 3; -pub const PYTHON_ABI_STRING: &[u8; 2] = b"3\0"; -pub const PyCF_MASK: u32 = 33423360; -pub const PyCF_MASK_OBSOLETE: u32 = 16; -pub const PyCF_SOURCE_IS_UTF8: u32 = 256; -pub const PyCF_DONT_IMPLY_DEDENT: u32 = 512; -pub const PyCF_ONLY_AST: u32 = 1024; -pub const PyCF_IGNORE_COOKIE: u32 = 2048; -pub const PyCF_TYPE_COMMENTS: u32 = 4096; -pub const PyCF_ALLOW_TOP_LEVEL_AWAIT: u32 = 8192; -pub const PyCF_COMPILE_MASK: u32 = 13824; -pub const FUTURE_NESTED_SCOPES: &[u8; 14] = b"nested_scopes\0"; -pub const FUTURE_GENERATORS: &[u8; 11] = b"generators\0"; -pub const FUTURE_DIVISION: &[u8; 9] = b"division\0"; -pub const FUTURE_ABSOLUTE_IMPORT: &[u8; 16] = b"absolute_import\0"; -pub const FUTURE_WITH_STATEMENT: &[u8; 15] = b"with_statement\0"; -pub const FUTURE_PRINT_FUNCTION: &[u8; 15] = b"print_function\0"; -pub const FUTURE_UNICODE_LITERALS: &[u8; 17] = b"unicode_literals\0"; -pub const FUTURE_BARRY_AS_BDFL: &[u8; 15] = b"barry_as_FLUFL\0"; -pub const FUTURE_GENERATOR_STOP: &[u8; 15] = b"generator_stop\0"; -pub const FUTURE_ANNOTATIONS: &[u8; 12] = b"annotations\0"; -pub const Py_single_input: u32 = 256; -pub const Py_file_input: u32 = 257; -pub const Py_eval_input: u32 = 258; -pub const Py_func_type_input: u32 = 345; -pub const Py_fstring_input: u32 = 800; -pub const PYOS_STACK_MARGIN: u32 = 2048; -pub const FVC_MASK: u32 = 3; -pub const FVC_NONE: u32 = 0; -pub const FVC_STR: u32 = 1; -pub const FVC_REPR: u32 = 2; -pub const FVC_ASCII: u32 = 3; -pub const FVS_MASK: u32 = 4; -pub const FVS_HAVE_SPEC: u32 = 4; -pub const _PY_FASTCALL_SMALL_STACK: u32 = 5; -pub const PY_ITERSEARCH_COUNT: u32 = 1; -pub const PY_ITERSEARCH_INDEX: u32 = 2; -pub const PY_ITERSEARCH_CONTAINS: u32 = 3; -pub const PY_CTF_LOWER: u32 = 1; -pub const PY_CTF_UPPER: u32 = 2; -pub const PY_CTF_ALPHA: u32 = 3; -pub const PY_CTF_DIGIT: u32 = 4; -pub const PY_CTF_ALNUM: u32 = 7; -pub const PY_CTF_SPACE: u32 = 8; -pub const PY_CTF_XDIGIT: u32 = 16; -pub const Py_DTSF_SIGN: u32 = 1; -pub const Py_DTSF_ADD_DOT_0: u32 = 2; -pub const Py_DTSF_ALT: u32 = 4; -pub const Py_DTST_FINITE: u32 = 0; -pub const Py_DTST_INFINITE: u32 = 1; -pub const Py_DTST_NAN: u32 = 2; -pub const Py_TPFLAGS_HAVE_ITER: u32 = 0; -pub const Py_TPFLAGS_HAVE_RICHCOMPARE: u32 = 0; -pub const Py_TPFLAGS_HAVE_CLASS: u32 = 0; -pub const HAVE_VARARG_MACROS: u32 = 1; -pub const HAVE_INTPTR_T: u32 = 1; -pub const HAVE_UINTPTR_T: u32 = 1; -pub const _LARGEFILE64_SOURCE: u32 = 1; -pub const HAVE_AF_UNIX: u32 = 1; -pub const HAVE_SYSV_IPC_SUPPORT: u32 = 1; -pub const HAVE_FCNTL: u32 = 1; -pub const HAVE_GETRUSAGE: u32 = 1; -pub const HAVE_GETTIMEOFDAY: u32 = 1; -pub const HAVE_INET_NTOA: u32 = 1; -pub const HAVE_INET_NTOP: u32 = 1; -pub const HAVE_STRTOK_R: u32 = 1; -pub const HAVE_USLEEP: u32 = 1; -pub const HAVE_ARPA_INET_H: u32 = 1; -pub const HAVE_ELF_H: u32 = 1; -pub const HAVE_NETDB_H: u32 = 1; -pub const HAVE_NETINET_IF_ETHER_H: u32 = 1; -pub const HAVE_NETINET_IN_H: u32 = 1; -pub const HAVE_NETINET_IN_SYSTM_H: u32 = 1; -pub const HAVE_NETINET_IP_H: u32 = 1; -pub const HAVE_NETINET_IP_ICMP_H: u32 = 1; -pub const HAVE_NETINET_TCP_H: u32 = 1; -pub const HAVE_NETINET_UDP_H: u32 = 1; -pub const HAVE_PWD_H: u32 = 1; -pub const HAVE_SEMAPHORE_H: u32 = 1; -pub const HAVE_SYS_FCNTL_H: u32 = 1; -pub const HAVE_SYS_IPC_H: u32 = 1; -pub const HAVE_SYS_SEM_H: u32 = 1; -pub const HAVE_SYS_SHM_H: u32 = 1; -pub const HAVE_SYSLOG_H: u32 = 1; -pub const HAVE_UCONTEXT_H: u32 = 1; -pub const HAVE_ISINF: u32 = 1; -pub const HAVE_LIBXPM: u32 = 1; -pub const HAVE_NET_ETHERNET_H: u32 = 1; -pub const HAVE_NETINET_ETHER_H: u32 = 1; -pub const HAVE_STDBOOL_H: u32 = 1; -pub const SO_SFX: &[u8; 3] = b"so\0"; -pub const USE_BINFMT_ELF: u32 = 1; -pub const HAVE_SYS_VFS_H: u32 = 1; -pub const HAVE_THREAD_LOCAL_STORAGE: u32 = 1; -pub const SIMICS_HOST_TYPE: &[u8; 8] = b"linux64\0"; -pub const HOST_CACHE_LINE_SIZE: u32 = 64; -pub const DIR_SEP: &[u8; 2] = b"/\0"; -pub const DIR_SEP_CHAR: u8 = 47u8; -pub const PATH_SEP: &[u8; 2] = b":\0"; -pub const PATH_SEP_CHAR: u8 = 58u8; -pub const __bool_true_false_are_defined: u32 = 1; -pub const true_: u32 = 1; -pub const false_: u32 = 0; -pub const HAVE_INT8: u32 = 1; -pub const HAVE_UINT8: u32 = 1; -pub const HAVE_INT16: u32 = 1; -pub const HAVE_UINT16: u32 = 1; -pub const HAVE_INT32: u32 = 1; -pub const HAVE_UINT32: u32 = 1; -pub const HAVE_UINT64: u32 = 1; -pub const HAVE_INT64: u32 = 1; -pub const BREAKPOINT_HANDLE_INVALID: u32 = 0; -pub const ARM_INTERFACE: &[u8; 4] = b"arm\0"; -pub const ARM_INT_IRQ: u32 = 0; -pub const ARM_INT_FIQ: u32 = 1; -pub const ARM_INT_VIRQ: u32 = 2; -pub const ARM_INT_VFIQ: u32 = 3; -pub const ARM_INT_SEI: u32 = 4; -pub const ARM_INT_REI: u32 = 5; -pub const ARM_INT_VSEI: u32 = 6; -pub const ARM_INT_NMI: u32 = 512; -pub const ARM_INT_SYSTICK: u32 = 513; -pub const ARM_COPROCESSOR_INTERFACE: &[u8; 16] = b"arm_coprocessor\0"; -pub const ARM_AVIC_INTERFACE: &[u8; 9] = b"arm_avic\0"; -pub const ARM_TRUSTZONE_INTERFACE: &[u8; 14] = b"arm_trustzone\0"; -pub const ARM_EXTERNAL_DEBUG_INTERFACE: &[u8; 19] = b"arm_external_debug\0"; -pub const ARM_GIC_INTERFACE: &[u8; 8] = b"arm_gic\0"; -pub const ARM_GIC_CPU_STATE_INTERFACE: &[u8; 18] = b"arm_gic_cpu_state\0"; -pub const ARM_CPU_GROUP_EXCLUSIVE_INTERFACE: &[u8; 24] = b"arm_cpu_group_exclusive\0"; -pub const ARM_CPU_GROUP_EVENT_INTERFACE: &[u8; 20] = b"arm_cpu_group_event\0"; -pub const ARM_CPU_GROUP_TLB_INTERFACE: &[u8; 18] = b"arm_cpu_group_tlb\0"; -pub const I8051_INTERRUPT_INTERFACE: &[u8; 16] = b"i8051_interrupt\0"; -pub const I8051_TIMER_INTERFACE: &[u8; 12] = b"i8051_timer\0"; -pub const VECT_COVERITY: u32 = 0; -pub const VECT_INITIAL_SIZE: u32 = 64; -pub const VECT_DEBUG: u32 = 0; -pub const CPU_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"cpu_instruction_query\0"; -pub const CPU_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"cpu_memory_query\0"; -pub const CPU_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"cpu_exception_query\0"; -pub const CPU_CACHED_INSTRUCTION_INTERFACE: &[u8; 23] = b"cpu_cached_instruction\0"; -pub const CPU_CACHED_INSTRUCTION_ONCE_INTERFACE: &[u8; 28] = b"cpu_cached_instruction_once\0"; -pub const CPU_INSTRUCTION_DECODER_INTERFACE: &[u8; 24] = b"cpu_instruction_decoder\0"; -pub const CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"cpu_instrumentation_subscribe\0"; -pub const CPU_STREAM_TAG_WIDTH: u32 = 6; -pub const CPU_STREAM_TAG_MASK: u32 = 63; -pub const CPU_CACHED_STREAM_INTERFACE: &[u8; 18] = b"cpu_cached_stream\0"; -pub const CPU_INSTRUMENTATION_STREAM_INTERFACE: &[u8; 37] = - b"cpu_instrumentation_stream_interface\0"; -pub const PRE_DECODER_INTERFACE: &[u8; 12] = b"pre_decoder\0"; -pub const MIPS_EXCEPTION_QUERY_INTERFACE: &[u8; 21] = b"mips_exception_query\0"; -pub const MIPS_INTERFACE: &[u8; 5] = b"mips\0"; -pub const MIPS_COPROCESSOR_INTERFACE: &[u8; 17] = b"mips_coprocessor\0"; -pub const FMN_STATION_CONTROL_INTERFACE: &[u8; 20] = b"fmn_station_control\0"; -pub const FMN_STATION_CONTROL_V2_INTERFACE: &[u8; 23] = b"fmn_station_control_v2\0"; -pub const MIPS_CACHE_INSTRUCTION_INTERFACE: &[u8; 23] = b"mips_cache_instruction\0"; -pub const MIPS_ITE_INTERFACE: &[u8; 9] = b"mips_ite\0"; -pub const MIPS_EIC_INTERFACE: &[u8; 9] = b"mips_eic\0"; -pub const NIOS_INTERFACE: &[u8; 5] = b"nios\0"; -pub const NIOS_EIC_INTERFACE: &[u8; 9] = b"nios_eic\0"; -pub const NIOS_CACHE_INTERFACE: &[u8; 11] = b"nios_cache\0"; -pub const NIOS_CUSTOM_INTERFACE: &[u8; 12] = b"nios_custom\0"; -pub const CACHE_CONTROL_INTERFACE: &[u8; 14] = b"cache_control\0"; -pub const PPC_INTERFACE: &[u8; 4] = b"ppc\0"; -pub const SPR_INTERFACE: &[u8; 4] = b"spr\0"; -pub const PMR_INTERFACE: &[u8; 4] = b"pmr\0"; -pub const RISCV_COPROCESSOR_INTERFACE: &[u8; 18] = b"riscv_coprocessor\0"; -pub const RISCV_IMSIC_INTERFACE: &[u8; 12] = b"riscv_imsic\0"; -pub const RISCV_CLIC_INTERRUPT_INTERFACE: &[u8; 21] = b"riscv_clic_interrupt\0"; -pub const RISCV_CLIC_INTERFACE: &[u8; 11] = b"riscv_clic\0"; -pub const SH_INTERRUPT_INTERFACE: &[u8; 13] = b"sh_interrupt\0"; -pub const SPARC_V8_INTERFACE: &[u8; 9] = b"sparc_v8\0"; -pub const SPARC_V8_ECC_FAULT_INJECTION_INTERFACE: &[u8; 29] = b"sparc_v8_ecc_fault_injection\0"; -pub const X86_ACCESS_TYPE_INTERFACE: &[u8; 16] = b"x86_access_type\0"; -pub const SIM_DI_PREFIX_F0_BIT: u32 = 1; -pub const SIM_DI_PREFIX_F2_BIT: u32 = 2; -pub const SIM_DI_PREFIX_F3_BIT: u32 = 4; -pub const SIM_DI_PREFIX_CS_BIT: u32 = 8; -pub const SIM_DI_PREFIX_SS_BIT: u32 = 16; -pub const SIM_DI_PREFIX_DS_BIT: u32 = 32; -pub const SIM_DI_PREFIX_ES_BIT: u32 = 64; -pub const SIM_DI_PREFIX_FS_BIT: u32 = 128; -pub const SIM_DI_PREFIX_GS_BIT: u32 = 256; -pub const SIM_DI_PREFIX_OPERAND_SIZE_BIT: u32 = 512; -pub const SIM_DI_PREFIX_66_BIT: u32 = 512; -pub const SIM_DI_PREFIX_ADDRESS_SIZE_BIT: u32 = 1024; -pub const SIM_DI_PREFIX_SSE_BIT: u32 = 2048; -pub const SIM_DI_PREFIX_REX_BIT: u32 = 4096; -pub const SIM_DI_PREFIX_REX_POS: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_B: u32 = 16; -pub const SIM_DI_PREFIX_REX_POS_X: u32 = 17; -pub const SIM_DI_PREFIX_REX_POS_R: u32 = 18; -pub const SIM_DI_PREFIX_REX_POS_W: u32 = 19; -pub const X86_TLB_INTERFACE: &[u8; 8] = b"x86_tlb\0"; -pub const X86_TLB_PTE_WRITE: u32 = 2; -pub const X86_TLB_PTE_USER: u32 = 4; -pub const X86_TLB_PTE_DIRTY: u32 = 64; -pub const X86_TLB_PTE_GLOBAL: u32 = 256; -pub const X86_TLB_PTE_PAGE_MASK: u32 = 326; -pub const X86_TLB_PTE_USER_SHIFT: u32 = 9; -pub const X86_TLB_PTE_USER_READ: u32 = 512; -pub const X86_TLB_PTE_USER_WRITE: u32 = 1024; -pub const X86_TLB_PTE_USER_EXECUTE: u32 = 2048; -pub const X86_TLB_PTE_USER_MASK: u32 = 3584; -pub const X86_TLB_PTE_SVISOR_SHIFT: u32 = 60; -pub const X86_TLB_PTE_SVISOR_READ: u64 = 1152921504606846976; -pub const X86_TLB_PTE_SVISOR_WRITE: u64 = 2305843009213693952; -pub const X86_TLB_PTE_SVISOR_EXECUTE: u64 = 4611686018427387904; -pub const X86_TLB_PTE_SVISOR_MASK: u64 = 8070450532247928832; -pub const X86_TLB_PTE_MASK: u64 = 8070450532247932416; -pub const X86_TLB_V3_INTERFACE: &[u8; 11] = b"x86_tlb_v3\0"; -pub const X86_TLB_V2_INTERFACE: &[u8; 11] = b"x86_tlb_v2\0"; -pub const X86_INTERFACE: &[u8; 4] = b"x86\0"; -pub const X86_CPUID_INTERFACE: &[u8; 10] = b"x86_cpuid\0"; -pub const X86_CPUID_QUERY_INTERFACE: &[u8; 16] = b"x86_cpuid_query\0"; -pub const APIC_CPU_INTERFACE: &[u8; 9] = b"apic_cpu\0"; -pub const A20_INTERFACE: &[u8; 4] = b"a20\0"; -pub const X86_MSR_INTERFACE: &[u8; 8] = b"x86_msr\0"; -pub const X86_CACHE_FLUSH_INTERFACE: &[u8; 16] = b"x86_cache_flush\0"; -pub const X86_SMM_STATE_INTERFACE: &[u8; 14] = b"x86_smm_state\0"; -pub const X86_SMM_INTERFACE: &[u8; 8] = b"x86_smm\0"; -pub const X86_REG_ACCESS_INTERFACE: &[u8; 15] = b"x86_reg_access\0"; -pub const X86_EXCEPTION_INTERFACE: &[u8; 14] = b"x86_exception\0"; -pub const X86_MEMORY_ACCESS_INTERFACE: &[u8; 18] = b"x86_memory_access\0"; -pub const X86_MEMORY_OPERATION_INTERFACE: &[u8; 21] = b"x86_memory_operation\0"; -pub const X86_VMP_CONTROL_INTERFACE: &[u8; 16] = b"x86_vmp_control\0"; -pub const VMP_INTERFACE: &[u8; 4] = b"vmp\0"; -pub const XED_ACCESS_INTERFACE: &[u8; 11] = b"xed_access\0"; -pub const X86_EPT_INTERFACE: &[u8; 8] = b"x86_ept\0"; -pub const X86_INSTRUCTION_QUERY_INTERFACE: &[u8; 22] = b"x86_instruction_query\0"; -pub const X86_MEMORY_QUERY_INTERFACE: &[u8; 17] = b"x86_memory_query\0"; -pub const X86_EXCEPTION_QUERY_INTERFACE: &[u8; 20] = b"x86_exception_query\0"; -pub const X86_ADDRESS_QUERY_INTERFACE: &[u8; 18] = b"x86_address_query\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"x86_instrumentation_subscribe\0"; -pub const X86_INSTRUMENTATION_SUBSCRIBE_V2_INTERFACE: &[u8; 33] = - b"x86_instrumentation_subscribe_v2\0"; -pub const VMX_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"vmx_instrumentation_subscribe\0"; -pub const SMM_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 30] = b"smm_instrumentation_subscribe\0"; -pub const XTENSA_TIE_LOOKUP_INTERFACE: &[u8; 18] = b"xtensa_tie_lookup\0"; -pub const XTENSA_TIE_EXPORT_STATE_INTERFACE: &[u8; 24] = b"xtensa_tie_export_state\0"; -pub const XTENSA_TIE_OUTPUT_QUEUE_INTERFACE: &[u8; 24] = b"xtensa_tie_output_queue\0"; -pub const XTENSA_TIE_INPUT_QUEUE_INTERFACE: &[u8; 23] = b"xtensa_tie_input_queue\0"; -pub const XTENSA_TIE_IMPORT_WIRE_INTERFACE: &[u8; 23] = b"xtensa_tie_import_wire\0"; -pub const XTENSA_LOOKUP_INTERFACE: &[u8; 14] = b"xtensa_lookup\0"; -pub const XTENSA_EXPORT_STATE_INTERFACE: &[u8; 20] = b"xtensa_export_state\0"; -pub const XTENSA_OUTPUT_QUEUE_INTERFACE: &[u8; 20] = b"xtensa_output_queue\0"; -pub const XTENSA_INPUT_QUEUE_INTERFACE: &[u8; 19] = b"xtensa_input_queue\0"; -pub const XTENSA_IMPORT_WIRE_INTERFACE: &[u8; 19] = b"xtensa_import_wire\0"; -pub const HAVE_NATIVE_INT128: u32 = 1; -pub const INT128_STR_MAX_SIZE: u32 = 35; -pub const DURATION_SCALE: u64 = 1000000000000; -pub const BIGTIME_ATTRTYPE: &[u8; 7] = b"[ii]|n\0"; -pub const BIGTIME_STR_MAX_SIZE: u32 = 72; -pub const LOCAL_TIME_ATTRTYPE: &[u8; 10] = b"[o[ii]|n]\0"; -pub const LOCAL_TIME_STR_MAX_SIZE: u32 = 72; -pub const CYCLE_INTERFACE: &[u8; 6] = b"cycle\0"; -pub const MIN_LOG_LEVEL: u32 = 1; -pub const MAX_LOG_LEVEL: u32 = 4; -pub const SIM_VERSION: u32 = 6240; -pub const SIM_VERSION_COMPAT: u32 = 5000; -pub const BUILD_ID_SIM_7: u32 = 7000; -pub const BUILD_ID_SIM_6: u32 = 6000; -pub const BUILD_ID_SIM_5: u32 = 5000; -pub const BUILD_ID_SIM_4_8: u32 = 4500; -pub const SIM_VERSION_7: u32 = 7000; -pub const SIM_VERSION_6: u32 = 6000; -pub const SIM_VERSION_5: u32 = 5000; -pub const SIM_VERSION_4_8: u32 = 4500; -pub const SIM_MAJOR_VERSION_DIFF: u32 = 1000; -pub const HOST_ALLOWS_UNALIGNED_ACCESSES: u32 = 1; -pub const MAX_FRAGS_FRAGS: u32 = 8; -pub const APIC_BUS_INTERFACE: &[u8; 9] = b"apic_bus\0"; -pub const ARINC429_BUS_INTERFACE: &[u8; 13] = b"arinc429_bus\0"; -pub const ARINC429_RECEIVER_INTERFACE: &[u8; 18] = b"arinc429_receiver\0"; -pub const COREINT_INTERFACE: &[u8; 8] = b"coreint\0"; -pub const DATAGRAM_LINK_INTERFACE: &[u8; 14] = b"datagram_link\0"; -pub const ETHER_CRC_LEN: u32 = 4; -pub const ETHER_MIN_LEN: u32 = 64; -pub const ETHER_MAX_LEN: u32 = 1518; -pub const ETH_ALEN: u32 = 6; -pub const ETHERTYPE_PUP: u32 = 512; -pub const ETHERTYPE_IP: u32 = 2048; -pub const ETHERTYPE_IPV6: u32 = 34525; -pub const ETHERTYPE_ARP: u32 = 2054; -pub const ETHERTYPE_REVARP: u32 = 32821; -pub const ETHERNET_COMMON_INTERFACE: &[u8; 16] = b"ethernet_common\0"; -pub const ETHERNET_CABLE_INTERFACE: &[u8; 15] = b"ethernet_cable\0"; -pub const ETHERNET_SNOOP_INTERFACE: &[u8; 15] = b"ethernet_snoop\0"; -pub const ETHERNET_VLAN_SNOOP_INTERFACE: &[u8; 20] = b"ethernet_vlan_snoop\0"; -pub const ETHERNET_PROBE_INTERFACE: &[u8; 15] = b"ethernet_probe\0"; -pub const FIREWIRE_BUS_INTERFACE: &[u8; 13] = b"firewire_bus\0"; -pub const FIREWIRE_DEVICE_INTERFACE: &[u8; 16] = b"firewire_device\0"; -pub const FREQUENCY_INTERFACE: &[u8; 10] = b"frequency\0"; -pub const FREQUENCY_LISTENER_INTERFACE: &[u8; 19] = b"frequency_listener\0"; -pub const SCALE_FACTOR_LISTENER_INTERFACE: &[u8; 22] = b"scale_factor_listener\0"; -pub const SIMPLE_DISPATCHER_INTERFACE: &[u8; 18] = b"simple_dispatcher\0"; -pub const GBIC_TRANSCEIVER_INTERFACE: &[u8; 17] = b"gbic_transceiver\0"; -pub const HPI_INTERFACE: &[u8; 4] = b"hpi\0"; -pub const I2C_BUS_INTERFACE: &[u8; 8] = b"i2c_bus\0"; -pub const I2C_DEVICE_INTERFACE: &[u8; 11] = b"i2c_device\0"; -pub const I2C_LINK_INTERFACE: &[u8; 9] = b"i2c_link\0"; -pub const I2C_SLAVE_INTERFACE: &[u8; 10] = b"i2c_slave\0"; -pub const I2C_MASTER_INTERFACE: &[u8; 11] = b"i2c_master\0"; -pub const I2C_BRIDGE_INTERFACE: &[u8; 11] = b"i2c_bridge\0"; -pub const I2C_SLAVE_V2_INTERFACE: &[u8; 13] = b"i2c_slave_v2\0"; -pub const I2C_MASTER_V2_INTERFACE: &[u8; 14] = b"i2c_master_v2\0"; -pub const I3C_MASTER_INTERFACE: &[u8; 11] = b"i3c_master\0"; -pub const I3C_SLAVE_INTERFACE: &[u8; 10] = b"i3c_slave\0"; -pub const I3C_DAA_SNOOP_INTERFACE: &[u8; 14] = b"i3c_daa_snoop\0"; -pub const IEEE_802_3_PHY_INTERFACE: &[u8; 15] = b"ieee_802_3_phy\0"; -pub const IEEE_802_3_PHY_V2_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v2\0"; -pub const IEEE_802_3_PHY_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_phy_v3\0"; -pub const IEEE_802_3_MAC_INTERFACE: &[u8; 15] = b"ieee_802_3_mac\0"; -pub const IEEE_802_3_MAC_V3_INTERFACE: &[u8; 18] = b"ieee_802_3_mac_v3\0"; -pub const INTERRUPT_ACK_INTERFACE: &[u8; 14] = b"interrupt_ack\0"; -pub const INTERRUPT_CPU_INTERFACE: &[u8; 14] = b"interrupt_cpu\0"; -pub const INTERRUPT_SUBSCRIBER_INTERFACE: &[u8; 21] = b"interrupt_subscriber\0"; -pub const SIMPLE_INTERRUPT_INTERFACE: &[u8; 17] = b"simple_interrupt\0"; -pub const INTERRUPT_QUERY_INTERFACE: &[u8; 16] = b"interrupt_query\0"; -pub const IO_MEMORY_INTERFACE: &[u8; 10] = b"io_memory\0"; -pub const MAP_DEMAP_INTERFACE: &[u8; 10] = b"map_demap\0"; -pub const MEMORY_SPACE_INTERFACE: &[u8; 13] = b"memory_space\0"; -pub const PORT_SPACE_INTERFACE: &[u8; 11] = b"port_space\0"; -pub const TRANSLATE_INTERFACE: &[u8; 10] = b"translate\0"; -pub const BRIDGE_INTERFACE: &[u8; 7] = b"bridge\0"; -pub const MICROWIRE_INTERFACE: &[u8; 10] = b"microwire\0"; -pub const MII_MANAGEMENT_INTERFACE: &[u8; 15] = b"mii_management\0"; -pub const MII_INTERFACE: &[u8; 4] = b"mii\0"; -pub const MDIO45_BUS_INTERFACE: &[u8; 11] = b"mdio45_bus\0"; -pub const MDIO45_PHY_INTERFACE: &[u8; 11] = b"mdio45_phy\0"; -pub const MS1553_LINK_INTERFACE: &[u8; 12] = b"ms1553_link\0"; -pub const MS1553_TERMINAL_INTERFACE: &[u8; 16] = b"ms1553_terminal\0"; -pub const NAND_FLASH_INTERFACE: &[u8; 11] = b"nand_flash\0"; -pub const PCI_DEVICE_INTERFACE: &[u8; 11] = b"pci_device\0"; -pub const PCI_BUS_INTERFACE: &[u8; 8] = b"pci_bus\0"; -pub const PCI_UPSTREAM_INTERFACE: &[u8; 13] = b"pci_upstream\0"; -pub const PCI_UPSTREAM_OPERATION_INTERFACE: &[u8; 23] = b"pci_upstream_operation\0"; -pub const PCI_DOWNSTREAM_INTERFACE: &[u8; 15] = b"pci_downstream\0"; -pub const PCI_BRIDGE_INTERFACE: &[u8; 11] = b"pci_bridge\0"; -pub const PCI_INTERRUPT_INTERFACE: &[u8; 14] = b"pci_interrupt\0"; -pub const DEVICE_CONF_FUNC: u32 = 255; -pub const DEVICE_PCIE_CONF_FUNC: u32 = 254; -pub const PCI_EXPRESS_INTERFACE: &[u8; 12] = b"pci_express\0"; -pub const PCI_EXPRESS_HOTPLUG_INTERFACE: &[u8; 20] = b"pci_express_hotplug\0"; -pub const PCI_MULTI_FUNCTION_DEVICE_INTERFACE: &[u8; 26] = b"pci_multi_function_device\0"; -pub const PCIE_DEVICE_INTERFACE: &[u8; 12] = b"pcie_device\0"; -pub const PCIE_MAP_INTERFACE: &[u8; 9] = b"pcie_map\0"; -pub const PCIE_PORT_CONTROL_INTERFACE: &[u8; 18] = b"pcie_port_control\0"; -pub const RAM_INTERFACE: &[u8; 4] = b"ram\0"; -pub const ROM_INTERFACE: &[u8; 4] = b"rom\0"; -pub const RAPIDIO_V3_INTERFACE: &[u8; 11] = b"rapidio_v3\0"; -pub const RAPIDIO_V4_INTERFACE: &[u8; 11] = b"rapidio_v4\0"; -pub const RAPIDIO_V5_INTERFACE: &[u8; 11] = b"rapidio_v5\0"; -pub const SATA_INTERFACE: &[u8; 5] = b"sata\0"; -pub const TTY_ABORT: u32 = 256; -pub const SERIAL_DEVICE_INTERFACE: &[u8; 14] = b"serial_device\0"; -pub const EXTENDED_SERIAL_INTERFACE: &[u8; 16] = b"extended_serial\0"; -pub const RS232_DEVICE_INTERFACE: &[u8; 13] = b"rs232_device\0"; -pub const RS232_CONSOLE_INTERFACE: &[u8; 14] = b"rs232_console\0"; -pub const TTY_NO_CHAR: u32 = 257; -pub const SERIAL_PERIPHERAL_INTERFACE_MASTER_INTERFACE: &[u8; 35] = - b"serial_peripheral_interface_master\0"; -pub const SERIAL_PERIPHERAL_INTERFACE_SLAVE_INTERFACE: &[u8; 34] = - b"serial_peripheral_interface_slave\0"; -pub const SIGNAL_INTERFACE: &[u8; 7] = b"signal\0"; -pub const MULTI_LEVEL_SIGNAL_INTERFACE: &[u8; 19] = b"multi_level_signal\0"; -pub const PULSE_INTERFACE: &[u8; 6] = b"pulse\0"; -pub const TELEMETRY_INTERFACE: &[u8; 10] = b"telemetry\0"; -pub const TRANSLATOR_INTERFACE: &[u8; 11] = b"translator\0"; -pub const TRANSACTION_TRANSLATOR_INTERFACE: &[u8; 23] = b"transaction_translator\0"; -pub const TRANSLATION_FLUSH_INTERFACE: &[u8; 18] = b"translation_flush\0"; -pub const USB_DEVICE_INTERFACE: &[u8; 11] = b"usb_device\0"; -pub const USB_INTERFACE: &[u8; 4] = b"usb\0"; -pub const VECTORED_INTERRUPT_INTERFACE: &[u8; 19] = b"vectored_interrupt\0"; -pub const VECTORED_INTERRUPT_SOURCE_INTERFACE: &[u8; 26] = b"vectored_interrupt_source\0"; -pub const X86_CSTATE_INTERFACE: &[u8; 11] = b"x86_cstate\0"; -pub const X86_PKG_CSTATE_INTERFACE: &[u8; 15] = b"x86_pkg_cstate\0"; -pub const X86_CSTATE_NOTIFICATION_INTERFACE: &[u8; 24] = b"x86_cstate_notification\0"; -pub const X86_CSTATE_CHANGE_NOTIFIER: &[u8; 18] = b"x86-cstate-change\0"; -pub const ABS_POINTER_INTERFACE: &[u8; 12] = b"abs_pointer\0"; -pub const ABS_POINTER_ACTIVATE_INTERFACE: &[u8; 21] = b"abs_pointer_activate\0"; -pub const INSTRUMENTATION_ORDER_INTERFACE: &[u8; 22] = b"instrumentation_order\0"; -pub const CALLBACK_INFO_INTERFACE: &[u8; 14] = b"callback_info\0"; -pub const BANK_BEFORE_READ_INTERFACE: &[u8; 17] = b"bank_before_read\0"; -pub const BANK_AFTER_READ_INTERFACE: &[u8; 16] = b"bank_after_read\0"; -pub const BANK_BEFORE_WRITE_INTERFACE: &[u8; 18] = b"bank_before_write\0"; -pub const BANK_AFTER_WRITE_INTERFACE: &[u8; 17] = b"bank_after_write\0"; -pub const BANK_INSTRUMENTATION_SUBSCRIBE_INTERFACE: &[u8; 31] = b"bank_instrumentation_subscribe\0"; -pub const BRANCH_RECORDER_HANDLER_INTERFACE: &[u8; 24] = b"branch_recorder_handler\0"; -pub const BREAKPOINT_INTERFACE: &[u8; 11] = b"breakpoint\0"; -pub const BREAKPOINT_CHANGE_INTERFACE: &[u8; 18] = b"breakpoint_change\0"; -pub const BREAKPOINT_QUERY_INTERFACE: &[u8; 17] = b"breakpoint_query\0"; -pub const BREAKPOINT_QUERY_V2_INTERFACE: &[u8; 20] = b"breakpoint_query_v2\0"; -pub const BREAKPOINT_TRIGGER_INTERFACE: &[u8; 19] = b"breakpoint_trigger\0"; -pub const VIRTUAL_DATA_BREAKPOINT_INTERFACE: &[u8; 24] = b"virtual_data_breakpoint\0"; -pub const VIRTUAL_INSTRUCTION_BREAKPOINT_INTERFACE: &[u8; 31] = b"virtual_instruction_breakpoint\0"; -pub const CDROM_MEDIA_INTERFACE: &[u8; 12] = b"cdrom_media\0"; -pub const CO_EXECUTE_INTERFACE: &[u8; 11] = b"co_execute\0"; -pub const SYNCHRONOUS_MODE_INTERFACE: &[u8; 17] = b"synchronous_mode\0"; -pub const COMPONENT_INTERFACE: &[u8; 10] = b"component\0"; -pub const CONNECTOR_INTERFACE: &[u8; 10] = b"connector\0"; -pub const COMPONENT_CONNECTOR_INTERFACE: &[u8; 20] = b"component_connector\0"; -pub const DISK_COMPONENT_INTERFACE: &[u8; 15] = b"disk_component\0"; -pub const CONCURRENCY_MODE_INTERFACE: &[u8; 17] = b"concurrency_mode\0"; -pub const CONCURRENCY_GROUP_INTERFACE: &[u8; 18] = b"concurrency_group\0"; -pub const CPU_GROUP_INTERFACE: &[u8; 10] = b"cpu_group\0"; -pub const CYCLE_EVENT_INTERFACE: &[u8; 12] = b"cycle_event\0"; -pub const CYCLE_CONTROL_INTERFACE: &[u8; 14] = b"cycle_control\0"; -pub const DATA_PROFILER_INTERFACE: &[u8; 14] = b"data_profiler\0"; -pub const DECODER_INTERFACE: &[u8; 8] = b"decoder\0"; -pub const UD_IT_SEQUENTIAL: u32 = 1; -pub const UD_IT_CONTROL_FLOW: u32 = 2; -pub const CONTEXT_HANDLER_INTERFACE: &[u8; 16] = b"context_handler\0"; -pub const TAG_GRANULARITY: u32 = 4; -pub const TAG_BYTE_PACKING: u32 = 3; -pub const TELEMETRY_MANAGER_INTERFACE: &[u8; 18] = b"telemetry_manager\0"; -pub const CMD_LINE_FRONTEND_INTERFACE: &[u8; 18] = b"cmd_line_frontend\0"; -pub const CMD_LINE_SELECTION_INTERFACE: &[u8; 19] = b"cmd_line_selection\0"; -pub const TERMINAL_SERVER_INTERFACE: &[u8; 16] = b"terminal_server\0"; -pub const TERMINAL_CLIENT_INTERFACE: &[u8; 16] = b"terminal_client\0"; -pub const FRONTEND_SERVER_INTERFACE: &[u8; 16] = b"frontend_server\0"; -pub const TCF_CHANNEL_INTERFACE: &[u8; 12] = b"tcf_channel\0"; -pub const DESCRIBE_REGISTERS_INTERFACE: &[u8; 19] = b"describe_registers\0"; -pub const DEVICE_IDENTIFICATION_INTERFACE: &[u8; 22] = b"device_identification\0"; -pub const DIRECT_MEMORY_INTERFACE: &[u8; 14] = b"direct_memory\0"; -pub const DIRECT_MEMORY_LOOKUP_INTERFACE: &[u8; 21] = b"direct_memory_lookup\0"; -pub const DIRECT_MEMORY_LOOKUP_V2_INTERFACE: &[u8; 24] = b"direct_memory_lookup_v2\0"; -pub const DIRECT_MEMORY_UPDATE_INTERFACE: &[u8; 21] = b"direct_memory_update\0"; -pub const DIRECT_MEMORY_FLUSH_INTERFACE: &[u8; 20] = b"direct_memory_flush\0"; -pub const DIRECT_MEMORY_TAGS_INTERFACE: &[u8; 19] = b"direct_memory_tags\0"; -pub const EVENT_DELTA_INTERFACE: &[u8; 12] = b"event_delta\0"; -pub const EVENT_HANDLER_INTERFACE: &[u8; 14] = b"event_handler\0"; -pub const STEP_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 27] = b"step_event_instrumentation\0"; -pub const CYCLE_EVENT_INSTRUMENTATION_INTERFACE: &[u8; 28] = b"cycle_event_instrumentation\0"; -pub const EXCEPTION_INTERFACE: &[u8; 10] = b"exception\0"; -pub const EXEC_TRACE_INTERFACE: &[u8; 11] = b"exec_trace\0"; -pub const EXECUTE_INTERFACE: &[u8; 8] = b"execute\0"; -pub const CELL_INSPECTION_INTERFACE: &[u8; 16] = b"cell_inspection\0"; -pub const EXECUTE_CONTROL_INTERFACE: &[u8; 16] = b"execute_control\0"; -pub const EXTERNAL_CONNECTION_CTL_INTERFACE: &[u8; 24] = b"external_connection_ctl\0"; -pub const EXTERNAL_CONNECTION_EVENTS_INTERFACE: &[u8; 27] = b"external_connection_events\0"; -pub const TCP_CONNECTION_INFO_INTERFACE: &[u8; 20] = b"tcp_connection_info\0"; -pub const FREERUN_INTERFACE: &[u8; 8] = b"freerun\0"; -pub const ATTRIBUTE_MONITOR_INTERFACE: &[u8; 18] = b"attribute_monitor\0"; -pub const VGA_UPDATE_INTERFACE: &[u8; 11] = b"vga_update\0"; -pub const GFX_CON_INTERFACE: &[u8; 8] = b"gfx_con\0"; -pub const HAP_LISTEN_INTERFACE: &[u8; 11] = b"hap_listen\0"; -pub const IMAGE_INTERFACE: &[u8; 6] = b"image\0"; -pub const LINEAR_IMAGE_INTERFACE: &[u8; 13] = b"linear_image\0"; -pub const IMAGE_SNOOP_INTERFACE: &[u8; 12] = b"image_snoop\0"; -pub const POOL_PROTECT_INTERFACE: &[u8; 13] = b"pool_protect\0"; -pub const INSTRUCTION_FETCH_INTERFACE: &[u8; 18] = b"instruction_fetch\0"; -pub const INT_REGISTER_INTERFACE: &[u8; 13] = b"int_register\0"; -pub const JIT_CONTROL_INTERFACE: &[u8; 12] = b"jit_control\0"; -pub const KEYBOARD_INTERFACE: &[u8; 9] = b"keyboard\0"; -pub const KEYBOARD_CONSOLE_INTERFACE: &[u8; 17] = b"keyboard_console\0"; -pub const MOUSE_INTERFACE: &[u8; 6] = b"mouse\0"; -pub const DUMMY_MEMORY_PAGE_INTERFACE: &[u8; 18] = b"dummy_memory_page\0"; -pub const MEMORY_PROFILER_INTERFACE: &[u8; 16] = b"memory_profiler\0"; -pub const MMC_INTERFACE: &[u8; 4] = b"mmc\0"; -pub const PACKET_INTERFACE: &[u8; 7] = b"packet\0"; -pub const PROCESSOR_INFO_INTERFACE: &[u8; 15] = b"processor_info\0"; -pub const PROCESSOR_INFO_V2_INTERFACE: &[u8; 18] = b"processor_info_v2\0"; -pub const PROCESSOR_ENDIAN_INTERFACE: &[u8; 17] = b"processor_endian\0"; -pub const PROCESSOR_CLI_INTERFACE: &[u8; 14] = b"processor_cli\0"; -pub const OPCODE_INFO_INTERFACE: &[u8; 12] = b"opcode_info\0"; -pub const PROCESSOR_GUI_INTERFACE: &[u8; 14] = b"processor_gui\0"; -pub const RAM_ACCESS_SUBSCRIBE_INTERFACE: &[u8; 21] = b"ram_access_subscribe\0"; -pub const REGISTER_VIEW_READ_ONLY_INTERFACE: &[u8; 24] = b"register_view_read_only\0"; -pub const REGISTER_VIEW_INTERFACE: &[u8; 14] = b"register_view\0"; -pub const SAVE_STATE_INTERFACE: &[u8; 11] = b"save_state\0"; -pub const MOUSE_LEFT_DOWN: u32 = 1; -pub const MOUSE_RIGHT_DOWN: u32 = 2; -pub const MOUSE_MIDDLE_DOWN: u32 = 4; -pub const MOUSE_4_DOWN: u32 = 8; -pub const MOUSE_5_DOWN: u32 = 16; -pub const KBD_CAPSLOCK_ON: u32 = 0; -pub const KBD_CAPSLOCK_OFF: u32 = 1; -pub const KBD_NUMLOCK_ON: u32 = 2; -pub const KBD_NUMLOCK_OFF: u32 = 3; -pub const KBD_SCROLLLOCK_ON: u32 = 4; -pub const KBD_SCROLLLOCK_OFF: u32 = 5; -pub const SIMULATOR_CACHE_INTERFACE: &[u8; 16] = b"simulator_cache\0"; -pub const UINT64_STATE_INTERFACE: &[u8; 13] = b"uint64_state\0"; -pub const STEP_INTERFACE: &[u8; 5] = b"step\0"; -pub const STEP_CYCLE_RATIO_INTERFACE: &[u8; 17] = b"step_cycle_ratio\0"; -pub const STALL_INTERFACE: &[u8; 6] = b"stall\0"; -pub const STEP_INFO_INTERFACE: &[u8; 10] = b"step_info\0"; -pub const TEMPORAL_STATE_INTERFACE: &[u8; 15] = b"temporal_state\0"; -pub const TIMING_MODEL_INTERFACE: &[u8; 13] = b"timing_model\0"; -pub const SNOOP_MEMORY_INTERFACE: &[u8; 13] = b"snoop_memory\0"; -pub const TRANSACTION_INTERFACE: &[u8; 12] = b"transaction\0"; -pub const VGA_TEXT_INTERFACE: &[u8; 9] = b"vga_text\0"; -pub const VGA_TEXT_INFO_INTERFACE: &[u8; 14] = b"vga_text_info\0"; -pub const VGA_TEXT_UPDATE_INTERFACE: &[u8; 16] = b"vga_text_update\0"; -pub const GBP_MAGIC: u32 = 3772834016; -pub const GBP_FMT_VGA_4: u32 = 1; -pub const GBP_FMT_V3_8: u32 = 8; -pub const GBP_FMT_V3_16: u32 = 16; -pub const GBP_FMT_V3_24: u32 = 24; -pub const GBP_FMT_V3_32: u32 = 32; -pub const GBP_COMMENT_OFFS: u32 = 0; -pub const GBP_MAGIC_OFFS: u32 = 32; -pub const GBP_FORMAT_OFFS: u32 = 36; -pub const GBP_BYTES_OFFS: u32 = 40; -pub const GBP_MINX_OFFS: u32 = 44; -pub const GBP_MINY_OFFS: u32 = 48; -pub const GBP_MAXX_OFFS: u32 = 52; -pub const GBP_MAXY_OFFS: u32 = 56; -pub const GBP_HEADER_SIZE: u32 = 60; -pub const VIDEO_INTERFACE: &[u8; 6] = b"video\0"; -pub const ADDRESS_PROFILER_INTERFACE: &[u8; 17] = b"address_profiler\0"; -pub const BRANCH_ARC_INTERFACE: &[u8; 11] = b"branch_arc\0"; -pub const BREAKPOINT_PROP_ENABLED: &[u8; 8] = b"enabled\0"; -pub const BREAKPOINT_PROP_TEMPORARY: &[u8; 10] = b"temporary\0"; -pub const BREAKPOINT_PROP_IGNORE_COUNT: &[u8; 13] = b"ignore count\0"; -pub const BREAKPOINT_PROP_HIT_COUNT: &[u8; 10] = b"hit count\0"; -pub const BREAKPOINT_PROP_DESCRIPTION: &[u8; 12] = b"description\0"; -pub const BREAKPOINT_REGISTRATION_INTERFACE: &[u8; 24] = b"breakpoint_registration\0"; -pub const BREAKPOINT_TYPE_INTERFACE: &[u8; 16] = b"breakpoint_type\0"; -pub const BREAKPOINT_TYPE_PROVIDER_INTERFACE: &[u8; 25] = b"breakpoint_type_provider\0"; -pub const BREAKPOINT_MANAGER_INTERFACE: &[u8; 19] = b"breakpoint_manager\0"; -pub const CHECKPOINT_INTERFACE: &[u8; 11] = b"checkpoint\0"; -pub const SERIAL_CONSOLE_FRONTEND_INTERFACE: &[u8; 24] = b"serial_console_frontend\0"; -pub const CON_INPUT_INTERFACE: &[u8; 10] = b"con_input\0"; -pub const CON_INPUT_CODE_INTERFACE: &[u8; 15] = b"con_input_code\0"; -pub const BREAK_STRINGS_INTERFACE: &[u8; 14] = b"break_strings\0"; -pub const BREAK_STRINGS_V2_INTERFACE: &[u8; 17] = b"break_strings_v2\0"; -pub const GFX_BREAK_INTERFACE: &[u8; 10] = b"gfx_break\0"; -pub const TELNET_CONNECTION_INTERFACE: &[u8; 18] = b"telnet_connection\0"; -pub const TELNET_CONNECTION_V2_INTERFACE: &[u8; 21] = b"telnet_connection_v2\0"; -pub const VNC_SERVER_INTERFACE: &[u8; 11] = b"vnc_server\0"; -pub const VNC_SERVER_V2_INTERFACE: &[u8; 14] = b"vnc_server_v2\0"; -pub const HOST_SERIAL_INTERFACE: &[u8; 12] = b"host_serial\0"; -pub const SCREENSHOT_INTERFACE: &[u8; 11] = b"screenshot\0"; -pub const TEXT_CONSOLE_FRONTEND_INTERFACE: &[u8; 22] = b"text_console_frontend\0"; -pub const TEXT_CONSOLE_BACKEND_INTERFACE: &[u8; 21] = b"text_console_backend\0"; -pub const GFX_CONSOLE_FRONTEND_INTERFACE: &[u8; 21] = b"gfx_console_frontend\0"; -pub const GFX_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gfx_console_backend\0"; -pub const WINSOME_CONSOLE_INTERFACE: &[u8; 16] = b"winsome_console\0"; -pub const GUI_CONSOLE_BACKEND_INTERFACE: &[u8; 20] = b"gui_console_backend\0"; -pub const DEBUG_NOTIFICATION_INTERFACE: &[u8; 19] = b"debug_notification\0"; -pub const DEBUG_SETUP_INTERFACE: &[u8; 12] = b"debug_setup\0"; -pub const DEBUG_QUERY_INTERFACE: &[u8; 12] = b"debug_query\0"; -pub const DEBUG_STEP_INTERFACE: &[u8; 11] = b"debug_step\0"; -pub const DEBUG_SYMBOL_INTERFACE: &[u8; 13] = b"debug_symbol\0"; -pub const DEBUG_SYMBOL_FILE_INTERFACE: &[u8; 18] = b"debug_symbol_file\0"; -pub const DISASSEMBLE_INTERFACE: &[u8; 12] = b"disassemble\0"; -pub const INSTRUMENTATION_FILTER_SLAVE_INTERFACE: &[u8; 29] = b"instrumentation_filter_slave\0"; -pub const INSTRUMENTATION_FILTER_STATUS_INTERFACE: &[u8; 30] = b"instrumentation_filter_status\0"; -pub const INSTRUMENTATION_FILTER_MASTER_INTERFACE: &[u8; 30] = b"instrumentation_filter_master\0"; -pub const INSTRUMENTATION_TOOL_INTERFACE: &[u8; 21] = b"instrumentation_tool\0"; -pub const INSTRUMENTATION_CONNECTION_INTERFACE: &[u8; 27] = b"instrumentation_connection\0"; -pub const OSA_COMPONENT_INTERFACE: &[u8; 14] = b"osa_component\0"; -pub const OSA_CONTROL_INTERFACE: &[u8; 12] = b"osa_control\0"; -pub const OSA_CONTROL_V2_INTERFACE: &[u8; 15] = b"osa_control_v2\0"; -pub const OSA_NODE_TREE_QUERY_INTERFACE: &[u8; 20] = b"osa_node_tree_query\0"; -pub const OSA_NODE_TREE_NOTIFICATION_INTERFACE: &[u8; 27] = b"osa_node_tree_notification\0"; -pub const OSA_NODE_PATH_INTERFACE: &[u8; 14] = b"osa_node_path\0"; -pub const OSA_MACHINE_NOTIFICATION_INTERFACE: &[u8; 25] = b"osa_machine_notification\0"; -pub const OSA_MACHINE_QUERY_INTERFACE: &[u8; 18] = b"osa_machine_query\0"; -pub const OSA_MAPPER_ADMIN_INTERFACE: &[u8; 17] = b"osa_mapper_admin\0"; -pub const OSA_MAPPER_CONTROL_INTERFACE: &[u8; 19] = b"osa_mapper_control\0"; -pub const OSA_MAPPER_QUERY_INTERFACE: &[u8; 17] = b"osa_mapper_query\0"; -pub const OSA_NODE_TREE_ADMIN_INTERFACE: &[u8; 20] = b"osa_node_tree_admin\0"; -pub const OSA_PARAMETERS_INTERFACE: &[u8; 15] = b"osa_parameters\0"; -pub const OSA_TRACKER_COMPONENT_INTERFACE: &[u8; 22] = b"osa_tracker_component\0"; -pub const OSA_TRACKER_STATE_ADMIN_INTERFACE: &[u8; 24] = b"osa_tracker_state_admin\0"; -pub const OSA_TRACKER_STATE_NOTIFICATION_INTERFACE: &[u8; 31] = b"osa_tracker_state_notification\0"; -pub const OSA_TRACKER_STATE_QUERY_INTERFACE: &[u8; 24] = b"osa_tracker_state_query\0"; -pub const OSA_TRACKER_CONTROL_INTERFACE: &[u8; 20] = b"osa_tracker_control\0"; -pub const OSA_MICRO_CHECKPOINT_INTERFACE: &[u8; 21] = b"osa_micro_checkpoint\0"; -pub const PREFERENCE_INTERFACE: &[u8; 11] = b"preference\0"; -pub const PROBE_INTERFACE: &[u8; 6] = b"probe\0"; -pub const PROBE_INDEX_INTERFACE: &[u8; 12] = b"probe_index\0"; -pub const PROBE_SUBSCRIBE_INTERFACE: &[u8; 16] = b"probe_subscribe\0"; -pub const PROBE_CACHE_INTERFACE: &[u8; 12] = b"probe_cache\0"; -pub const PROBE_SAMPLER_CACHE_INTERFACE: &[u8; 20] = b"probe_sampler_cache\0"; -pub const PROBE_NOTIFICATION_CONTEXT_INTERFACE: &[u8; 27] = b"probe_notification_context\0"; -pub const RECORDER_INTERFACE: &[u8; 9] = b"recorder\0"; -pub const RECORDER_V2_INTERFACE: &[u8; 12] = b"recorder_v2\0"; -pub const RECORDED_INTERFACE: &[u8; 9] = b"recorded\0"; -pub const REGISTER_BREAKPOINT_INTERFACE: &[u8; 20] = b"register_breakpoint\0"; -pub const SCALAR_TIME_INTERFACE: &[u8; 12] = b"scalar_time\0"; -pub const TABLE_INTERFACE: &[u8; 6] = b"table\0"; -pub const _SYS_SOCKET_H: u32 = 1; -pub const __iovec_defined: u32 = 1; -pub const PF_UNSPEC: u32 = 0; -pub const PF_LOCAL: u32 = 1; -pub const PF_UNIX: u32 = 1; -pub const PF_FILE: u32 = 1; -pub const PF_INET: u32 = 2; -pub const PF_AX25: u32 = 3; -pub const PF_IPX: u32 = 4; -pub const PF_APPLETALK: u32 = 5; -pub const PF_NETROM: u32 = 6; -pub const PF_BRIDGE: u32 = 7; -pub const PF_ATMPVC: u32 = 8; -pub const PF_X25: u32 = 9; -pub const PF_INET6: u32 = 10; -pub const PF_ROSE: u32 = 11; -pub const PF_DECnet: u32 = 12; -pub const PF_NETBEUI: u32 = 13; -pub const PF_SECURITY: u32 = 14; -pub const PF_KEY: u32 = 15; -pub const PF_NETLINK: u32 = 16; -pub const PF_ROUTE: u32 = 16; -pub const PF_PACKET: u32 = 17; -pub const PF_ASH: u32 = 18; -pub const PF_ECONET: u32 = 19; -pub const PF_ATMSVC: u32 = 20; -pub const PF_RDS: u32 = 21; -pub const PF_SNA: u32 = 22; -pub const PF_IRDA: u32 = 23; -pub const PF_PPPOX: u32 = 24; -pub const PF_WANPIPE: u32 = 25; -pub const PF_LLC: u32 = 26; -pub const PF_IB: u32 = 27; -pub const PF_MPLS: u32 = 28; -pub const PF_CAN: u32 = 29; -pub const PF_TIPC: u32 = 30; -pub const PF_BLUETOOTH: u32 = 31; -pub const PF_IUCV: u32 = 32; -pub const PF_RXRPC: u32 = 33; -pub const PF_ISDN: u32 = 34; -pub const PF_PHONET: u32 = 35; -pub const PF_IEEE802154: u32 = 36; -pub const PF_CAIF: u32 = 37; -pub const PF_ALG: u32 = 38; -pub const PF_NFC: u32 = 39; -pub const PF_VSOCK: u32 = 40; -pub const PF_KCM: u32 = 41; -pub const PF_QIPCRTR: u32 = 42; -pub const PF_SMC: u32 = 43; -pub const PF_XDP: u32 = 44; -pub const PF_MCTP: u32 = 45; -pub const PF_MAX: u32 = 46; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MCTP: u32 = 45; -pub const AF_MAX: u32 = 46; -pub const SOL_RAW: u32 = 255; -pub const SOL_DECNET: u32 = 261; -pub const SOL_X25: u32 = 262; -pub const SOL_PACKET: u32 = 263; -pub const SOL_ATM: u32 = 264; -pub const SOL_AAL: u32 = 265; -pub const SOL_IRDA: u32 = 266; -pub const SOL_NETBEUI: u32 = 267; -pub const SOL_LLC: u32 = 268; -pub const SOL_DCCP: u32 = 269; -pub const SOL_NETLINK: u32 = 270; -pub const SOL_TIPC: u32 = 271; -pub const SOL_RXRPC: u32 = 272; -pub const SOL_PPPOL2TP: u32 = 273; -pub const SOL_BLUETOOTH: u32 = 274; -pub const SOL_PNPIPE: u32 = 275; -pub const SOL_RDS: u32 = 276; -pub const SOL_IUCV: u32 = 277; -pub const SOL_CAIF: u32 = 278; -pub const SOL_ALG: u32 = 279; -pub const SOL_NFC: u32 = 280; -pub const SOL_KCM: u32 = 281; -pub const SOL_TLS: u32 = 282; -pub const SOL_XDP: u32 = 283; -pub const SOL_MPTCP: u32 = 284; -pub const SOL_MCTP: u32 = 285; -pub const SOL_SMC: u32 = 286; -pub const SOMAXCONN: u32 = 4096; -pub const _BITS_SOCKADDR_H: u32 = 1; -pub const _SS_SIZE: u32 = 128; -pub const __BITS_PER_LONG: u32 = 64; -pub const FIOSETOWN: u32 = 35073; -pub const SIOCSPGRP: u32 = 35074; -pub const FIOGETOWN: u32 = 35075; -pub const SIOCGPGRP: u32 = 35076; -pub const SIOCATMARK: u32 = 35077; -pub const SIOCGSTAMP_OLD: u32 = 35078; -pub const SIOCGSTAMPNS_OLD: u32 = 35079; -pub const SOL_SOCKET: u32 = 1; -pub const SO_DEBUG: u32 = 1; -pub const SO_REUSEADDR: u32 = 2; -pub const SO_TYPE: u32 = 3; -pub const SO_ERROR: u32 = 4; -pub const SO_DONTROUTE: u32 = 5; -pub const SO_BROADCAST: u32 = 6; -pub const SO_SNDBUF: u32 = 7; -pub const SO_RCVBUF: u32 = 8; -pub const SO_SNDBUFFORCE: u32 = 32; -pub const SO_RCVBUFFORCE: u32 = 33; -pub const SO_KEEPALIVE: u32 = 9; -pub const SO_OOBINLINE: u32 = 10; -pub const SO_NO_CHECK: u32 = 11; -pub const SO_PRIORITY: u32 = 12; -pub const SO_LINGER: u32 = 13; -pub const SO_BSDCOMPAT: u32 = 14; -pub const SO_REUSEPORT: u32 = 15; -pub const SO_PASSCRED: u32 = 16; -pub const SO_PEERCRED: u32 = 17; -pub const SO_RCVLOWAT: u32 = 18; -pub const SO_SNDLOWAT: u32 = 19; -pub const SO_RCVTIMEO_OLD: u32 = 20; -pub const SO_SNDTIMEO_OLD: u32 = 21; -pub const SO_SECURITY_AUTHENTICATION: u32 = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; -pub const SO_BINDTODEVICE: u32 = 25; -pub const SO_ATTACH_FILTER: u32 = 26; -pub const SO_DETACH_FILTER: u32 = 27; -pub const SO_GET_FILTER: u32 = 26; -pub const SO_PEERNAME: u32 = 28; -pub const SO_ACCEPTCONN: u32 = 30; -pub const SO_PEERSEC: u32 = 31; -pub const SO_PASSSEC: u32 = 34; -pub const SO_MARK: u32 = 36; -pub const SO_PROTOCOL: u32 = 38; -pub const SO_DOMAIN: u32 = 39; -pub const SO_RXQ_OVFL: u32 = 40; -pub const SO_WIFI_STATUS: u32 = 41; -pub const SCM_WIFI_STATUS: u32 = 41; -pub const SO_PEEK_OFF: u32 = 42; -pub const SO_NOFCS: u32 = 43; -pub const SO_LOCK_FILTER: u32 = 44; -pub const SO_SELECT_ERR_QUEUE: u32 = 45; -pub const SO_BUSY_POLL: u32 = 46; -pub const SO_MAX_PACING_RATE: u32 = 47; -pub const SO_BPF_EXTENSIONS: u32 = 48; -pub const SO_INCOMING_CPU: u32 = 49; -pub const SO_ATTACH_BPF: u32 = 50; -pub const SO_DETACH_BPF: u32 = 27; -pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; -pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; -pub const SO_CNX_ADVICE: u32 = 53; -pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; -pub const SO_MEMINFO: u32 = 55; -pub const SO_INCOMING_NAPI_ID: u32 = 56; -pub const SO_COOKIE: u32 = 57; -pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; -pub const SO_PEERGROUPS: u32 = 59; -pub const SO_ZEROCOPY: u32 = 60; -pub const SO_TXTIME: u32 = 61; -pub const SCM_TXTIME: u32 = 61; -pub const SO_BINDTOIFINDEX: u32 = 62; -pub const SO_TIMESTAMP_OLD: u32 = 29; -pub const SO_TIMESTAMPNS_OLD: u32 = 35; -pub const SO_TIMESTAMPING_OLD: u32 = 37; -pub const SO_TIMESTAMP_NEW: u32 = 63; -pub const SO_TIMESTAMPNS_NEW: u32 = 64; -pub const SO_TIMESTAMPING_NEW: u32 = 65; -pub const SO_RCVTIMEO_NEW: u32 = 66; -pub const SO_SNDTIMEO_NEW: u32 = 67; -pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; -pub const SO_PREFER_BUSY_POLL: u32 = 69; -pub const SO_BUSY_POLL_BUDGET: u32 = 70; -pub const SO_NETNS_COOKIE: u32 = 71; -pub const SO_BUF_LOCK: u32 = 72; -pub const SO_RESERVE_MEM: u32 = 73; -pub const SO_TXREHASH: u32 = 74; -pub const SO_RCVMARK: u32 = 75; -pub const SO_TIMESTAMP: u32 = 29; -pub const SO_TIMESTAMPNS: u32 = 35; -pub const SO_TIMESTAMPING: u32 = 37; -pub const SO_RCVTIMEO: u32 = 20; -pub const SO_SNDTIMEO: u32 = 21; -pub const SCM_TIMESTAMP: u32 = 29; -pub const SCM_TIMESTAMPNS: u32 = 35; -pub const SCM_TIMESTAMPING: u32 = 37; -pub const __osockaddr_defined: u32 = 1; -pub const _NETINET_TCP_H: u32 = 1; -pub const TCP_NODELAY: u32 = 1; -pub const TCP_MAXSEG: u32 = 2; -pub const TCP_CORK: u32 = 3; -pub const TCP_KEEPIDLE: u32 = 4; -pub const TCP_KEEPINTVL: u32 = 5; -pub const TCP_KEEPCNT: u32 = 6; -pub const TCP_SYNCNT: u32 = 7; -pub const TCP_LINGER2: u32 = 8; -pub const TCP_DEFER_ACCEPT: u32 = 9; -pub const TCP_WINDOW_CLAMP: u32 = 10; -pub const TCP_INFO: u32 = 11; -pub const TCP_QUICKACK: u32 = 12; -pub const TCP_CONGESTION: u32 = 13; -pub const TCP_MD5SIG: u32 = 14; -pub const TCP_COOKIE_TRANSACTIONS: u32 = 15; -pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; -pub const TCP_THIN_DUPACK: u32 = 17; -pub const TCP_USER_TIMEOUT: u32 = 18; -pub const TCP_REPAIR: u32 = 19; -pub const TCP_REPAIR_QUEUE: u32 = 20; -pub const TCP_QUEUE_SEQ: u32 = 21; -pub const TCP_REPAIR_OPTIONS: u32 = 22; -pub const TCP_FASTOPEN: u32 = 23; -pub const TCP_TIMESTAMP: u32 = 24; -pub const TCP_NOTSENT_LOWAT: u32 = 25; -pub const TCP_CC_INFO: u32 = 26; -pub const TCP_SAVE_SYN: u32 = 27; -pub const TCP_SAVED_SYN: u32 = 28; -pub const TCP_REPAIR_WINDOW: u32 = 29; -pub const TCP_FASTOPEN_CONNECT: u32 = 30; -pub const TCP_ULP: u32 = 31; -pub const TCP_MD5SIG_EXT: u32 = 32; -pub const TCP_FASTOPEN_KEY: u32 = 33; -pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; -pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; -pub const TCP_INQ: u32 = 36; -pub const TCP_CM_INQ: u32 = 36; -pub const TCP_TX_DELAY: u32 = 37; -pub const TCP_REPAIR_ON: u32 = 1; -pub const TCP_REPAIR_OFF: u32 = 0; -pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; -pub const TH_FIN: u32 = 1; -pub const TH_SYN: u32 = 2; -pub const TH_RST: u32 = 4; -pub const TH_PUSH: u32 = 8; -pub const TH_ACK: u32 = 16; -pub const TH_URG: u32 = 32; -pub const TCPOPT_EOL: u32 = 0; -pub const TCPOPT_NOP: u32 = 1; -pub const TCPOPT_MAXSEG: u32 = 2; -pub const TCPOLEN_MAXSEG: u32 = 4; -pub const TCPOPT_WINDOW: u32 = 3; -pub const TCPOLEN_WINDOW: u32 = 3; -pub const TCPOPT_SACK_PERMITTED: u32 = 4; -pub const TCPOLEN_SACK_PERMITTED: u32 = 2; -pub const TCPOPT_SACK: u32 = 5; -pub const TCPOPT_TIMESTAMP: u32 = 8; -pub const TCPOLEN_TIMESTAMP: u32 = 10; -pub const TCPOLEN_TSTAMP_APPA: u32 = 12; -pub const TCPOPT_TSTAMP_HDR: u32 = 16844810; -pub const TCP_MSS: u32 = 512; -pub const TCP_MAXWIN: u32 = 65535; -pub const TCP_MAX_WINSHIFT: u32 = 14; -pub const SOL_TCP: u32 = 6; -pub const TCPI_OPT_TIMESTAMPS: u32 = 1; -pub const TCPI_OPT_SACK: u32 = 2; -pub const TCPI_OPT_WSCALE: u32 = 4; -pub const TCPI_OPT_ECN: u32 = 8; -pub const TCPI_OPT_ECN_SEEN: u32 = 16; -pub const TCPI_OPT_SYN_DATA: u32 = 32; -pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; -pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; -pub const TCP_COOKIE_MIN: u32 = 8; -pub const TCP_COOKIE_MAX: u32 = 16; -pub const TCP_COOKIE_PAIR_SIZE: u32 = 32; -pub const TCP_COOKIE_IN_ALWAYS: u32 = 1; -pub const TCP_COOKIE_OUT_NEVER: u32 = 2; -pub const TCP_S_DATA_IN: u32 = 4; -pub const TCP_S_DATA_OUT: u32 = 8; -pub const TCP_MSS_DEFAULT: u32 = 536; -pub const TCP_MSS_DESIRED: u32 = 1220; -pub const _NET_IF_H: u32 = 1; -pub const IF_NAMESIZE: u32 = 16; -pub const IFHWADDRLEN: u32 = 6; -pub const IFNAMSIZ: u32 = 16; -pub const __NETINET_IF_ETHER_H: u32 = 1; -pub const ETH_TLEN: u32 = 2; -pub const ETH_HLEN: u32 = 14; -pub const ETH_ZLEN: u32 = 60; -pub const ETH_DATA_LEN: u32 = 1500; -pub const ETH_FRAME_LEN: u32 = 1514; -pub const ETH_FCS_LEN: u32 = 4; -pub const ETH_MIN_MTU: u32 = 68; -pub const ETH_MAX_MTU: u32 = 65535; -pub const ETH_P_LOOP: u32 = 96; -pub const ETH_P_PUP: u32 = 512; -pub const ETH_P_PUPAT: u32 = 513; -pub const ETH_P_TSN: u32 = 8944; -pub const ETH_P_ERSPAN2: u32 = 8939; -pub const ETH_P_IP: u32 = 2048; -pub const ETH_P_X25: u32 = 2053; -pub const ETH_P_ARP: u32 = 2054; -pub const ETH_P_BPQ: u32 = 2303; -pub const ETH_P_IEEEPUP: u32 = 2560; -pub const ETH_P_IEEEPUPAT: u32 = 2561; -pub const ETH_P_BATMAN: u32 = 17157; -pub const ETH_P_DEC: u32 = 24576; -pub const ETH_P_DNA_DL: u32 = 24577; -pub const ETH_P_DNA_RC: u32 = 24578; -pub const ETH_P_DNA_RT: u32 = 24579; -pub const ETH_P_LAT: u32 = 24580; -pub const ETH_P_DIAG: u32 = 24581; -pub const ETH_P_CUST: u32 = 24582; -pub const ETH_P_SCA: u32 = 24583; -pub const ETH_P_TEB: u32 = 25944; -pub const ETH_P_RARP: u32 = 32821; -pub const ETH_P_ATALK: u32 = 32923; -pub const ETH_P_AARP: u32 = 33011; -pub const ETH_P_8021Q: u32 = 33024; -pub const ETH_P_ERSPAN: u32 = 35006; -pub const ETH_P_IPX: u32 = 33079; -pub const ETH_P_IPV6: u32 = 34525; -pub const ETH_P_PAUSE: u32 = 34824; -pub const ETH_P_SLOW: u32 = 34825; -pub const ETH_P_WCCP: u32 = 34878; -pub const ETH_P_MPLS_UC: u32 = 34887; -pub const ETH_P_MPLS_MC: u32 = 34888; -pub const ETH_P_ATMMPOA: u32 = 34892; -pub const ETH_P_PPP_DISC: u32 = 34915; -pub const ETH_P_PPP_SES: u32 = 34916; -pub const ETH_P_LINK_CTL: u32 = 34924; -pub const ETH_P_ATMFATE: u32 = 34948; -pub const ETH_P_PAE: u32 = 34958; -pub const ETH_P_PROFINET: u32 = 34962; -pub const ETH_P_REALTEK: u32 = 34969; -pub const ETH_P_AOE: u32 = 34978; -pub const ETH_P_ETHERCAT: u32 = 34980; -pub const ETH_P_8021AD: u32 = 34984; -pub const ETH_P_802_EX1: u32 = 34997; -pub const ETH_P_PREAUTH: u32 = 35015; -pub const ETH_P_TIPC: u32 = 35018; -pub const ETH_P_LLDP: u32 = 35020; -pub const ETH_P_MRP: u32 = 35043; -pub const ETH_P_MACSEC: u32 = 35045; -pub const ETH_P_8021AH: u32 = 35047; -pub const ETH_P_MVRP: u32 = 35061; -pub const ETH_P_1588: u32 = 35063; -pub const ETH_P_NCSI: u32 = 35064; -pub const ETH_P_PRP: u32 = 35067; -pub const ETH_P_CFM: u32 = 35074; -pub const ETH_P_FCOE: u32 = 35078; -pub const ETH_P_IBOE: u32 = 35093; -pub const ETH_P_TDLS: u32 = 35085; -pub const ETH_P_FIP: u32 = 35092; -pub const ETH_P_80221: u32 = 35095; -pub const ETH_P_HSR: u32 = 35119; -pub const ETH_P_NSH: u32 = 35151; -pub const ETH_P_LOOPBACK: u32 = 36864; -pub const ETH_P_QINQ1: u32 = 37120; -pub const ETH_P_QINQ2: u32 = 37376; -pub const ETH_P_QINQ3: u32 = 37632; -pub const ETH_P_EDSA: u32 = 56026; -pub const ETH_P_DSA_8021Q: u32 = 56027; -pub const ETH_P_DSA_A5PSW: u32 = 57345; -pub const ETH_P_IFE: u32 = 60734; -pub const ETH_P_AF_IUCV: u32 = 64507; -pub const ETH_P_802_3_MIN: u32 = 1536; -pub const ETH_P_802_3: u32 = 1; -pub const ETH_P_AX25: u32 = 2; -pub const ETH_P_ALL: u32 = 3; -pub const ETH_P_802_2: u32 = 4; -pub const ETH_P_SNAP: u32 = 5; -pub const ETH_P_DDCMP: u32 = 6; -pub const ETH_P_WAN_PPP: u32 = 7; -pub const ETH_P_PPP_MP: u32 = 8; -pub const ETH_P_LOCALTALK: u32 = 9; -pub const ETH_P_CAN: u32 = 12; -pub const ETH_P_CANFD: u32 = 13; -pub const ETH_P_CANXL: u32 = 14; -pub const ETH_P_PPPTALK: u32 = 16; -pub const ETH_P_TR_802_2: u32 = 17; -pub const ETH_P_MOBITEX: u32 = 21; -pub const ETH_P_CONTROL: u32 = 22; -pub const ETH_P_IRDA: u32 = 23; -pub const ETH_P_ECONET: u32 = 24; -pub const ETH_P_HDLC: u32 = 25; -pub const ETH_P_ARCNET: u32 = 26; -pub const ETH_P_DSA: u32 = 27; -pub const ETH_P_TRAILER: u32 = 28; -pub const ETH_P_PHONET: u32 = 245; -pub const ETH_P_IEEE802154: u32 = 246; -pub const ETH_P_CAIF: u32 = 247; -pub const ETH_P_XDSA: u32 = 248; -pub const ETH_P_MAP: u32 = 249; -pub const ETH_P_MCTP: u32 = 250; -pub const __UAPI_DEF_ETHHDR: u32 = 1; -pub const __NET_ETHERNET_H: u32 = 1; -pub const ETHERTYPE_SPRITE: u32 = 1280; -pub const ETHERTYPE_AT: u32 = 32923; -pub const ETHERTYPE_AARP: u32 = 33011; -pub const ETHERTYPE_VLAN: u32 = 33024; -pub const ETHERTYPE_IPX: u32 = 33079; -pub const ETHERTYPE_LOOPBACK: u32 = 36864; -pub const ETHER_ADDR_LEN: u32 = 6; -pub const ETHER_TYPE_LEN: u32 = 2; -pub const ETHER_HDR_LEN: u32 = 14; -pub const ETHERTYPE_TRAIL: u32 = 4096; -pub const ETHERTYPE_NTRAILER: u32 = 16; -pub const ETHERMTU: u32 = 1500; -pub const ETHERMIN: u32 = 46; -pub const _NET_IF_ARP_H: u32 = 1; -pub const MAX_ADDR_LEN: u32 = 7; -pub const ARPOP_REQUEST: u32 = 1; -pub const ARPOP_REPLY: u32 = 2; -pub const ARPOP_RREQUEST: u32 = 3; -pub const ARPOP_RREPLY: u32 = 4; -pub const ARPOP_InREQUEST: u32 = 8; -pub const ARPOP_InREPLY: u32 = 9; -pub const ARPOP_NAK: u32 = 10; -pub const ARPHRD_NETROM: u32 = 0; -pub const ARPHRD_ETHER: u32 = 1; -pub const ARPHRD_EETHER: u32 = 2; -pub const ARPHRD_AX25: u32 = 3; -pub const ARPHRD_PRONET: u32 = 4; -pub const ARPHRD_CHAOS: u32 = 5; -pub const ARPHRD_IEEE802: u32 = 6; -pub const ARPHRD_ARCNET: u32 = 7; -pub const ARPHRD_APPLETLK: u32 = 8; -pub const ARPHRD_DLCI: u32 = 15; -pub const ARPHRD_ATM: u32 = 19; -pub const ARPHRD_METRICOM: u32 = 23; -pub const ARPHRD_IEEE1394: u32 = 24; -pub const ARPHRD_EUI64: u32 = 27; -pub const ARPHRD_INFINIBAND: u32 = 32; -pub const ARPHRD_SLIP: u32 = 256; -pub const ARPHRD_CSLIP: u32 = 257; -pub const ARPHRD_SLIP6: u32 = 258; -pub const ARPHRD_CSLIP6: u32 = 259; -pub const ARPHRD_RSRVD: u32 = 260; -pub const ARPHRD_ADAPT: u32 = 264; -pub const ARPHRD_ROSE: u32 = 270; -pub const ARPHRD_X25: u32 = 271; -pub const ARPHRD_HWX25: u32 = 272; -pub const ARPHRD_CAN: u32 = 280; -pub const ARPHRD_MCTP: u32 = 290; -pub const ARPHRD_PPP: u32 = 512; -pub const ARPHRD_CISCO: u32 = 513; -pub const ARPHRD_HDLC: u32 = 513; -pub const ARPHRD_LAPB: u32 = 516; -pub const ARPHRD_DDCMP: u32 = 517; -pub const ARPHRD_RAWHDLC: u32 = 518; -pub const ARPHRD_RAWIP: u32 = 519; -pub const ARPHRD_TUNNEL: u32 = 768; -pub const ARPHRD_TUNNEL6: u32 = 769; -pub const ARPHRD_FRAD: u32 = 770; -pub const ARPHRD_SKIP: u32 = 771; -pub const ARPHRD_LOOPBACK: u32 = 772; -pub const ARPHRD_LOCALTLK: u32 = 773; -pub const ARPHRD_FDDI: u32 = 774; -pub const ARPHRD_BIF: u32 = 775; -pub const ARPHRD_SIT: u32 = 776; -pub const ARPHRD_IPDDP: u32 = 777; -pub const ARPHRD_IPGRE: u32 = 778; -pub const ARPHRD_PIMREG: u32 = 779; -pub const ARPHRD_HIPPI: u32 = 780; -pub const ARPHRD_ASH: u32 = 781; -pub const ARPHRD_ECONET: u32 = 782; -pub const ARPHRD_IRDA: u32 = 783; -pub const ARPHRD_FCPP: u32 = 784; -pub const ARPHRD_FCAL: u32 = 785; -pub const ARPHRD_FCPL: u32 = 786; -pub const ARPHRD_FCFABRIC: u32 = 787; -pub const ARPHRD_IEEE802_TR: u32 = 800; -pub const ARPHRD_IEEE80211: u32 = 801; -pub const ARPHRD_IEEE80211_PRISM: u32 = 802; -pub const ARPHRD_IEEE80211_RADIOTAP: u32 = 803; -pub const ARPHRD_IEEE802154: u32 = 804; -pub const ARPHRD_IEEE802154_PHY: u32 = 805; -pub const ARPHRD_VOID: u32 = 65535; -pub const ARPHRD_NONE: u32 = 65534; -pub const ATF_COM: u32 = 2; -pub const ATF_PERM: u32 = 4; -pub const ATF_PUBL: u32 = 8; -pub const ATF_USETRAILERS: u32 = 16; -pub const ATF_NETMASK: u32 = 32; -pub const ATF_DONTPUB: u32 = 64; -pub const ATF_MAGIC: u32 = 128; -pub const ARPD_UPDATE: u32 = 1; -pub const ARPD_LOOKUP: u32 = 2; -pub const ARPD_FLUSH: u32 = 3; -pub const _DLFCN_H: u32 = 1; -pub const RTLD_LAZY: u32 = 1; -pub const RTLD_NOW: u32 = 2; -pub const RTLD_BINDING_MASK: u32 = 3; -pub const RTLD_NOLOAD: u32 = 4; -pub const RTLD_DEEPBIND: u32 = 8; -pub const RTLD_GLOBAL: u32 = 256; -pub const RTLD_LOCAL: u32 = 0; -pub const RTLD_NODELETE: u32 = 4096; -pub const OS_DLOPEN_GLOBAL: u32 = 256; -pub const OS_DLOPEN_LOCAL: u32 = 0; -pub const OS_DLOPEN_NOW: u32 = 2; -pub const OS_DLOPEN_LOCAL_SEARCHPATH: u32 = 0; -pub const O_BINARY: u32 = 0; -pub const OS_INVALID_SOCKET: i32 = -1; -pub const MAX_ETHER_ADDR_STRLEN: u32 = 18; -pub const MAX_IPV4_ADDR_STRLEN: u32 = 16; -pub const ILLEGAL_IP_ADDRESS: u32 = 4294967295; -pub type __gnuc_va_list = __builtin_va_list; -#[doc = " Convenience types."] -pub type __u_char = ::std::os::raw::c_uchar; -pub type __u_short = ::std::os::raw::c_ushort; -pub type __u_int = ::std::os::raw::c_uint; -pub type __u_long = ::std::os::raw::c_ulong; -#[doc = " Fixed-size types, underlying types depend on word size and compiler."] -pub type __int8_t = ::std::os::raw::c_schar; -pub type __uint8_t = ::std::os::raw::c_uchar; -pub type __int16_t = ::std::os::raw::c_short; -pub type __uint16_t = ::std::os::raw::c_ushort; -pub type __int32_t = ::std::os::raw::c_int; -pub type __uint32_t = ::std::os::raw::c_uint; -pub type __int64_t = ::std::os::raw::c_long; -pub type __uint64_t = ::std::os::raw::c_ulong; -#[doc = " Smallest types with at least a given width."] -pub type __int_least8_t = __int8_t; -pub type __uint_least8_t = __uint8_t; -pub type __int_least16_t = __int16_t; -pub type __uint_least16_t = __uint16_t; -pub type __int_least32_t = __int32_t; -pub type __uint_least32_t = __uint32_t; -pub type __int_least64_t = __int64_t; -pub type __uint_least64_t = __uint64_t; -pub type __quad_t = ::std::os::raw::c_long; -pub type __u_quad_t = ::std::os::raw::c_ulong; -pub type __intmax_t = ::std::os::raw::c_long; -pub type __uintmax_t = ::std::os::raw::c_ulong; -pub type __dev_t = ::std::os::raw::c_ulong; -pub type __uid_t = ::std::os::raw::c_uint; -pub type __gid_t = ::std::os::raw::c_uint; -pub type __ino_t = ::std::os::raw::c_ulong; -pub type __ino64_t = ::std::os::raw::c_ulong; -pub type __mode_t = ::std::os::raw::c_uint; -pub type __nlink_t = ::std::os::raw::c_ulong; -pub type __off_t = ::std::os::raw::c_long; -pub type __off64_t = ::std::os::raw::c_long; -pub type __pid_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __fsid_t { - pub __val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -pub type __clock_t = ::std::os::raw::c_long; -pub type __rlim_t = ::std::os::raw::c_ulong; -pub type __rlim64_t = ::std::os::raw::c_ulong; -pub type __id_t = ::std::os::raw::c_uint; -pub type __time_t = ::std::os::raw::c_long; -pub type __useconds_t = ::std::os::raw::c_uint; -pub type __suseconds_t = ::std::os::raw::c_long; -pub type __suseconds64_t = ::std::os::raw::c_long; -pub type __daddr_t = ::std::os::raw::c_int; -pub type __key_t = ::std::os::raw::c_int; -pub type __clockid_t = ::std::os::raw::c_int; -pub type __timer_t = *mut ::std::os::raw::c_void; -pub type __blksize_t = ::std::os::raw::c_long; -pub type __blkcnt_t = ::std::os::raw::c_long; -pub type __blkcnt64_t = ::std::os::raw::c_long; -pub type __fsblkcnt_t = ::std::os::raw::c_ulong; -pub type __fsblkcnt64_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt_t = ::std::os::raw::c_ulong; -pub type __fsfilcnt64_t = ::std::os::raw::c_ulong; -pub type __fsword_t = ::std::os::raw::c_long; -pub type __ssize_t = ::std::os::raw::c_long; -pub type __syscall_slong_t = ::std::os::raw::c_long; -pub type __syscall_ulong_t = ::std::os::raw::c_ulong; -#[doc = " These few don't really vary by system, they always correspond\nto one of the other defined types."] -pub type __loff_t = __off64_t; -pub type __caddr_t = *mut ::std::os::raw::c_char; -pub type __intptr_t = ::std::os::raw::c_long; -pub type __socklen_t = ::std::os::raw::c_uint; -#[doc = " C99: An integer type that can be accessed as an atomic entity,\neven in the presence of asynchronous interrupts.\nIt is not currently necessary for this to be machine-specific."] -pub type __sig_atomic_t = ::std::os::raw::c_int; -#[doc = " Conversion state information."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __mbstate_t { - pub __count: ::std::os::raw::c_int, - #[doc = " Value so far."] - pub __value: __mbstate_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union __mbstate_t__bindgen_ty_1 { - pub __wch: ::std::os::raw::c_uint, - pub __wchb: [::std::os::raw::c_char; 4usize], -} -#[test] -fn bindgen_test_layout___mbstate_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t__bindgen_ty_1), - "::", - stringify!(__wchb) - ) - ); -} -impl Default for __mbstate_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout___mbstate_t() { - const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__mbstate_t>(), - 8usize, - concat!("Size of: ", stringify!(__mbstate_t)) - ); - assert_eq!( - ::std::mem::align_of::<__mbstate_t>(), - 4usize, - concat!("Alignment of ", stringify!(__mbstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__mbstate_t), - "::", - stringify!(__value) - ) - ); -} -impl Default for __mbstate_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos_t { - pub __pos: __off_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type __fpos_t = _G_fpos_t; -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct _G_fpos64_t { - pub __pos: __off64_t, - pub __state: __mbstate_t, -} -#[test] -fn bindgen_test_layout__G_fpos64_t() { - const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_G_fpos64_t>(), - 16usize, - concat!("Size of: ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - ::std::mem::align_of::<_G_fpos64_t>(), - 8usize, - concat!("Alignment of ", stringify!(_G_fpos64_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_G_fpos64_t), - "::", - stringify!(__state) - ) - ); -} -impl Default for _G_fpos64_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The tag name of this struct is _G_fpos64_t to preserve historic\nC++ mangled names for functions taking fpos_t and/or fpos64_t\narguments. That name should not be used in new code."] -pub type __fpos64_t = _G_fpos64_t; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -pub type __FILE = _IO_FILE; -#[doc = " The opaque type of streams. This is the definition used elsewhere."] -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = ::std::os::raw::c_void; -#[doc = " The tag name of this struct is _IO_FILE to preserve historic\nC++ mangled names for functions taking FILE* arguments.\nThat name should not be used in new code."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _IO_FILE { - #[doc = " High-order word is _IO_MAGIC; rest is flags."] - pub _flags: ::std::os::raw::c_int, - #[doc = " Current read pointer"] - pub _IO_read_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of get area."] - pub _IO_read_end: *mut ::std::os::raw::c_char, - #[doc = " Start of putback+get area."] - pub _IO_read_base: *mut ::std::os::raw::c_char, - #[doc = " Start of put area."] - pub _IO_write_base: *mut ::std::os::raw::c_char, - #[doc = " Current put pointer."] - pub _IO_write_ptr: *mut ::std::os::raw::c_char, - #[doc = " End of put area."] - pub _IO_write_end: *mut ::std::os::raw::c_char, - #[doc = " Start of reserve area."] - pub _IO_buf_base: *mut ::std::os::raw::c_char, - #[doc = " End of reserve area."] - pub _IO_buf_end: *mut ::std::os::raw::c_char, - #[doc = " Pointer to start of non-current get area."] - pub _IO_save_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to first valid character of backup area"] - pub _IO_backup_base: *mut ::std::os::raw::c_char, - #[doc = " Pointer to end of non-current get area."] - pub _IO_save_end: *mut ::std::os::raw::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: ::std::os::raw::c_int, - pub _flags2: ::std::os::raw::c_int, - #[doc = " This used to be _offset but it's too small."] - pub _old_offset: __off_t, - #[doc = " 1+column number of pbase(); 0 is unknown."] - pub _cur_column: ::std::os::raw::c_ushort, - pub _vtable_offset: ::std::os::raw::c_schar, - pub _shortbuf: [::std::os::raw::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - #[doc = " Wide character stream stuff."] - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut ::std::os::raw::c_void, - pub __pad5: usize, - pub _mode: ::std::os::raw::c_int, - #[doc = " Make sure we don't get into trouble again."] - pub _unused2: [::std::os::raw::c_char; 20usize], -} -#[test] -fn bindgen_test_layout__IO_FILE() { - const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_IO_FILE>(), - 216usize, - concat!("Size of: ", stringify!(_IO_FILE)) - ); - assert_eq!( - ::std::mem::align_of::<_IO_FILE>(), - 8usize, - concat!("Alignment of ", stringify!(_IO_FILE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_read_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_write_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_buf_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_backup_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_IO_save_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_markers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_chain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_fileno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_flags2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_old_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_cur_column) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_vtable_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize }, - 131usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_shortbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_codecvt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_wide_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_freeres_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(__pad5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(_IO_FILE), - "::", - stringify!(_unused2) - ) - ); -} -impl Default for _IO_FILE { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type va_list = __gnuc_va_list; -pub type off_t = __off_t; -#[doc = " The tag name of this struct is _G_fpos_t to preserve historic\nC++ mangled names for functions taking fpos_t arguments.\nThat name should not be used in new code."] -pub type fpos_t = __fpos_t; -extern "C" { - #[doc = " Standard input stream."] - pub static mut stdin: *mut FILE; -} -extern "C" { - #[doc = " Standard output stream."] - pub static mut stdout: *mut FILE; -} -extern "C" { - #[doc = " Standard error output stream."] - pub static mut stderr: *mut FILE; -} -extern "C" { - #[doc = " Remove file FILENAME."] - pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD to NEW."] - pub fn rename( - __old: *const ::std::os::raw::c_char, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rename file OLD relative to OLDFD to NEW relative to NEWFD."] - pub fn renameat( - __oldfd: ::std::os::raw::c_int, - __old: *const ::std::os::raw::c_char, - __newfd: ::std::os::raw::c_int, - __new: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tmpfile() -> *mut FILE; -} -extern "C" { - #[doc = " Generate a temporary filename."] - pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " This is the reentrant variant of `tmpnam'. The only difference is\nthat it does not allow S to be NULL."] - pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Generate a unique temporary filename using up to five characters of PFX\nif it is not NULL. The directory to put this file in is searched for\nas follows: First the environment variable \"TMPDIR\" is checked.\nIf it contains the name of a writable directory, that directory is used.\nIf not and if DIR is not NULL, that value is checked. If that fails,\nP_tmpdir is tried and finally \"/tmp\". The storage for the filename\nis allocated by `malloc'."] - pub fn tempnam( - __dir: *const ::std::os::raw::c_char, - __pfx: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Flush STREAM, or all streams if STREAM is NULL.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a file and create a new stream for it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a file, replacing an existing stream with it.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn freopen( - __filename: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - __stream: *mut FILE, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to an existing system file descriptor."] - pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char) - -> *mut FILE; -} -extern "C" { - #[doc = " Create a new stream that refers to a memory buffer."] - pub fn fmemopen( - __s: *mut ::std::os::raw::c_void, - __len: usize, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Open a stream that writes into a malloc'd buffer that is expanded as\nnecessary. *BUFLOC and *SIZELOC are updated with the buffer's location\nand the number of characters written on fflush or fclose."] - pub fn open_memstream( - __bufloc: *mut *mut ::std::os::raw::c_char, - __sizeloc: *mut usize, - ) -> *mut FILE; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use buffer BUF, of size BUFSIZ."] - pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Make STREAM use buffering mode MODE.\nIf BUF is not NULL, use N bytes of it for buffering;\nelse allocate an internal buffer N bytes long."] - pub fn setvbuf( - __stream: *mut FILE, - __buf: *mut ::std::os::raw::c_char, - __modes: ::std::os::raw::c_int, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If BUF is NULL, make STREAM unbuffered.\nElse make it use SIZE bytes of BUF for buffering."] - pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize); -} -extern "C" { - #[doc = " Make STREAM line-buffered."] - pub fn setlinebuf(__stream: *mut FILE); -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fprintf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S."] - pub fn sprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfprintf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vprintf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG."] - pub fn vsprintf( - __s: *mut ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Maximum chars of output to write in MAXLEN."] - pub fn snprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vsnprintf( - __s: *mut ::std::os::raw::c_char, - __maxlen: ::std::os::raw::c_ulong, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to a file descriptor."] - pub fn vdprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dprintf( - __fd: ::std::os::raw::c_int, - __fmt: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fscanf( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn sscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -pub type _Float32 = f32; -pub type _Float64 = f64; -pub type _Float32x = f64; -pub type _Float64x = u128; -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fscanf"] - pub fn fscanf1( - __stream: *mut FILE, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_scanf"] - pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_sscanf"] - pub fn sscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfscanf( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vscanf( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vsscanf( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfscanf"] - pub fn vfscanf1( - __s: *mut FILE, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vscanf"] - pub fn vscanf1( - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vsscanf"] - pub fn vsscanf1( - __s: *const ::std::os::raw::c_char, - __format: *const ::std::os::raw::c_char, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getchar() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn getchar_unlocked() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW.\n\nThese functions is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not necessary.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These are defined in POSIX.1:1996.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a word (int) from STREAM."] - pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a word (int) to STREAM."] - pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a newline-terminated string of finite length from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgets( - __s: *mut ::std::os::raw::c_char, - __n: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read up to (and including) a DELIMITER from STREAM into *LINEPTR\n(and null-terminate it). *LINEPTR is a pointer returned from malloc (or\nNULL), pointing to *N characters of space. It is realloc'd as\nnecessary. Returns the number of characters read (not including the\nnull terminator), or -1 on error or EOF.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn __getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - pub fn getdelim( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __delimiter: ::std::os::raw::c_int, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Like `getdelim', but reads up to a newline.\n\nThis function is not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation it is a cancellation point and\ntherefore not marked with __THROW."] - pub fn getline( - __lineptr: *mut *mut ::std::os::raw::c_char, - __n: *mut usize, - __stream: *mut FILE, - ) -> __ssize_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write a string, followed by a newline, to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read chunks of generic data from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fread( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __stream: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Write chunks of generic data to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwrite( - __ptr: *const ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - __n: ::std::os::raw::c_ulong, - __s: *mut FILE, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Faster versions when locking is not necessary.\n\nThese functions are not part of POSIX and therefore no official\ncancellation point. But due to similarity with an POSIX interface\nor due to the implementation they are cancellation points and\ntherefore not marked with __THROW."] - pub fn fread_unlocked( - __ptr: *mut ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - pub fn fwrite_unlocked( - __ptr: *const ::std::os::raw::c_void, - __size: usize, - __n: usize, - __stream: *mut FILE, - ) -> usize; -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseek( - __stream: *mut FILE, - __off: ::std::os::raw::c_long, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Rewind to the beginning of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn rewind(__stream: *mut FILE); -} -extern "C" { - #[doc = " Seek to a certain position on STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fseeko( - __stream: *mut FILE, - __off: __off_t, - __whence: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the current position of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ftello(__stream: *mut FILE) -> __off_t; -} -extern "C" { - #[doc = " Get STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set STREAM's position.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clear the error and EOF indicators for STREAM."] - pub fn clearerr(__stream: *mut FILE); -} -extern "C" { - #[doc = " Return the EOF indicator for STREAM."] - pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the error indicator for STREAM."] - pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster versions when locking is not required."] - pub fn clearerr_unlocked(__stream: *mut FILE); -} -extern "C" { - pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Print a message describing the meaning of the value of errno.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn perror(__s: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " Return the system file descriptor for STREAM."] - pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Faster version when locking is not required."] - pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close a stream opened by popen and return the status of its child.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new stream connected to a pipe running the given command.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn popen( - __command: *const ::std::os::raw::c_char, - __modes: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - #[doc = " Return the name of the controlling terminal."] - pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Acquire ownership of STREAM."] - pub fn flockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Try to acquire ownership of STREAM but do not block if it is not\npossible."] - pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Relinquish the ownership granted for STREAM."] - pub fn funlockfile(__stream: *mut FILE); -} -extern "C" { - #[doc = " Slow-path routines used by the optimized inline functions in\nbits/stdio.h."] - pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type wchar_t = ::std::os::raw::c_int; -#[doc = " Define 'max_align_t' to match the GCC definition."] -#[repr(C)] -#[repr(align(16))] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct max_align_t { - pub __clang_max_align_nonce1: ::std::os::raw::c_longlong, - pub __bindgen_padding_0: u64, - pub __clang_max_align_nonce2: u128, -} -#[test] -fn bindgen_test_layout_max_align_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(max_align_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 16usize, - concat!("Alignment of ", stringify!(max_align_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(max_align_t), - "::", - stringify!(__clang_max_align_nonce2) - ) - ); -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST."] - pub fn memcpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn memmove( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn memccpy( - __dest: *mut ::std::os::raw::c_void, - __src: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Set N bytes of S to C."] - pub fn memset( - __s: *mut ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2."] - pub fn memcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal.\nReturn some non-zero value otherwise.\n\nEssentially __memcmpeq has the exact same semantics as memcmp\nexcept the return value is less constrained. memcmp is always a\ncorrect implementation of __memcmpeq. As well !!memcmp, -memcmp,\nor bcmp are correct implementations.\n\n__memcmpeq is meant to be used by compilers when memcmp return is\nonly used for its boolean value.\n\n__memcmpeq is declared only for use by compilers. Programs should\ncontinue to use memcmp."] - pub fn __memcmpeq( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn memchr( - __s: *const ::std::os::raw::c_void, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn strcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST."] - pub fn strncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn strcat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Append no more than N characters from SRC onto DEST."] - pub fn strncat( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn strcmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N characters of S1 and S2."] - pub fn strncmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare the collated forms of S1 and S2."] - pub fn strcoll( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST."] - pub fn strxfrm( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_ulong; -} -#[doc = " POSIX.1-2008: the locale_t type, representing a locale context\n(implementation-namespace version). This type should be treated\nas opaque by applications; some details are exposed for the sake of\nefficiency in e.g. ctype functions."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_struct { - #[doc = " 13 = __LC_LAST."] - pub __locales: [*mut __locale_data; 13usize], - #[doc = " To increase the speed of this solution we add some special members."] - pub __ctype_b: *const ::std::os::raw::c_ushort, - pub __ctype_tolower: *const ::std::os::raw::c_int, - pub __ctype_toupper: *const ::std::os::raw::c_int, - #[doc = " Note: LC_ALL is not a valid index into this array."] - pub __names: [*const ::std::os::raw::c_char; 13usize], -} -#[test] -fn bindgen_test_layout___locale_struct() { - const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__locale_struct>(), - 232usize, - concat!("Size of: ", stringify!(__locale_struct)) - ); - assert_eq!( - ::std::mem::align_of::<__locale_struct>(), - 8usize, - concat!("Alignment of ", stringify!(__locale_struct)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__locales) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_tolower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__ctype_toupper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(__locale_struct), - "::", - stringify!(__names) - ) - ); -} -impl Default for __locale_struct { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __locale_t = *mut __locale_struct; -pub type locale_t = __locale_t; -extern "C" { - #[doc = " Compare the collated forms of S1 and S2, using sorting rules from L."] - pub fn strcoll_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __l: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put a transformation of SRC into no more than N bytes of DEST,\nusing sorting rules from L."] - pub fn strxfrm_l( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - __l: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strndup( - __string: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strrchr( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters not in REJECT."] - pub fn strcspn( - __s: *const ::std::os::raw::c_char, - __reject: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the length of the initial segment of S which\nconsists entirely of characters in ACCEPT."] - pub fn strspn( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn strpbrk( - __s: *const ::std::os::raw::c_char, - __accept: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strstr( - __haystack: *const ::std::os::raw::c_char, - __needle: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM."] - pub fn strtok( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Divide S into tokens separated by characters in DELIM. Information\npassed between calls are stored in SAVE_PTR."] - pub fn __strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn strtok_r( - __s: *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - __save_ptr: *mut *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the length of S."] - pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Find the length of STRING, but scan at most MAXLEN characters.\nIf no '\\0' terminator is found in that many characters, return MAXLEN."] - pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize; -} -extern "C" { - #[doc = " Return a string describing the meaning of the `errno' code in ERRNUM."] - pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[link_name = "\u{1}__xpg_strerror_r"] - pub fn strerror_r( - __errnum: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Translate error number to string according to the locale L."] - pub fn strerror_l( - __errnum: ::std::os::raw::c_int, - __l: locale_t, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Compare N bytes of S1 and S2 (same as memcmp)."] - pub fn bcmp( - __s1: *const ::std::os::raw::c_void, - __s2: *const ::std::os::raw::c_void, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N bytes of SRC to DEST (like memmove, but args reversed)."] - pub fn bcopy( - __src: *const ::std::os::raw::c_void, - __dest: *mut ::std::os::raw::c_void, - __n: usize, - ); -} -extern "C" { - #[doc = " Set N bytes of S to 0."] - pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn index( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn rindex( - __s: *const ::std::os::raw::c_char, - __c: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return the position of the first bit set in I, or 0 if none are set.\nThe least-significant bit is position 1, the most-significant 32."] - pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn strcasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn strncasecmp( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case, using collation rules from LOC."] - pub fn strcasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case, using\ncollation rules from LOC."] - pub fn strncasecmp_l( - __s1: *const ::std::os::raw::c_char, - __s2: *const ::std::os::raw::c_char, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N bytes of S to 0. The compiler will not delete a call to this\nfunction, even if S is dead after the call."] - pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize); -} -extern "C" { - #[doc = " Return the next DELIM-delimited token from *STRINGP,\nterminating it with a '\\0', and update *STRINGP to point past it."] - pub fn strsep( - __stringp: *mut *mut ::std::os::raw::c_char, - __delim: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a string describing the meaning of the signal number in SIG."] - pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating '\\0' in DEST."] - pub fn __stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpcpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn __stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn stpncpy( - __dest: *mut ::std::os::raw::c_char, - __src: *const ::std::os::raw::c_char, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The error code set by various library functions."] - pub fn __errno_location() -> *mut ::std::os::raw::c_int; -} -#[doc = " Returned by `div'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct div_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_int, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_div_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(div_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(div_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(div_t), - "::", - stringify!(rem) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_ldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ldiv_t), - "::", - stringify!(rem) - ) - ); -} -#[doc = " Returned by `lldiv'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct lldiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_longlong, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_lldiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(lldiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(lldiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(lldiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - pub fn __ctype_get_mb_cur_max() -> usize; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - #[doc = " Convert a string to an integer."] - pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to a long long integer."] - pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to a floating-point number."] - pub fn strtod( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn strtof( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - ) -> f32; -} -extern "C" { - #[doc = " Convert a string to a long integer."] - pub fn strtol( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert a string to an unsigned long integer."] - pub fn strtoul( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtouq( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert a string to a quadword integer."] - pub fn strtoll( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert a string to an unsigned quadword integer."] - pub fn strtoull( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Convert N to base 64 using the digits \"./0-9A-Za-z\", least-significant\ndigit first. Returns a pointer to static storage overwritten by the\nnext call."] - pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Read a number from a string S in base 64 as above."] - pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long; -} -pub type u_char = __u_char; -pub type u_short = __u_short; -pub type u_int = __u_int; -pub type u_long = __u_long; -pub type quad_t = __quad_t; -pub type u_quad_t = __u_quad_t; -pub type fsid_t = __fsid_t; -pub type loff_t = __loff_t; -pub type ino_t = __ino_t; -pub type dev_t = __dev_t; -pub type gid_t = __gid_t; -pub type mode_t = __mode_t; -pub type nlink_t = __nlink_t; -pub type uid_t = __uid_t; -pub type pid_t = __pid_t; -pub type id_t = __id_t; -pub type daddr_t = __daddr_t; -pub type caddr_t = __caddr_t; -pub type key_t = __key_t; -#[doc = " Returned by `clock'."] -pub type clock_t = __clock_t; -#[doc = " Clock ID used in clock and timer functions."] -pub type clockid_t = __clockid_t; -pub type time_t = __time_t; -#[doc = " Timer ID returned by `timer_create'."] -pub type timer_t = __timer_t; -#[doc = " Old compatibility names for C types."] -pub type ulong = ::std::os::raw::c_ulong; -pub type ushort = ::std::os::raw::c_ushort; -pub type uint = ::std::os::raw::c_uint; -#[doc = " These were defined by ISO C without the first `_'."] -pub type u_int8_t = __uint8_t; -pub type u_int16_t = __uint16_t; -pub type u_int32_t = __uint32_t; -pub type u_int64_t = __uint64_t; -pub type register_t = ::std::os::raw::c_long; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __sigset_t { - pub __val: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -#[doc = " A set of signals to be blocked, unblocked, or waited for."] -pub type sigset_t = __sigset_t; -#[doc = " A time value that is accurate to the nearest\nmicrosecond but also has a range of years."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timeval { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Microseconds."] - pub tv_usec: __suseconds_t, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[doc = " POSIX.1b structure for a time value. This is like a `struct timeval' but\nhas nanoseconds instead of microseconds."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timespec { - #[doc = " Seconds."] - pub tv_sec: __time_t, - #[doc = " Nanoseconds."] - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -pub type suseconds_t = __suseconds_t; -#[doc = " The fd_set member is required to be an array of longs."] -pub type __fd_mask = ::std::os::raw::c_long; -#[doc = " fd_set for select and pselect."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fd_set { - pub __fds_bits: [__fd_mask; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -#[doc = " Sometimes the fd_set member is assumed to have this type."] -pub type fd_mask = __fd_mask; -extern "C" { - pub fn select( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *mut timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pselect( - __nfds: ::std::os::raw::c_int, - __readfds: *mut fd_set, - __writefds: *mut fd_set, - __exceptfds: *mut fd_set, - __timeout: *const timespec, - __sigmask: *const __sigset_t, - ) -> ::std::os::raw::c_int; -} -pub type blksize_t = __blksize_t; -pub type blkcnt_t = __blkcnt_t; -pub type fsblkcnt_t = __fsblkcnt_t; -pub type fsfilcnt_t = __fsfilcnt_t; -#[doc = " Counter that is monotonically increasing (by less than 2**31 per\nincrement), with a single writer, and an arbitrary number of\nreaders."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union __atomic_wide_counter { - pub __value64: ::std::os::raw::c_ulonglong, - pub __value32: __atomic_wide_counter__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __atomic_wide_counter__bindgen_ty_1 { - pub __low: ::std::os::raw::c_uint, - pub __high: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(), - 4usize, - concat!( - "Alignment of ", - stringify!(__atomic_wide_counter__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter__bindgen_ty_1), - "::", - stringify!(__high) - ) - ); -} -#[test] -fn bindgen_test_layout___atomic_wide_counter() { - const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__atomic_wide_counter>(), - 8usize, - concat!("Size of: ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - ::std::mem::align_of::<__atomic_wide_counter>(), - 8usize, - concat!("Alignment of ", stringify!(__atomic_wide_counter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__atomic_wide_counter), - "::", - stringify!(__value32) - ) - ); -} -impl Default for __atomic_wide_counter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_list { - pub __prev: *mut __pthread_internal_list, - pub __next: *mut __pthread_internal_list, -} -#[test] -fn bindgen_test_layout___pthread_internal_list() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Common definition of pthread_mutex_t."] -pub type __pthread_list_t = __pthread_internal_list; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_internal_slist { - pub __next: *mut __pthread_internal_slist, -} -#[test] -fn bindgen_test_layout___pthread_internal_slist() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_internal_slist>(), - 8usize, - concat!("Size of: ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_slist>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_slist)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_internal_slist), - "::", - stringify!(__next) - ) - ); -} -impl Default for __pthread_internal_slist { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __pthread_slist_t = __pthread_internal_slist; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_mutex_s { - pub __lock: ::std::os::raw::c_int, - pub __count: ::std::os::raw::c_uint, - pub __owner: ::std::os::raw::c_int, - pub __nusers: ::std::os::raw::c_uint, - #[doc = " KIND must stay at this position in the structure to maintain\nbinary compatibility with static initializers."] - pub __kind: ::std::os::raw::c_int, - pub __spins: ::std::os::raw::c_short, - pub __elision: ::std::os::raw::c_short, - pub __list: __pthread_list_t, -} -#[test] -fn bindgen_test_layout___pthread_mutex_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_mutex_s>(), - 40usize, - concat!("Size of: ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_mutex_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_mutex_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize }, - 22usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Default for __pthread_mutex_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_rwlock_arch_t { - pub __readers: ::std::os::raw::c_uint, - pub __writers: ::std::os::raw::c_uint, - pub __wrphase_futex: ::std::os::raw::c_uint, - pub __writers_futex: ::std::os::raw::c_uint, - pub __pad3: ::std::os::raw::c_uint, - pub __pad4: ::std::os::raw::c_uint, - pub __cur_writer: ::std::os::raw::c_int, - pub __shared: ::std::os::raw::c_int, - pub __rwelision: ::std::os::raw::c_schar, - pub __pad1: [::std::os::raw::c_uchar; 7usize], - pub __pad2: ::std::os::raw::c_ulong, - #[doc = " FLAGS must stay at this position in the structure to maintain\nbinary compatibility."] - pub __flags: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout___pthread_rwlock_arch_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_rwlock_arch_t>(), - 56usize, - concat!("Size of: ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_rwlock_arch_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__readers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__wrphase_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__writers_futex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__cur_writer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 33usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(__pthread_rwlock_arch_t), - "::", - stringify!(__flags) - ) - ); -} -#[doc = " Common definition of pthread_cond_t."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct __pthread_cond_s { - pub __wseq: __atomic_wide_counter, - pub __g1_start: __atomic_wide_counter, - pub __g_refs: [::std::os::raw::c_uint; 2usize], - pub __g_size: [::std::os::raw::c_uint; 2usize], - pub __g1_orig_size: ::std::os::raw::c_uint, - pub __wrefs: ::std::os::raw::c_uint, - pub __g_signals: [::std::os::raw::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout___pthread_cond_s() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cond_s>(), - 48usize, - concat!("Size of: ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cond_s>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cond_s)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wseq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g1_orig_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__wrefs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cond_s), - "::", - stringify!(__g_signals) - ) - ); -} -impl Default for __pthread_cond_s { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type __tss_t = ::std::os::raw::c_uint; -pub type __thrd_t = ::std::os::raw::c_ulong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __once_flag { - pub __data: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___once_flag() { - const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__once_flag>(), - 4usize, - concat!("Size of: ", stringify!(__once_flag)) - ); - assert_eq!( - ::std::mem::align_of::<__once_flag>(), - 4usize, - concat!("Alignment of ", stringify!(__once_flag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__once_flag), - "::", - stringify!(__data) - ) - ); -} -#[doc = " Thread identifiers. The structure of the attribute type is not\nexposed on purpose."] -pub type pthread_t = ::std::os::raw::c_ulong; -#[doc = " Data structures for mutex handling. The structure of the attribute\ntype is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutexattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutexattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for condition variable handling. The structure of\nthe attribute type is not exposed on purpose."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_condattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_condattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Keys for thread-specific data"] -pub type pthread_key_t = ::std::os::raw::c_uint; -#[doc = " Once-only execution"] -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t { - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_mutex_t { - pub __data: __pthread_mutex_s, - pub __size: [::std::os::raw::c_char; 40usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_mutex_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_cond_t { - pub __data: __pthread_cond_s, - pub __size: [::std::os::raw::c_char; 48usize], - pub __align: ::std::os::raw::c_longlong, -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_cond_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data structure for reader-writer lock variable handling. The\nstructure of the attribute type is deliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlock_t { - pub __data: __pthread_rwlock_arch_t, - pub __size: [::std::os::raw::c_char; 56usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlock_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_rwlockattr_t { - pub __size: [::std::os::raw::c_char; 8usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_rwlockattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX spinlock data type."] -pub type pthread_spinlock_t = ::std::os::raw::c_int; -#[doc = " POSIX barriers data type. The structure of the type is\ndeliberately not exposed."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrier_t { - pub __size: [::std::os::raw::c_char; 32usize], - pub __align: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrier_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_barrierattr_t { - pub __size: [::std::os::raw::c_char; 4usize], - pub __align: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Default for pthread_barrierattr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " These are the functions that actually do things. The `random', `srandom',\n`initstate' and `setstate' functions are those from BSD Unices.\nThe `rand' and `srand' functions are required by the ANSI standard.\nWe provide both interfaces to the same random number generator. */\n/* Return a random long integer between 0 and 2^31-1 inclusive."] - pub fn random() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srandom(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Initialize the random number generator to use state buffer STATEBUF,\nof length STATELEN, and seed it with SEED. Optimal lengths are 8, 16,\n32, 64, 128 and 256, the bigger the better; values less than 8 will\ncause an error and values greater than 256 will be rounded down."] - pub fn initstate( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Switch the random number generator to state buffer STATEBUF,\nwhich should have been previously initialized by `initstate'."] - pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -#[doc = " Reentrant versions of the `random' family of functions.\nThese functions all use the following data structure to contain\nstate, rather than global state variables."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct random_data { - #[doc = " Front pointer."] - pub fptr: *mut i32, - #[doc = " Rear pointer."] - pub rptr: *mut i32, - #[doc = " Array of state values."] - pub state: *mut i32, - #[doc = " Type of random number generator."] - pub rand_type: ::std::os::raw::c_int, - #[doc = " Degree of random number generator."] - pub rand_deg: ::std::os::raw::c_int, - #[doc = " Distance between front and rear."] - pub rand_sep: ::std::os::raw::c_int, - #[doc = " Pointer behind state table."] - pub end_ptr: *mut i32, -} -#[test] -fn bindgen_test_layout_random_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(random_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(random_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(fptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_deg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(rand_sep) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(random_data), - "::", - stringify!(end_ptr) - ) - ); -} -impl Default for random_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn srandom_r( - __seed: ::std::os::raw::c_uint, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn initstate_r( - __seed: ::std::os::raw::c_uint, - __statebuf: *mut ::std::os::raw::c_char, - __statelen: usize, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setstate_r( - __statebuf: *mut ::std::os::raw::c_char, - __buf: *mut random_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between 0 and RAND_MAX inclusive."] - pub fn rand() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed the random number generator with the given number."] - pub fn srand(__seed: ::std::os::raw::c_uint); -} -extern "C" { - #[doc = " Reentrant interface according to POSIX.1."] - pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48() -> f64; -} -extern "C" { - pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48(__seedval: ::std::os::raw::c_long); -} -extern "C" { - pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort; -} -extern "C" { - pub fn lcong48(__param: *mut ::std::os::raw::c_ushort); -} -#[doc = " Data structure for communication with thread safe versions. This\ntype is to be regarded as opaque. It's only exported because users\nhave to allocate objects of this type."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct drand48_data { - #[doc = " Current state."] - pub __x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Old state."] - pub __old_x: [::std::os::raw::c_ushort; 3usize], - #[doc = " Additive const. in congruential formula."] - pub __c: ::std::os::raw::c_ushort, - #[doc = " Flag for initializing."] - pub __init: ::std::os::raw::c_ushort, - #[doc = " Factor in congruential\nformula."] - pub __a: ::std::os::raw::c_ulonglong, -} -#[test] -fn bindgen_test_layout_drand48_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(drand48_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(drand48_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__old_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(drand48_data), - "::", - stringify!(__a) - ) - ); -} -extern "C" { - #[doc = " Return non-negative, double-precision floating-point value in [0.0,1.0)."] - pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn erand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut f64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return non-negative, long integer in [0,2^31)."] - pub fn lrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn nrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return signed, long integers in [-2^31,2^31)."] - pub fn mrand48_r( - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn jrand48_r( - __xsubi: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - __result: *mut ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seed random number generator."] - pub fn srand48_r( - __seedval: ::std::os::raw::c_long, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn seed48_r( - __seed16v: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lcong48_r( - __param: *mut ::std::os::raw::c_ushort, - __buffer: *mut drand48_data, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return a random integer between zero and 2**32-1 (inclusive)."] - pub fn arc4random() -> __uint32_t; -} -extern "C" { - #[doc = " Fill the buffer with random data."] - pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize); -} -extern "C" { - #[doc = " Return a random number between zero (inclusive) and the specified\nlimit (exclusive)."] - pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t; -} -extern "C" { - #[doc = " Allocate SIZE bytes of memory."] - pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate NMEMB elements of SIZE bytes each, all initialized to 0."] - pub fn calloc( - __nmemb: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Re-allocate the previously allocated block\nin PTR, making the new block SIZE bytes long. */\n/* __attribute_malloc__ is not used, because if realloc returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn realloc( - __ptr: *mut ::std::os::raw::c_void, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Free a block allocated by `malloc', `realloc' or `calloc'."] - pub fn free(__ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Re-allocate the previously allocated block in PTR, making the new\nblock large enough for NMEMB elements of SIZE bytes each. */\n/* __attribute_malloc__ is not used, because if reallocarray returns\nthe same pointer that was passed to it, aliasing needs to be allowed\nbetween objects pointed by the old and new pointers."] - pub fn reallocarray( - __ptr: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate a block that will be freed when the calling function exits."] - pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate SIZE bytes on a page boundary. The storage cannot be freed."] - pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Allocate memory of SIZE bytes with an alignment of ALIGNMENT."] - pub fn posix_memalign( - __memptr: *mut *mut ::std::os::raw::c_void, - __alignment: usize, - __size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ISO C variant of aligned allocation."] - pub fn aligned_alloc( - __alignment: ::std::os::raw::c_ulong, - __size: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Abort execution and generate a core-dump."] - pub fn abort() -> !; -} -extern "C" { - #[doc = " Register a function to be called when `exit' is called."] - pub fn atexit(__func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn at_quick_exit( - __func: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a function to be called with the status\ngiven to `exit' and the given argument."] - pub fn on_exit( - __func: ::std::option::Option< - unsafe extern "C" fn( - __status: ::std::os::raw::c_int, - __arg: *mut ::std::os::raw::c_void, - ), - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Call all functions registered with `atexit' and `on_exit',\nin the reverse of the order in which they were registered,\nperform stdio cleanup, and terminate program execution with STATUS."] - pub fn exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Call all functions registered with `at_quick_exit' in the reverse\nof the order in which they were registered and terminate program\nexecution with STATUS."] - pub fn quick_exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Terminate the program with STATUS without calling any of the\nfunctions registered with `atexit' or `on_exit'."] - pub fn _Exit(__status: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Return the value of envariable NAME, or NULL if it doesn't exist."] - pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The SVID says this is in , but this seems a better place.\t*/\n/* Put STRING, which is of the form \"NAME=VALUE\", in the environment.\nIf there is no `=', remove NAME from the environment."] - pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set NAME to VALUE in the environment.\nIf REPLACE is nonzero, overwrite an existing value."] - pub fn setenv( - __name: *const ::std::os::raw::c_char, - __value: *const ::std::os::raw::c_char, - __replace: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the variable NAME from the environment."] - pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The `clearenv' was planned to be added to POSIX.1 but probably\nnever made it. Nevertheless the POSIX.9 standard (POSIX bindings\nfor Fortran 77) requires this function."] - pub fn clearenv() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generate a unique temporary file name from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the file name unique.\nAlways returns TEMPLATE, it's either a temporary file name or a null\nstring if it cannot get a unique file name."] - pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mkstemps( - __template: *mut ::std::os::raw::c_char, - __suffixlen: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a unique temporary directory from TEMPLATE.\nThe last six characters of TEMPLATE must be \"XXXXXX\";\nthey are replaced with a string that makes the directory name unique.\nReturns TEMPLATE, or a null pointer if it cannot get a unique name.\nThe directory is created mode 700."] - pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Execute the given line as a shell command.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the canonical absolute name of file NAME. If RESOLVED is\nnull, the result is malloc'd; otherwise, if the canonical name is\nPATH_MAX chars or more, returns null with `errno' set to\nENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,\nreturns the name in RESOLVED."] - pub fn realpath( - __name: *const ::std::os::raw::c_char, - __resolved: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -pub type __compar_fn_t = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_void, - arg2: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - #[doc = " Do a binary search for KEY in BASE, which consists of NMEMB elements\nof SIZE bytes each, using COMPAR to perform the comparisons."] - pub fn bsearch( - __key: *const ::std::os::raw::c_void, - __base: *const ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Sort NMEMB elements of BASE, of SIZE bytes each,\nusing COMPAR to perform the comparisons."] - pub fn qsort( - __base: *mut ::std::os::raw::c_void, - __nmemb: usize, - __size: usize, - __compar: __compar_fn_t, - ); -} -extern "C" { - #[doc = " Return the absolute value of X."] - pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Return the `div_t', `ldiv_t' or `lldiv_t' representation\nof the value of NUMER over DENOM. */\n/* GCC may have built-ins for these someday."] - pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t; -} -extern "C" { - pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t; -} -extern "C" { - pub fn lldiv( - __numer: ::std::os::raw::c_longlong, - __denom: ::std::os::raw::c_longlong, - ) -> lldiv_t; -} -extern "C" { - #[doc = " Convert VALUE to a string with NDIGIT digits and return a pointer to\nthis. Set *DECPT with the position of the decimal character and *SIGN\nwith the sign of the number."] - pub fn ecvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT\nwith the position of the decimal character and *SIGN with the sign of\nthe number."] - pub fn fcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " If possible convert VALUE to a string with NDIGIT significant digits.\nOtherwise use exponential representation. The resulting string will\nbe written to BUF."] - pub fn gcvt( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Reentrant version of the functions above which provide their own\nbuffers."] - pub fn ecvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fcvt_r( - __value: f64, - __ndigit: ::std::os::raw::c_int, - __decpt: *mut ::std::os::raw::c_int, - __sign: *mut ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the multibyte character\nin S, which is no longer than N."] - pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the length of the given multibyte character,\nputting its `wchar_t' representation in *PWC."] - pub fn mbtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the multibyte character represented\nby WCHAR in S, returning its length."] - pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a multibyte string to a wide char string."] - pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize; -} -extern "C" { - #[doc = " Convert a wide char string to multibyte string."] - pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Determine whether the string value of RESPONSE matches the affirmation\nor negative response expression as specified by the LC_MESSAGES category\nin the program's current locale. Returns 1 if affirmative, 0 if\nnegative, and -1 if not matching."] - pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Parse comma separated suboption from *OPTIONP and match against\nstrings in TOKENS. If found return index and set *VALUEP to\noptional value introduced by an equal sign. If the suboption is\nnot part of TOKENS return in *VALUEP beginning of unknown\nsuboption. On exit *OPTIONP is set to the beginning of the next\ntoken or at the terminating NUL character."] - pub fn getsubopt( - __optionp: *mut *mut ::std::os::raw::c_char, - __tokens: *const *mut ::std::os::raw::c_char, - __valuep: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the 1 minute, 5 minute and 15 minute load averages into the first\nNELEM elements of LOADAVG. Return the number written (never more than\nthree, but may be less than NELEM), or -1 if an error occurred."] - pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -pub type useconds_t = __useconds_t; -pub type socklen_t = __socklen_t; -extern "C" { - #[doc = " Test for access to NAME using the real UID and real GID."] - pub fn access( - __name: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for access to FILE relative to the directory FD is open on.\nIf AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',\notherwise use real IDs like `access'."] - pub fn faccessat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __type: ::std::os::raw::c_int, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn lseek( - __fd: ::std::os::raw::c_int, - __offset: __off_t, - __whence: ::std::os::raw::c_int, - ) -> __off_t; -} -extern "C" { - #[doc = " Close the file descriptor FD.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Close all open file descriptors greater than or equal to LOWFD.\nNegative LOWFD is clamped to 0."] - pub fn closefrom(__lowfd: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD. Return the\nnumber read, -1 for errors or 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn read( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn write( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - ) -> isize; -} -extern "C" { - #[doc = " Read NBYTES into BUF from FD at the given position OFFSET without\nchanging the file pointer. Return the number read, -1 for errors\nor 0 for EOF.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pread( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __nbytes: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Write N bytes of BUF to FD at the given position OFFSET without\nchanging the file pointer. Return the number written, or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pwrite( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __offset: __off_t, - ) -> isize; -} -extern "C" { - #[doc = " Create a one-way communication channel (pipe).\nIf successful, two file descriptors are stored in PIPEDES;\nbytes written on PIPEDES[1] can be read from PIPEDES[0].\nReturns 0 if successful, -1 if not."] - pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.\nIf SECONDS is zero, any currently scheduled alarm will be cancelled.\nThe function returns the number of seconds remaining until the last\nalarm scheduled would have signaled, or zero if there wasn't one.\nThere is no return value to indicate an error, but you can set `errno'\nto 0 and check its value after calling `alarm', and this might tell you.\nThe signal may come late due to processor scheduling."] - pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Make the process sleep for SECONDS seconds, or until a signal arrives\nand is not ignored. The function returns the number of seconds less\nthan SECONDS which it actually slept (thus zero if it slept the full time).\nIf a signal handler does a `longjmp' or modifies the handling of the\nSIGALRM signal while inside `sleep' call, the handling of the SIGALRM\nsignal afterwards is undefined. There is no return value to indicate\nerror, but if `sleep' returns SECONDS, it probably didn't work.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint; -} -extern "C" { - #[doc = " Set an alarm to go off (generating a SIGALRM signal) in VALUE\nmicroseconds. If INTERVAL is nonzero, when the alarm goes off, the\ntimer is reset to go off every INTERVAL microseconds thereafter.\nReturns the number of microseconds remaining before the alarm."] - pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t; -} -extern "C" { - #[doc = " Sleep USECONDS microseconds, or until a signal arrives that is not blocked\nor ignored.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Suspend the process until a signal arrives.\nThis always returns -1 and sets `errno' to EINTR.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pause() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE."] - pub fn chown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of the file that FD is open on."] - pub fn fchown( - __fd: ::std::os::raw::c_int, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change owner and group of FILE, if it is a symbolic\nlink the ownership of the symbolic link is changed."] - pub fn lchown( - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the owner and group of FILE relative to the directory FD is open\non."] - pub fn fchownat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __owner: __uid_t, - __group: __gid_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to PATH."] - pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the process's working directory to the one FD is open on."] - pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the pathname of the current working directory,\nand put it in SIZE bytes of BUF. Returns NULL if the\ndirectory couldn't be determined or SIZE was too small.\nIf successful, returns BUF. In GNU, if BUF is NULL,\nan array is allocated with `malloc'; the array is SIZE\nbytes long, unless SIZE == 0, in which case it is as\nbig as necessary."] - pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize) - -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Put the absolute pathname of the current working directory in BUF.\nIf successful, return BUF. If not, put an error message in\nBUF and return NULL. BUF should be at least PATH_MAX bytes long."] - pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Duplicate FD, returning a new file descriptor on the same file."] - pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Duplicate FD to FD2, closing FD2 and making it open on the same file."] - pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " NULL-terminated array of \"NAME=VALUE\" environment variables."] - pub static mut __environ: *mut *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Replace the current process, executing PATH with arguments ARGV and\nenvironment ENVP. ARGV and ENVP are terminated by NULL pointers."] - pub fn execve( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute the file FD refers to, overlaying the running program image.\nARGV and ENVP are passed to the new program, as for `execve'."] - pub fn fexecve( - __fd: ::std::os::raw::c_int, - __argv: *const *mut ::std::os::raw::c_char, - __envp: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with arguments ARGV and environment from `environ'."] - pub fn execv( - __path: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until a NULL pointer,\nand the argument after that for environment."] - pub fn execle( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute PATH with all arguments after PATH until\na NULL pointer and environment from `environ'."] - pub fn execl( - __path: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if it contains\nno slashes, with arguments ARGV and environment from `environ'."] - pub fn execvp( - __file: *const ::std::os::raw::c_char, - __argv: *const *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Execute FILE, searching in the `PATH' environment variable if\nit contains no slashes, with all arguments after FILE until a\nNULL pointer and environment from `environ'."] - pub fn execlp( - __file: *const ::std::os::raw::c_char, - __arg: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add INC to priority of the current process."] - pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate program execution with the low-order 8 bits of STATUS."] - pub fn _exit(__status: ::std::os::raw::c_int) -> !; -} -pub const _PC_LINK_MAX: _bindgen_ty_1 = 0; -pub const _PC_MAX_CANON: _bindgen_ty_1 = 1; -pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2; -pub const _PC_NAME_MAX: _bindgen_ty_1 = 3; -pub const _PC_PATH_MAX: _bindgen_ty_1 = 4; -pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5; -pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6; -pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7; -pub const _PC_VDISABLE: _bindgen_ty_1 = 8; -pub const _PC_SYNC_IO: _bindgen_ty_1 = 9; -pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10; -pub const _PC_PRIO_IO: _bindgen_ty_1 = 11; -pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12; -pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13; -pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14; -pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15; -pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16; -pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17; -pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18; -pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19; -pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20; -#[doc = " Values for the NAME argument to `pathconf' and `fpathconf'."] -pub type _bindgen_ty_1 = ::std::os::raw::c_uint; -pub const _SC_ARG_MAX: _bindgen_ty_2 = 0; -pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1; -pub const _SC_CLK_TCK: _bindgen_ty_2 = 2; -pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3; -pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4; -pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5; -pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6; -pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7; -pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8; -pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9; -pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10; -pub const _SC_TIMERS: _bindgen_ty_2 = 11; -pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12; -pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13; -pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14; -pub const _SC_FSYNC: _bindgen_ty_2 = 15; -pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16; -pub const _SC_MEMLOCK: _bindgen_ty_2 = 17; -pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18; -pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19; -pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20; -pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22; -pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23; -pub const _SC_AIO_MAX: _bindgen_ty_2 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25; -pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26; -pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27; -pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28; -pub const _SC_VERSION: _bindgen_ty_2 = 29; -pub const _SC_PAGESIZE: _bindgen_ty_2 = 30; -pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31; -pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32; -pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33; -pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34; -pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35; -#[doc = " Values for the argument to `sysconf'\ncorresponding to _POSIX2_* symbols."] -pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36; -pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37; -pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38; -pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39; -pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40; -pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41; -pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42; -pub const _SC_LINE_MAX: _bindgen_ty_2 = 43; -pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44; -pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45; -pub const _SC_2_VERSION: _bindgen_ty_2 = 46; -pub const _SC_2_C_BIND: _bindgen_ty_2 = 47; -pub const _SC_2_C_DEV: _bindgen_ty_2 = 48; -pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49; -pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50; -pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51; -pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52; -pub const _SC_PII: _bindgen_ty_2 = 53; -pub const _SC_PII_XTI: _bindgen_ty_2 = 54; -pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55; -pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56; -pub const _SC_PII_OSI: _bindgen_ty_2 = 57; -pub const _SC_POLL: _bindgen_ty_2 = 58; -pub const _SC_SELECT: _bindgen_ty_2 = 59; -pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60; -pub const _SC_IOV_MAX: _bindgen_ty_2 = 60; -pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61; -pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62; -pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63; -pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64; -pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65; -pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66; -#[doc = " Values according to POSIX 1003.1c (POSIX threads)."] -pub const _SC_THREADS: _bindgen_ty_2 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68; -pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69; -pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70; -pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71; -pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73; -pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74; -pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75; -pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79; -pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80; -pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81; -pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82; -pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83; -pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84; -pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85; -pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86; -pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87; -pub const _SC_PASS_MAX: _bindgen_ty_2 = 88; -pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89; -pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90; -pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91; -pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92; -pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93; -pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94; -pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95; -pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96; -pub const _SC_2_UPE: _bindgen_ty_2 = 97; -pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98; -pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99; -pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100; -pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101; -pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102; -pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103; -pub const _SC_INT_MAX: _bindgen_ty_2 = 104; -pub const _SC_INT_MIN: _bindgen_ty_2 = 105; -pub const _SC_LONG_BIT: _bindgen_ty_2 = 106; -pub const _SC_WORD_BIT: _bindgen_ty_2 = 107; -pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108; -pub const _SC_NZERO: _bindgen_ty_2 = 109; -pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110; -pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111; -pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112; -pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113; -pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114; -pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115; -pub const _SC_UINT_MAX: _bindgen_ty_2 = 116; -pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117; -pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118; -pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119; -pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120; -pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121; -pub const _SC_NL_NMAX: _bindgen_ty_2 = 122; -pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123; -pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124; -pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126; -pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128; -pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129; -pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131; -pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132; -pub const _SC_BARRIERS: _bindgen_ty_2 = 133; -pub const _SC_BASE: _bindgen_ty_2 = 134; -pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135; -pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136; -pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137; -pub const _SC_CPUTIME: _bindgen_ty_2 = 138; -pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139; -pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140; -pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141; -pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142; -pub const _SC_FD_MGMT: _bindgen_ty_2 = 143; -pub const _SC_FIFO: _bindgen_ty_2 = 144; -pub const _SC_PIPE: _bindgen_ty_2 = 145; -pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146; -pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147; -pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148; -pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149; -pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150; -pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151; -pub const _SC_NETWORKING: _bindgen_ty_2 = 152; -pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153; -pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154; -pub const _SC_REGEXP: _bindgen_ty_2 = 155; -pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156; -pub const _SC_SHELL: _bindgen_ty_2 = 157; -pub const _SC_SIGNALS: _bindgen_ty_2 = 158; -pub const _SC_SPAWN: _bindgen_ty_2 = 159; -pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161; -pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162; -pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163; -pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165; -pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166; -pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167; -pub const _SC_2_PBS: _bindgen_ty_2 = 168; -pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169; -pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170; -pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171; -pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172; -pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173; -pub const _SC_STREAMS: _bindgen_ty_2 = 174; -pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175; -pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176; -pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177; -pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178; -pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179; -pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180; -pub const _SC_TRACE: _bindgen_ty_2 = 181; -pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182; -pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183; -pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184; -pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185; -pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186; -pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187; -pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188; -pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189; -pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190; -pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191; -pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192; -pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193; -pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194; -pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195; -pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196; -pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197; -pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198; -pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199; -#[doc = " Leave room here, maybe we need a few more cache levels some day."] -pub const _SC_IPV6: _bindgen_ty_2 = 235; -pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236; -pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237; -pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238; -pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239; -pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240; -pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242; -pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243; -pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245; -pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248; -pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249; -pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250; -#[doc = " Values for the argument to `sysconf'."] -pub type _bindgen_ty_2 = ::std::os::raw::c_uint; -#[doc = " The default search path."] -pub const _CS_PATH: _bindgen_ty_3 = 0; -pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1; -pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2; -pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3; -pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4; -pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5; -pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000; -pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001; -pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002; -pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003; -pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004; -pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005; -pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006; -pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007; -pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100; -pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101; -pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102; -pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103; -pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104; -pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105; -pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106; -pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107; -pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108; -pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109; -pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110; -pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111; -pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112; -pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113; -pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114; -pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115; -pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116; -pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117; -pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118; -pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119; -pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122; -pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123; -pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124; -pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125; -pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126; -pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130; -pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131; -pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132; -pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133; -pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134; -pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135; -pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138; -pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139; -pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140; -pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141; -pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142; -pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146; -pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147; -pub const _CS_V6_ENV: _bindgen_ty_3 = 1148; -pub const _CS_V7_ENV: _bindgen_ty_3 = 1149; -#[doc = " Values for the NAME argument to `confstr'."] -pub type _bindgen_ty_3 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Get file-specific configuration information about PATH."] - pub fn pathconf( - __path: *const ::std::os::raw::c_char, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get file-specific configuration about descriptor FD."] - pub fn fpathconf( - __fd: ::std::os::raw::c_int, - __name: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the system variable NAME."] - pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Get the value of the string-valued system variable NAME."] - pub fn confstr( - __name: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> usize; -} -extern "C" { - #[doc = " Get the process ID of the calling process."] - pub fn getpid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process ID of the calling process's parent."] - pub fn getppid() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of the calling process."] - pub fn getpgrp() -> __pid_t; -} -extern "C" { - #[doc = " Get the process group ID of process PID."] - pub fn __getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - pub fn getpgid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Set the process group ID of the process matching PID to PGID.\nIf PID is zero, the current process's process group ID is set.\nIf PGID is zero, the process ID of the process is used."] - pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process group ID of the calling process to its own PID.\nThis is exactly the same as `setpgid (0, 0)'."] - pub fn setpgrp() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new session with the calling process as its leader.\nThe process group IDs of the session and the calling process\nare set to the process ID of the calling process, which is returned."] - pub fn setsid() -> __pid_t; -} -extern "C" { - #[doc = " Return the session ID of the given process."] - pub fn getsid(__pid: __pid_t) -> __pid_t; -} -extern "C" { - #[doc = " Get the real user ID of the calling process."] - pub fn getuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the effective user ID of the calling process."] - pub fn geteuid() -> __uid_t; -} -extern "C" { - #[doc = " Get the real group ID of the calling process."] - pub fn getgid() -> __gid_t; -} -extern "C" { - #[doc = " Get the effective group ID of the calling process."] - pub fn getegid() -> __gid_t; -} -extern "C" { - #[doc = " If SIZE is zero, return the number of supplementary groups\nthe calling process is in. Otherwise, fill in the group IDs\nof its supplementary groups in LIST and return the number written."] - pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the user ID of the calling process to UID.\nIf the calling process is the super-user, set the real\nand effective user IDs, and the saved set-user-ID to UID;\nif not, the effective user ID is set to UID."] - pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real user ID of the calling process to RUID,\nand the effective user ID of the calling process to EUID."] - pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective user ID of the calling process to UID."] - pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the group ID of the calling process to GID.\nIf the calling process is the super-user, set the real\nand effective group IDs, and the saved set-group-ID to GID;\nif not, the effective group ID is set to GID."] - pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the real group ID of the calling process to RGID,\nand the effective group ID of the calling process to EGID."] - pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the effective group ID of the calling process to GID."] - pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Clone the calling process, creating an exact copy.\nReturn -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn fork() -> __pid_t; -} -extern "C" { - #[doc = " Clone the calling process, but without copying the whole address space.\nThe calling process is suspended until the new process exits or is\nreplaced by a call to `execve'. Return -1 for errors, 0 to the new process,\nand the process ID of the new process to the old process."] - pub fn vfork() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the pathname of the terminal FD is open on, or NULL on errors.\nThe returned storage is good only until the next call to this function."] - pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Store at most BUFLEN characters of the pathname of the terminal FD is\nopen on in BUF. Return 0 on success, otherwise an error number."] - pub fn ttyname_r( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_char, - __buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if FD is a valid descriptor associated\nwith a terminal, zero if not."] - pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the index into the active-logins file (utmp) for\nthe controlling terminal."] - pub fn ttyslot() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a link to FROM named TO."] - pub fn link( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like link but relative paths in TO and FROM are interpreted relative\nto FROMFD and TOFD respectively."] - pub fn linkat( - __fromfd: ::std::os::raw::c_int, - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make a symbolic link to FROM named TO."] - pub fn symlink( - __from: *const ::std::os::raw::c_char, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read the contents of the symbolic link PATH into no more than\nLEN bytes of BUF. The contents are not null-terminated.\nReturns the number of characters read, or -1 for errors."] - pub fn readlink( - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Like symlink but a relative path in TO is interpreted relative to TOFD."] - pub fn symlinkat( - __from: *const ::std::os::raw::c_char, - __tofd: ::std::os::raw::c_int, - __to: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like readlink but a relative PATH is interpreted relative to FD."] - pub fn readlinkat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __buf: *mut ::std::os::raw::c_char, - __len: usize, - ) -> isize; -} -extern "C" { - #[doc = " Remove the link NAME."] - pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the link NAME relative to FD."] - pub fn unlinkat( - __fd: ::std::os::raw::c_int, - __name: *const ::std::os::raw::c_char, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the directory PATH."] - pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the foreground process group ID of FD."] - pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t; -} -extern "C" { - #[doc = " Set the foreground process group ID of FD set PGRP_ID."] - pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the login name of the user.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin() -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return at most NAME_LEN characters of the login name of the user in NAME.\nIf it cannot be determined or some other error occurred, return the error\ncode. Otherwise return 0.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getlogin_r( - __name: *mut ::std::os::raw::c_char, - __name_len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the login name returned by `getlogin'."] - pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " For communication from 'getopt' to the caller.\nWhen 'getopt' finds an option that takes an argument,\nthe argument value is returned here.\nAlso, when 'ordering' is RETURN_IN_ORDER,\neach non-option ARGV-element is returned here."] - pub static mut optarg: *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Index in ARGV of the next element to be scanned.\nThis is used for communication to and from the caller\nand for communication between successive calls to 'getopt'.\n\nOn entry to 'getopt', zero means this is the first call; initialize.\n\nWhen 'getopt' returns -1, this is the index of the first of the\nnon-option elements that the caller should itself scan.\n\nOtherwise, 'optind' communicates from one call to the next\nhow much of ARGV has been scanned so far."] - pub static mut optind: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Callers store zero here to inhibit the error message 'getopt' prints\nfor unrecognized options."] - pub static mut opterr: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set to an option character which was unrecognized."] - pub static mut optopt: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get definitions and prototypes for functions to process the\narguments in ARGV (ARGC of them, minus the program name) for\noptions given in OPTS.\n\nReturn the option character from OPTS just read. Return -1 when\nthere are no more options. For unrecognized options, or options\nmissing arguments, 'optopt' is set to the option letter, and '?' is\nreturned.\n\nThe OPTS string is a list of characters which are recognized option\nletters, optionally followed by colons, specifying that that letter\ntakes an argument, to be placed in 'optarg'.\n\nIf a letter in OPTS is followed by two colons, its argument is\noptional. This behavior is specific to the GNU 'getopt'.\n\nThe argument '--' causes premature termination of argument\nscanning, explicitly telling 'getopt' that there are no more\noptions.\n\nIf OPTS begins with '-', then non-option arguments are treated as\narguments to the option '\\1'. This behavior is specific to the GNU\n'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in\nthe environment, then do not permute arguments.\n\nFor standards compliance, the 'argv' argument has the type\nchar *const *, but this is inaccurate; if argument permutation is\nenabled, the argv array (not the strings it points to) must be\nwritable."] - pub fn getopt( - ___argc: ::std::os::raw::c_int, - ___argv: *const *mut ::std::os::raw::c_char, - __shortopts: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the name of the current host in no more than LEN bytes of NAME.\nThe result is null-terminated if LEN is large enough for the full\nname and the terminator."] - pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the name of the current host to NAME, which is LEN bytes long.\nThis call is restricted to the super-user."] - pub fn sethostname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current machine's Internet number to ID.\nThis call is restricted to the super-user."] - pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get and set the NIS (aka YP) domain name, if any.\nCalled just like `gethostname' and `sethostname'.\nThe NIS domain name is usually the empty string when not using NIS."] - pub fn getdomainname( - __name: *mut ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setdomainname( - __name: *const ::std::os::raw::c_char, - __len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke access permissions to all processes currently communicating\nwith the control terminal, and then send a SIGHUP signal to the process\ngroup of the control terminal."] - pub fn vhangup() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Revoke the access of all descriptors currently open on FILE."] - pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Enable statistical profiling, writing samples of the PC into at most\nSIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling\nis enabled, the system examines the user PC and increments\nSAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero,\ndisable profiling. Returns zero on success, -1 on error."] - pub fn profil( - __sample_buffer: *mut ::std::os::raw::c_ushort, - __size: usize, - __offset: usize, - __scale: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Turn accounting on if NAME is an existing file. The system will then write\na record for each process as it terminates, to this file. If NAME is NULL,\nturn accounting off. This call is restricted to the super-user."] - pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Successive calls return the shells listed in `/etc/shells'."] - pub fn getusershell() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn endusershell(); -} -extern "C" { - pub fn setusershell(); -} -extern "C" { - #[doc = " Put the program in the background, and dissociate from the controlling\nterminal. If NOCHDIR is zero, do `chdir (\"/\")'. If NOCLOSE is zero,\nredirects stdin, stdout, and stderr to /dev/null."] - pub fn daemon( - __nochdir: ::std::os::raw::c_int, - __noclose: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Make PATH be the root directory (the starting point for absolute paths).\nThis call is restricted to the super-user."] - pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prompt with PROMPT and read a string from the terminal without echoing.\nUses /dev/tty if possible; otherwise stderr and stdin."] - pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Make all changes done to FD actually appear on disk.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return identifier for the current host."] - pub fn gethostid() -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Make all changes done to all files actually appear on disk."] - pub fn sync(); -} -extern "C" { - #[doc = " Return the number of bytes in a page. This is the system's page size,\nwhich is not necessarily the same as the hardware page size."] - pub fn getpagesize() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the maximum number of file descriptors\nthe current process could possibly have."] - pub fn getdtablesize() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn truncate( - __file: *const ::std::os::raw::c_char, - __length: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the end of accessible data space (aka \"the break\") to ADDR.\nReturns zero on success and -1 for errors (with errno set)."] - pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Increase or decrease the end of accessible data space by DELTA bytes.\nIf successful, returns the address the previous end of data space\n(i.e. the beginning of the new space, if DELTA > 0);\nreturns (void *) -1 for errors (with errno set)."] - pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Invoke `system call' number SYSNO, passing it the remaining arguments.\nThis is completely system-dependent, and not often useful.\n\nIn Unix, `syscall' sets `errno' for all errors and most calls return -1\nfor errors; in many systems you cannot pass arguments or get return\nvalues for all system calls (`pipe', `fork', and `getppid' typically\namong them).\n\nIn Mach, all system calls take normal arguments and always return an\nerror code (zero for success)."] - pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn lockf( - __fd: ::std::os::raw::c_int, - __cmd: ::std::os::raw::c_int, - __len: __off_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Synchronize at least the data part of a file with the underlying\nmedia."] - pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " One-way hash PHRASE, returning a string suitable for storage in the\nuser database. SALT selects the one-way function to use, and\nensures that no two users' hashes are the same, even if they use\nthe same passphrase. The return value points to static storage\nwhich will be overwritten by the next call to crypt."] - pub fn crypt( - __key: *const ::std::os::raw::c_char, - __salt: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Write LENGTH bytes of randomness starting at BUFFER. Return 0 on\nsuccess or -1 on error."] - pub fn getentropy( - __buffer: *mut ::std::os::raw::c_void, - __length: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This prints an \"Assertion failed\" message and aborts."] - pub fn __assert_fail( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Likewise, but prints the error text for ERRNUM."] - pub fn __assert_perror_fail( - __errnum: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_uint, - __function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " The following is not at all used here but needed for standard\ncompliance."] - pub fn __assert( - __assertion: *const ::std::os::raw::c_char, - __file: *const ::std::os::raw::c_char, - __line: ::std::os::raw::c_int, - ) -> !; -} -#[doc = " Signed."] -pub type int_least8_t = __int_least8_t; -pub type int_least16_t = __int_least16_t; -pub type int_least32_t = __int_least32_t; -pub type int_least64_t = __int_least64_t; -#[doc = " Unsigned."] -pub type uint_least8_t = __uint_least8_t; -pub type uint_least16_t = __uint_least16_t; -pub type uint_least32_t = __uint_least32_t; -pub type uint_least64_t = __uint_least64_t; -#[doc = " Signed."] -pub type int_fast8_t = ::std::os::raw::c_schar; -pub type int_fast16_t = ::std::os::raw::c_long; -pub type int_fast32_t = ::std::os::raw::c_long; -pub type int_fast64_t = ::std::os::raw::c_long; -#[doc = " Unsigned."] -pub type uint_fast8_t = ::std::os::raw::c_uchar; -pub type uint_fast16_t = ::std::os::raw::c_ulong; -pub type uint_fast32_t = ::std::os::raw::c_ulong; -pub type uint_fast64_t = ::std::os::raw::c_ulong; -#[doc = " Largest integral types."] -pub type intmax_t = __intmax_t; -pub type uintmax_t = __uintmax_t; -pub type __gwchar_t = ::std::os::raw::c_int; -#[doc = " We have to define the `uintmax_t' type using `ldiv_t'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct imaxdiv_t { - #[doc = " Quotient."] - pub quot: ::std::os::raw::c_long, - #[doc = " Remainder."] - pub rem: ::std::os::raw::c_long, -} -#[test] -fn bindgen_test_layout_imaxdiv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(imaxdiv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(imaxdiv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(quot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(imaxdiv_t), - "::", - stringify!(rem) - ) - ); -} -extern "C" { - #[doc = " Compute absolute value of N."] - pub fn imaxabs(__n: intmax_t) -> intmax_t; -} -extern "C" { - #[doc = " Return the `imaxdiv_t' representation of the value of NUMER over DENOM."] - pub fn imaxdiv(__numer: intmax_t, __denom: intmax_t) -> imaxdiv_t; -} -extern "C" { - #[doc = " Like `strtol' but convert to `intmax_t'."] - pub fn strtoimax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `strtoul' but convert to `uintmax_t'."] - pub fn strtoumax( - __nptr: *const ::std::os::raw::c_char, - __endptr: *mut *mut ::std::os::raw::c_char, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -extern "C" { - #[doc = " Like `wcstol' but convert to `intmax_t'."] - pub fn wcstoimax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> intmax_t; -} -extern "C" { - #[doc = " Like `wcstoul' but convert to `uintmax_t'."] - pub fn wcstoumax( - __nptr: *const __gwchar_t, - __endptr: *mut *mut __gwchar_t, - __base: ::std::os::raw::c_int, - ) -> uintmax_t; -} -#[doc = " uintptr_t is the C9X name for an unsigned integral type such that a\n legitimate void* can be cast to uintptr_t and then back to void* again\n without loss of information. Similarly for intptr_t, wrt a signed\n integral type."] -pub type Py_uintptr_t = usize; -pub type Py_intptr_t = isize; -pub type Py_ssize_t = isize; -pub type Py_hash_t = Py_ssize_t; -pub type Py_uhash_t = usize; -pub type Py_ssize_clean_t = ::std::os::raw::c_int; -pub type float_t = f32; -pub type double_t = f64; -extern "C" { - pub fn __fpclassify(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbit(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsig(__x: f64, __y: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignaling(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acos(__x: f64) -> f64; -} -extern "C" { - pub fn __acos(__x: f64) -> f64; -} -extern "C" { - pub fn asin(__x: f64) -> f64; -} -extern "C" { - pub fn __asin(__x: f64) -> f64; -} -extern "C" { - pub fn atan(__x: f64) -> f64; -} -extern "C" { - pub fn __atan(__x: f64) -> f64; -} -extern "C" { - pub fn atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn __atan2(__y: f64, __x: f64) -> f64; -} -extern "C" { - pub fn cos(__x: f64) -> f64; -} -extern "C" { - pub fn __cos(__x: f64) -> f64; -} -extern "C" { - pub fn sin(__x: f64) -> f64; -} -extern "C" { - pub fn __sin(__x: f64) -> f64; -} -extern "C" { - pub fn tan(__x: f64) -> f64; -} -extern "C" { - pub fn __tan(__x: f64) -> f64; -} -extern "C" { - pub fn cosh(__x: f64) -> f64; -} -extern "C" { - pub fn __cosh(__x: f64) -> f64; -} -extern "C" { - pub fn sinh(__x: f64) -> f64; -} -extern "C" { - pub fn __sinh(__x: f64) -> f64; -} -extern "C" { - pub fn tanh(__x: f64) -> f64; -} -extern "C" { - pub fn __tanh(__x: f64) -> f64; -} -extern "C" { - pub fn acosh(__x: f64) -> f64; -} -extern "C" { - pub fn __acosh(__x: f64) -> f64; -} -extern "C" { - pub fn asinh(__x: f64) -> f64; -} -extern "C" { - pub fn __asinh(__x: f64) -> f64; -} -extern "C" { - pub fn atanh(__x: f64) -> f64; -} -extern "C" { - pub fn __atanh(__x: f64) -> f64; -} -extern "C" { - pub fn exp(__x: f64) -> f64; -} -extern "C" { - pub fn __exp(__x: f64) -> f64; -} -extern "C" { - pub fn frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __frexp(__x: f64, __exponent: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __ldexp(__x: f64, __exponent: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn log(__x: f64) -> f64; -} -extern "C" { - pub fn __log(__x: f64) -> f64; -} -extern "C" { - pub fn log10(__x: f64) -> f64; -} -extern "C" { - pub fn __log10(__x: f64) -> f64; -} -extern "C" { - pub fn modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn __modf(__x: f64, __iptr: *mut f64) -> f64; -} -extern "C" { - pub fn expm1(__x: f64) -> f64; -} -extern "C" { - pub fn __expm1(__x: f64) -> f64; -} -extern "C" { - pub fn log1p(__x: f64) -> f64; -} -extern "C" { - pub fn __log1p(__x: f64) -> f64; -} -extern "C" { - pub fn logb(__x: f64) -> f64; -} -extern "C" { - pub fn __logb(__x: f64) -> f64; -} -extern "C" { - pub fn exp2(__x: f64) -> f64; -} -extern "C" { - pub fn __exp2(__x: f64) -> f64; -} -extern "C" { - pub fn log2(__x: f64) -> f64; -} -extern "C" { - pub fn __log2(__x: f64) -> f64; -} -extern "C" { - pub fn pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __pow(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn __sqrt(__x: f64) -> f64; -} -extern "C" { - pub fn hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __hypot(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn __cbrt(__x: f64) -> f64; -} -extern "C" { - pub fn ceil(__x: f64) -> f64; -} -extern "C" { - pub fn __ceil(__x: f64) -> f64; -} -extern "C" { - pub fn fabs(__x: f64) -> f64; -} -extern "C" { - pub fn __fabs(__x: f64) -> f64; -} -extern "C" { - pub fn floor(__x: f64) -> f64; -} -extern "C" { - pub fn __floor(__x: f64) -> f64; -} -extern "C" { - pub fn fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmod(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn isinf(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finite(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __drem(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn significand(__x: f64) -> f64; -} -extern "C" { - pub fn __significand(__x: f64) -> f64; -} -extern "C" { - pub fn copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __copysign(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn __nan(__tagb: *const ::std::os::raw::c_char) -> f64; -} -extern "C" { - pub fn isnan(__value: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0(arg1: f64) -> f64; -} -extern "C" { - pub fn __j0(arg1: f64) -> f64; -} -extern "C" { - pub fn j1(arg1: f64) -> f64; -} -extern "C" { - pub fn __j1(arg1: f64) -> f64; -} -extern "C" { - pub fn jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __jn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn y0(arg1: f64) -> f64; -} -extern "C" { - pub fn __y0(arg1: f64) -> f64; -} -extern "C" { - pub fn y1(arg1: f64) -> f64; -} -extern "C" { - pub fn __y1(arg1: f64) -> f64; -} -extern "C" { - pub fn yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn __yn(arg1: ::std::os::raw::c_int, arg2: f64) -> f64; -} -extern "C" { - pub fn erf(arg1: f64) -> f64; -} -extern "C" { - pub fn __erf(arg1: f64) -> f64; -} -extern "C" { - pub fn erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn __erfc(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __lgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __tgamma(arg1: f64) -> f64; -} -extern "C" { - pub fn gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn __gamma(arg1: f64) -> f64; -} -extern "C" { - pub fn lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __lgamma_r(arg1: f64, __signgamp: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn rint(__x: f64) -> f64; -} -extern "C" { - pub fn __rint(__x: f64) -> f64; -} -extern "C" { - pub fn nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __nextafter(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __remainder(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __scalbn(__x: f64, __n: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogb(__x: f64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn __scalbln(__x: f64, __n: ::std::os::raw::c_long) -> f64; -} -extern "C" { - pub fn nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn __nearbyint(__x: f64) -> f64; -} -extern "C" { - pub fn round(__x: f64) -> f64; -} -extern "C" { - pub fn __round(__x: f64) -> f64; -} -extern "C" { - pub fn trunc(__x: f64) -> f64; -} -extern "C" { - pub fn __trunc(__x: f64) -> f64; -} -extern "C" { - pub fn remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn __remquo(__x: f64, __y: f64, __quo: *mut ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrint(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrint(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lround(__x: f64) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llround(__x: f64) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fdim(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmax(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn __fmin(__x: f64, __y: f64) -> f64; -} -extern "C" { - pub fn fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn __fma(__x: f64, __y: f64, __z: f64) -> f64; -} -extern "C" { - pub fn scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __scalb(__x: f64, __n: f64) -> f64; -} -extern "C" { - pub fn __fpclassifyf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __signbitf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __iseqsigf(__x: f32, __y: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __issignalingf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn acosf(__x: f32) -> f32; -} -extern "C" { - pub fn __acosf(__x: f32) -> f32; -} -extern "C" { - pub fn asinf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinf(__x: f32) -> f32; -} -extern "C" { - pub fn atanf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanf(__x: f32) -> f32; -} -extern "C" { - pub fn atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn __atan2f(__y: f32, __x: f32) -> f32; -} -extern "C" { - pub fn cosf(__x: f32) -> f32; -} -extern "C" { - pub fn __cosf(__x: f32) -> f32; -} -extern "C" { - pub fn sinf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinf(__x: f32) -> f32; -} -extern "C" { - pub fn tanf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanf(__x: f32) -> f32; -} -extern "C" { - pub fn coshf(__x: f32) -> f32; -} -extern "C" { - pub fn __coshf(__x: f32) -> f32; -} -extern "C" { - pub fn sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __sinhf(__x: f32) -> f32; -} -extern "C" { - pub fn tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __tanhf(__x: f32) -> f32; -} -extern "C" { - pub fn acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn __acoshf(__x: f32) -> f32; -} -extern "C" { - pub fn asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn __asinhf(__x: f32) -> f32; -} -extern "C" { - pub fn atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn __atanhf(__x: f32) -> f32; -} -extern "C" { - pub fn expf(__x: f32) -> f32; -} -extern "C" { - pub fn __expf(__x: f32) -> f32; -} -extern "C" { - pub fn frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __frexpf(__x: f32, __exponent: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __ldexpf(__x: f32, __exponent: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn logf(__x: f32) -> f32; -} -extern "C" { - pub fn __logf(__x: f32) -> f32; -} -extern "C" { - pub fn log10f(__x: f32) -> f32; -} -extern "C" { - pub fn __log10f(__x: f32) -> f32; -} -extern "C" { - pub fn modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn __modff(__x: f32, __iptr: *mut f32) -> f32; -} -extern "C" { - pub fn expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn __expm1f(__x: f32) -> f32; -} -extern "C" { - pub fn log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn __log1pf(__x: f32) -> f32; -} -extern "C" { - pub fn logbf(__x: f32) -> f32; -} -extern "C" { - pub fn __logbf(__x: f32) -> f32; -} -extern "C" { - pub fn exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn __exp2f(__x: f32) -> f32; -} -extern "C" { - pub fn log2f(__x: f32) -> f32; -} -extern "C" { - pub fn __log2f(__x: f32) -> f32; -} -extern "C" { - pub fn powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __powf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __sqrtf(__x: f32) -> f32; -} -extern "C" { - pub fn hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __hypotf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn __cbrtf(__x: f32) -> f32; -} -extern "C" { - pub fn ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn __ceilf(__x: f32) -> f32; -} -extern "C" { - pub fn fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn __fabsf(__x: f32) -> f32; -} -extern "C" { - pub fn floorf(__x: f32) -> f32; -} -extern "C" { - pub fn __floorf(__x: f32) -> f32; -} -extern "C" { - pub fn fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmodf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn isinff(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn finitef(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __dremf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn significandf(__x: f32) -> f32; -} -extern "C" { - pub fn __significandf(__x: f32) -> f32; -} -extern "C" { - pub fn copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __copysignf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn __nanf(__tagb: *const ::std::os::raw::c_char) -> f32; -} -extern "C" { - pub fn isnanf(__value: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j0f(arg1: f32) -> f32; -} -extern "C" { - pub fn j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __j1f(arg1: f32) -> f32; -} -extern "C" { - pub fn jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __jnf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y0f(arg1: f32) -> f32; -} -extern "C" { - pub fn y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn __y1f(arg1: f32) -> f32; -} -extern "C" { - pub fn ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn __ynf(arg1: ::std::os::raw::c_int, arg2: f32) -> f32; -} -extern "C" { - pub fn erff(arg1: f32) -> f32; -} -extern "C" { - pub fn __erff(arg1: f32) -> f32; -} -extern "C" { - pub fn erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn __erfcf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __lgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __tgammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn __gammaf(arg1: f32) -> f32; -} -extern "C" { - pub fn lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __lgammaf_r(arg1: f32, __signgamp: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn rintf(__x: f32) -> f32; -} -extern "C" { - pub fn __rintf(__x: f32) -> f32; -} -extern "C" { - pub fn nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __nextafterf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __remainderf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __scalbnf(__x: f32, __n: ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __ilogbf(__x: f32) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn __scalblnf(__x: f32, __n: ::std::os::raw::c_long) -> f32; -} -extern "C" { - pub fn nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn __nearbyintf(__x: f32) -> f32; -} -extern "C" { - pub fn roundf(__x: f32) -> f32; -} -extern "C" { - pub fn __roundf(__x: f32) -> f32; -} -extern "C" { - pub fn truncf(__x: f32) -> f32; -} -extern "C" { - pub fn __truncf(__x: f32) -> f32; -} -extern "C" { - pub fn remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn __remquof(__x: f32, __y: f32, __quo: *mut ::std::os::raw::c_int) -> f32; -} -extern "C" { - pub fn lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lrintf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llrintf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn __lroundf(__x: f32) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn __llroundf(__x: f32) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fdimf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fmaxf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn __fminf(__x: f32, __y: f32) -> f32; -} -extern "C" { - pub fn fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn __fmaf(__x: f32, __y: f32, __z: f32) -> f32; -} -extern "C" { - pub fn scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - pub fn __scalbf(__x: f32, __n: f32) -> f32; -} -extern "C" { - #[doc = " This variable is used by `gamma' and `lgamma'."] - pub static mut signgam: ::std::os::raw::c_int; -} -pub const FP_NAN: _bindgen_ty_4 = 0; -pub const FP_INFINITE: _bindgen_ty_4 = 1; -pub const FP_ZERO: _bindgen_ty_4 = 2; -pub const FP_SUBNORMAL: _bindgen_ty_4 = 3; -pub const FP_NORMAL: _bindgen_ty_4 = 4; -#[doc = " All floating-point numbers can be put in one of these categories."] -pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -#[doc = " Structure crudely representing a timezone.\nThis is obsolete and should never be used."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timezone { - #[doc = " Minutes west of GMT."] - pub tz_minuteswest: ::std::os::raw::c_int, - #[doc = " Nonzero if DST is ever in effect."] - pub tz_dsttime: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_timezone() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timezone)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(timezone)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_minuteswest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_minuteswest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tz_dsttime) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(timezone), - "::", - stringify!(tz_dsttime) - ) - ); -} -extern "C" { - pub fn gettimeofday( - __tv: *mut timeval, - __tz: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the current time of day and timezone information.\nThis call is restricted to the super-user.\nSetting the timezone in this way is obsolete, but we don't yet\nwarn about it because it still has some uses for which there is\nno alternative."] - pub fn settimeofday(__tv: *const timeval, __tz: *const timezone) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Adjust the current time of day by the amount in DELTA.\nIf OLDDELTA is not NULL, it is filled in with the amount\nof time adjustment remaining to be done from the last `adjtime' call.\nThis call is restricted to the super-user."] - pub fn adjtime(__delta: *const timeval, __olddelta: *mut timeval) -> ::std::os::raw::c_int; -} -#[doc = " Timers run in real time."] -pub const __itimer_which_ITIMER_REAL: __itimer_which = 0; -#[doc = " Timers run only when the process is executing."] -pub const __itimer_which_ITIMER_VIRTUAL: __itimer_which = 1; -#[doc = " Timers run when the process is executing and when\nthe system is executing on behalf of the process."] -pub const __itimer_which_ITIMER_PROF: __itimer_which = 2; -#[doc = " Values for the first argument to `getitimer' and `setitimer'."] -pub type __itimer_which = ::std::os::raw::c_uint; -#[doc = " Type of the second argument to `getitimer' and\nthe second and third arguments `setitimer'."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerval { - #[doc = " Value to put into `it_value' when the timer expires."] - pub it_interval: timeval, - #[doc = " Time to the next timer expiration."] - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -pub type __itimer_which_t = ::std::os::raw::c_int; -extern "C" { - #[doc = " Set *VALUE to the current setting of timer WHICH.\nReturn 0 on success, -1 on errors."] - pub fn getitimer(__which: __itimer_which_t, __value: *mut itimerval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the timer WHICH to *NEW. If OLD is not NULL,\nset *OLD to the old value of timer WHICH.\nReturns 0 on success, -1 on errors."] - pub fn setitimer( - __which: __itimer_which_t, - __new: *const itimerval, - __old: *mut itimerval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Change the access time of FILE to TVP[0] and the modification time of\nFILE to TVP[1]. If TVP is a null pointer, use the current time instead.\nReturns 0 on success, -1 on errors."] - pub fn utimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but does not follow symbolic links."] - pub fn lutimes( - __file: *const ::std::os::raw::c_char, - __tvp: *const timeval, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as `utimes', but takes an open file descriptor instead of a name."] - pub fn futimes(__fd: ::std::os::raw::c_int, __tvp: *const timeval) -> ::std::os::raw::c_int; -} -#[doc = " ISO C `broken-down time' structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tm { - #[doc = " Seconds.\t[0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes.\t[0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours.\t[0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day.\t\t[1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month.\t[0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year\t- 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week.\t[0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST.\t\t[-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, - #[doc = " Seconds east of UTC."] - pub tm_gmtoff: ::std::os::raw::c_long, - #[doc = " Timezone abbreviation."] - pub tm_zone: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_isdst) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_gmtoff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_gmtoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_zone) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tm), - "::", - stringify!(tm_zone) - ) - ); -} -impl Default for tm { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " POSIX.1b structure for timer start values and intervals."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct itimerspec { - pub it_interval: timespec, - pub it_value: timespec, -} -#[test] -fn bindgen_test_layout_itimerspec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerspec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerspec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerspec), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sigevent { - _unused: [u8; 0], -} -extern "C" { - #[doc = " Time used by the program so far (user time + system time).\nThe result / CLOCKS_PER_SEC is program time in seconds."] - pub fn clock() -> clock_t; -} -extern "C" { - #[doc = " Return the current time and put it in *TIMER if TIMER is not NULL."] - pub fn time(__timer: *mut time_t) -> time_t; -} -extern "C" { - #[doc = " Return the difference between TIME1 and TIME0."] - pub fn difftime(__time1: time_t, __time0: time_t) -> f64; -} -extern "C" { - #[doc = " Return the `time_t' representation of TP and normalize TP."] - pub fn mktime(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE characters and return the number\nof characters written, or 0 if it would exceed MAXSIZE."] - pub fn strftime( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - ) -> usize; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn strftime_l( - __s: *mut ::std::os::raw::c_char, - __maxsize: usize, - __format: *const ::std::os::raw::c_char, - __tp: *const tm, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER\nin Universal Coordinated Time (aka Greenwich Mean Time)."] - pub fn gmtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation\nof *TIMER in the local timezone."] - pub fn localtime(__timer: *const time_t) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in UTC,\nusing *TP to store the result."] - pub fn gmtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return the `struct tm' representation of *TIMER in local time,\nusing *TP to store the result."] - pub fn localtime_r(__timer: *const time_t, __tp: *mut tm) -> *mut tm; -} -extern "C" { - #[doc = " Return a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime(__tp: *const tm) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime(__timer: *const time_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return in BUF a string of the form \"Day Mon dd hh:mm:ss yyyy\\n\"\nthat is the representation of TP in this format."] - pub fn asctime_r( - __tp: *const tm, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn ctime_r( - __timer: *const time_t, - __buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Current timezone names."] - pub static mut __tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " If daylight-saving time is ever in use."] - pub static mut __daylight: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Seconds west of UTC."] - pub static mut __timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Same as above."] - pub static mut tzname: [*mut ::std::os::raw::c_char; 2usize]; -} -extern "C" { - #[doc = " Set time conversion information from the TZ environment variable.\nIf TZ is not defined, a locale-dependent default is used."] - pub fn tzset(); -} -extern "C" { - pub static mut daylight: ::std::os::raw::c_int; -} -extern "C" { - pub static mut timezone: ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Like `mktime', but for TP represents Universal Time, not local time."] - pub fn timegm(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Another name for `mktime'."] - pub fn timelocal(__tp: *mut tm) -> time_t; -} -extern "C" { - #[doc = " Return the number of days in YEAR."] - pub fn dysize(__year: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Pause execution for a number of nanoseconds.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn nanosleep( - __requested_time: *const timespec, - __remaining: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get resolution of clock CLOCK_ID."] - pub fn clock_getres(__clock_id: clockid_t, __res: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of clock CLOCK_ID and store it in TP."] - pub fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set clock CLOCK_ID to value TP."] - pub fn clock_settime(__clock_id: clockid_t, __tp: *const timespec) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn clock_nanosleep( - __clock_id: clockid_t, - __flags: ::std::os::raw::c_int, - __req: *const timespec, - __rem: *mut timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return clock ID for CPU-time clock."] - pub fn clock_getcpuclockid(__pid: pid_t, __clock_id: *mut clockid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create new per-process timer using CLOCK_ID."] - pub fn timer_create( - __clock_id: clockid_t, - __evp: *mut sigevent, - __timerid: *mut timer_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete timer TIMERID."] - pub fn timer_delete(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn timer_settime( - __timerid: timer_t, - __flags: ::std::os::raw::c_int, - __value: *const itimerspec, - __ovalue: *mut itimerspec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get current value of timer TIMERID and store it in VALUE."] - pub fn timer_gettime(__timerid: timer_t, __value: *mut itimerspec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get expiration overrun for timer TIMERID."] - pub fn timer_getoverrun(__timerid: timer_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set TS to calendar time based in time base BASE."] - pub fn timespec_get( - __ts: *mut timespec, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stat { - #[doc = " Device."] - pub st_dev: __dev_t, - #[doc = " File serial number."] - pub st_ino: __ino_t, - #[doc = " Link count."] - pub st_nlink: __nlink_t, - #[doc = " File mode."] - pub st_mode: __mode_t, - #[doc = " User ID of the file's owner."] - pub st_uid: __uid_t, - #[doc = " Group ID of the file's group."] - pub st_gid: __gid_t, - pub __pad0: ::std::os::raw::c_int, - #[doc = " Device number, if device."] - pub st_rdev: __dev_t, - #[doc = " Size of file, in bytes."] - pub st_size: __off_t, - #[doc = " Optimal block size for I/O."] - pub st_blksize: __blksize_t, - #[doc = " Number 512-byte blocks allocated."] - pub st_blocks: __blkcnt_t, - #[doc = " Time of last access."] - pub st_atim: timespec, - #[doc = " Time of last modification."] - pub st_mtim: timespec, - #[doc = " Time of last status change."] - pub st_ctim: timespec, - pub __glibc_reserved: [__syscall_slong_t; 3usize], -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad0) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__pad0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_atim) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_mtim) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).st_ctim) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__glibc_reserved) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(__glibc_reserved) - ) - ); -} -extern "C" { - #[doc = " Get file attributes for FILE and put them in BUF."] - pub fn stat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes for the file, device, pipe, or socket\nthat file descriptor FD is open on and put them in BUF."] - pub fn fstat(__fd: ::std::os::raw::c_int, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fstatat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __buf: *mut stat, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get file attributes about FILE and put them in BUF.\nIf FILE is a symbolic link, do not follow it."] - pub fn lstat(__file: *const ::std::os::raw::c_char, __buf: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects its target instead."] - pub fn chmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions for FILE to MODE.\nIf FILE is a symbolic link, this affects the link itself\nrather than its target."] - pub fn lchmod(__file: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn fchmod(__fd: ::std::os::raw::c_int, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access permissions of FILE relative to\nthe directory FD is open on."] - pub fn fchmodat( - __fd: ::std::os::raw::c_int, - __file: *const ::std::os::raw::c_char, - __mode: __mode_t, - __flag: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the file creation mask of the current process to MASK,\nand return the old creation mask."] - pub fn umask(__mask: __mode_t) -> __mode_t; -} -extern "C" { - #[doc = " Create a new directory named PATH, with permission bits MODE."] - pub fn mkdir(__path: *const ::std::os::raw::c_char, __mode: __mode_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkdir, create a new directory with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkdirat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn mknod( - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mknod, create a new device file with permission bits MODE and\ndevice number DEV. But interpret relative PATH names relative to\nthe directory associated with FD."] - pub fn mknodat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - __dev: __dev_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new FIFO named PATH, with permission bits MODE."] - pub fn mkfifo(__path: *const ::std::os::raw::c_char, __mode: __mode_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Like mkfifo, create a new FIFO with permission bits MODE. But\ninterpret relative PATH names relative to the directory associated\nwith FD."] - pub fn mkfifoat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __mode: __mode_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times relative to directory file\ndescriptor."] - pub fn utimensat( - __fd: ::std::os::raw::c_int, - __path: *const ::std::os::raw::c_char, - __times: *const timespec, - __flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set file access and modification times of the file associated with FD."] - pub fn futimens(__fd: ::std::os::raw::c_int, __times: *const timespec) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_387controlword() -> ::std::os::raw::c_ushort; -} -extern "C" { - pub fn _Py_set_387controlword(arg1: ::std::os::raw::c_ushort); -} -extern "C" { - pub fn _Py_bit_length(d: ::std::os::raw::c_ulong) -> ::std::os::raw::c_uint; -} -#[doc = " PyTypeObject structure is defined in cpython/object.h.\nIn Py_LIMITED_API, PyTypeObject is an opaque structure."] -pub type PyTypeObject = _typeobject; -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _object { - pub ob_refcnt: Py_ssize_t, - pub ob_type: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout__object() { - const UNINIT: ::std::mem::MaybeUninit<_object> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_object>(), - 16usize, - concat!("Size of: ", stringify!(_object)) - ); - assert_eq!( - ::std::mem::align_of::<_object>(), - 8usize, - concat!("Alignment of ", stringify!(_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_refcnt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_refcnt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_object), - "::", - stringify!(ob_type) - ) - ); -} -impl Default for _object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Nothing is actually declared to be a PyObject, but every pointer to\n a Python object can be cast to a PyObject*. This is inheritance built\n by hand. Similarly every pointer to a variable-size Python object can,\n in addition, be cast to PyVarObject*."] -pub type PyObject = _object; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyVarObject { - pub ob_base: PyObject, - #[doc = " Number of items in variable part"] - pub ob_size: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyVarObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyVarObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyVarObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyVarObject), - "::", - stringify!(ob_size) - ) - ); -} -impl Default for PyVarObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = "Type objects contain a string containing the type name (to help somewhat\nin debugging), the allocation parameters (see PyObject_New() and\nPyObject_NewVar()),\nand methods for accessing objects of the type. Methods are optional, a\nnil pointer meaning that particular kind of access is not available for\nthis type. The Py_DECREF() macro uses the tp_dealloc method without\nchecking for a nil pointer; it should always be implemented except if\nthe implementation can guarantee that the reference count will never\nreach zero (e.g., for statically allocated type objects).\n\nNB: the methods for certain type groups are now contained in separate\nmethod blocks."] -pub type unaryfunc = - ::std::option::Option *mut PyObject>; -pub type binaryfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type ternaryfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type inquiry = - ::std::option::Option ::std::os::raw::c_int>; -pub type lenfunc = ::std::option::Option Py_ssize_t>; -pub type ssizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizessizeargfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: Py_ssize_t) -> *mut PyObject, ->; -pub type ssizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type ssizessizeobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjargproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type objobjproc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int, ->; -pub type visitproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type traverseproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: visitproc, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -pub type freefunc = ::std::option::Option; -pub type destructor = ::std::option::Option; -pub type getattrfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_char) -> *mut PyObject, ->; -pub type getattrofunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type setattrfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type setattrofunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type reprfunc = - ::std::option::Option *mut PyObject>; -pub type hashfunc = ::std::option::Option Py_hash_t>; -pub type richcmpfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -pub type getiterfunc = - ::std::option::Option *mut PyObject>; -pub type iternextfunc = - ::std::option::Option *mut PyObject>; -pub type descrgetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type descrsetfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type initproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -pub type newfunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type allocfunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Slot { - #[doc = " slot id, see below"] - pub slot: ::std::os::raw::c_int, - #[doc = " function pointer"] - pub pfunc: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyType_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyType_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Slot), - "::", - stringify!(pfunc) - ) - ); -} -impl Default for PyType_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyType_Spec { - pub name: *const ::std::os::raw::c_char, - pub basicsize: ::std::os::raw::c_int, - pub itemsize: ::std::os::raw::c_int, - pub flags: ::std::os::raw::c_uint, - #[doc = " terminated by slot==0."] - pub slots: *mut PyType_Slot, -} -#[test] -fn bindgen_test_layout_PyType_Spec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyType_Spec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyType_Spec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).basicsize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyType_Spec), - "::", - stringify!(slots) - ) - ); -} -impl Default for PyType_Spec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyType_FromSpec(arg1: *mut PyType_Spec) -> *mut PyObject; -} -extern "C" { - pub fn PyType_FromSpecWithBases(arg1: *mut PyType_Spec, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetSlot( - arg1: *mut PyTypeObject, - arg2: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyType_FromModuleAndSpec( - arg1: *mut PyObject, - arg2: *mut PyType_Spec, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModule(arg1: *mut _typeobject) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GetModuleState(arg1: *mut _typeobject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Generic type check"] - pub fn PyType_IsSubtype( - arg1: *mut PyTypeObject, - arg2: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " built-in 'type'"] - pub static mut PyType_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'object'"] - pub static mut PyBaseObject_Type: PyTypeObject; -} -extern "C" { - #[doc = " built-in 'super'"] - pub static mut PySuper_Type: PyTypeObject; -} -extern "C" { - pub fn PyType_GetFlags(arg1: *mut PyTypeObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyType_Ready(arg1: *mut PyTypeObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyType_GenericAlloc(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyType_GenericNew( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyType_ClearCache() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn PyType_Modified(arg1: *mut PyTypeObject); -} -extern "C" { - #[doc = " Generic operations on objects"] - pub fn PyObject_Repr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Str(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_ASCII(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Bytes(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompare( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_RichCompareBool( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttrString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_SetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_HasAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_SelfIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericGetAttr(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GenericSetAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GenericSetDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Hash(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_HashNotImplemented(arg1: *mut PyObject) -> Py_hash_t; -} -extern "C" { - pub fn PyObject_IsTrue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_Not(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCallable_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_ClearWeakRefs(arg1: *mut PyObject); -} -extern "C" { - #[doc = " PyObject_Dir(obj) acts like Python builtins.dir(obj), returning a\nlist of strings. PyObject_Dir(NULL) is like builtins.dir(),\nreturning the names of the current locals. In this case, if there are\nno current locals, NULL is returned, and PyErr_Occurred() is false."] - pub fn PyObject_Dir(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Helpers for printing recursive container types"] - pub fn Py_ReprEnter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ReprLeave(arg1: *mut PyObject); -} -extern "C" { - pub fn _Py_Dealloc(arg1: *mut PyObject); -} -extern "C" { - #[doc = "These are provided as conveniences to Python runtime embedders, so that\nthey can have object code that is not dependent on Python compilation flags."] - pub fn Py_IncRef(arg1: *mut PyObject); -} -extern "C" { - pub fn Py_DecRef(arg1: *mut PyObject); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NoneStruct: PyObject; -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_NotImplementedStruct: PyObject; -} -extern "C" { - pub fn _Py_NewReference(op: *mut PyObject); -} -extern "C" { - #[doc = " Update the Python traceback of an object. This function must be called\nwhen a memory block is reused from a free list."] - pub fn _PyTraceMalloc_NewReference(op: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " String Literals ****************************************/\n/* This structure helps managing static strings. The basic usage goes like this:\nInstead of doing\n\nr = PyObject_CallMethod(o, \"foo\", \"args\", ...);\n\ndo\n\n_Py_IDENTIFIER(foo);\n...\nr = _PyObject_CallMethodId(o, &PyId_foo, \"args\", ...);\n\nPyId_foo is a static variable, either on block level or file level. On first\nusage, the string \"foo\" is interned, and the structures are linked. On interpreter\nshutdown, all strings are released.\n\nAlternatively, _Py_static_string allows choosing the variable name.\n_PyUnicode_FromId returns a borrowed reference to the interned string.\n_PyObject_{Get,Set,Has}AttrId are __getattr__ versions using _Py_Identifier*."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_Identifier { - pub next: *mut _Py_Identifier, - pub string: *const ::std::os::raw::c_char, - pub object: *mut PyObject, -} -#[test] -fn bindgen_test_layout__Py_Identifier() { - const UNINIT: ::std::mem::MaybeUninit<_Py_Identifier> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_Identifier>(), - 24usize, - concat!("Size of: ", stringify!(_Py_Identifier)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_Identifier>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_Identifier)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_Identifier), - "::", - stringify!(object) - ) - ); -} -impl Default for _Py_Identifier { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bufferinfo { - pub buf: *mut ::std::os::raw::c_void, - #[doc = " owned reference"] - pub obj: *mut PyObject, - pub len: Py_ssize_t, - #[doc = " This is Py_ssize_t so it can be\npointed to by strides in simple case."] - pub itemsize: Py_ssize_t, - pub readonly: ::std::os::raw::c_int, - pub ndim: ::std::os::raw::c_int, - pub format: *mut ::std::os::raw::c_char, - pub shape: *mut Py_ssize_t, - pub strides: *mut Py_ssize_t, - pub suboffsets: *mut Py_ssize_t, - pub internal: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_bufferinfo() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(bufferinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bufferinfo)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itemsize) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(readonly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ndim) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(ndim) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shape) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(shape) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strides) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(strides) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suboffsets) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(suboffsets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).internal) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(bufferinfo), - "::", - stringify!(internal) - ) - ); -} -impl Default for bufferinfo { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " buffer interface"] -pub type Py_buffer = bufferinfo; -pub type getbufferproc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut Py_buffer, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type releasebufferproc = - ::std::option::Option; -pub type vectorcallfunc = ::std::option::Option< - unsafe extern "C" fn( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject, ->; -#[doc = " End buffer interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyNumberMethods { - #[doc = " Number implementations must check *both*\narguments for proper type and implement the necessary conversions\nin the slot functions themselves."] - pub nb_add: binaryfunc, - pub nb_subtract: binaryfunc, - pub nb_multiply: binaryfunc, - pub nb_remainder: binaryfunc, - pub nb_divmod: binaryfunc, - pub nb_power: ternaryfunc, - pub nb_negative: unaryfunc, - pub nb_positive: unaryfunc, - pub nb_absolute: unaryfunc, - pub nb_bool: inquiry, - pub nb_invert: unaryfunc, - pub nb_lshift: binaryfunc, - pub nb_rshift: binaryfunc, - pub nb_and: binaryfunc, - pub nb_xor: binaryfunc, - pub nb_or: binaryfunc, - pub nb_int: unaryfunc, - #[doc = " the slot formerly known as nb_long"] - pub nb_reserved: *mut ::std::os::raw::c_void, - pub nb_float: unaryfunc, - pub nb_inplace_add: binaryfunc, - pub nb_inplace_subtract: binaryfunc, - pub nb_inplace_multiply: binaryfunc, - pub nb_inplace_remainder: binaryfunc, - pub nb_inplace_power: ternaryfunc, - pub nb_inplace_lshift: binaryfunc, - pub nb_inplace_rshift: binaryfunc, - pub nb_inplace_and: binaryfunc, - pub nb_inplace_xor: binaryfunc, - pub nb_inplace_or: binaryfunc, - pub nb_floor_divide: binaryfunc, - pub nb_true_divide: binaryfunc, - pub nb_inplace_floor_divide: binaryfunc, - pub nb_inplace_true_divide: binaryfunc, - pub nb_index: unaryfunc, - pub nb_matrix_multiply: binaryfunc, - pub nb_inplace_matrix_multiply: binaryfunc, -} -#[test] -fn bindgen_test_layout_PyNumberMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 288usize, - concat!("Size of: ", stringify!(PyNumberMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyNumberMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_subtract) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_multiply) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_remainder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_divmod) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_divmod) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_power) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_negative) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_negative) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_positive) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_positive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_absolute) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_absolute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_bool) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_bool) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_invert) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_invert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_lshift) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_rshift) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_and) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_xor) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_or) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_int) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_reserved) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_float) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_float) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_add) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_subtract) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_subtract) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_multiply) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_remainder) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_remainder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_power) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_power) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_lshift) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_lshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_rshift) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_rshift) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_and) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_and) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_xor) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_xor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_or) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_or) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_floor_divide) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_true_divide) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_floor_divide) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_floor_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_true_divide) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_true_divide) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_index) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_matrix_multiply) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_matrix_multiply) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nb_inplace_matrix_multiply) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyNumberMethods), - "::", - stringify!(nb_inplace_matrix_multiply) - ) - ); -} -impl Default for PyNumberMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySequenceMethods { - pub sq_length: lenfunc, - pub sq_concat: binaryfunc, - pub sq_repeat: ssizeargfunc, - pub sq_item: ssizeargfunc, - pub was_sq_slice: *mut ::std::os::raw::c_void, - pub sq_ass_item: ssizeobjargproc, - pub was_sq_ass_slice: *mut ::std::os::raw::c_void, - pub sq_contains: objobjproc, - pub sq_inplace_concat: binaryfunc, - pub sq_inplace_repeat: ssizeargfunc, -} -#[test] -fn bindgen_test_layout_PySequenceMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PySequenceMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySequenceMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_concat) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_repeat) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_repeat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_slice) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_ass_item) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_ass_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).was_sq_ass_slice) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(was_sq_ass_slice) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_contains) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_contains) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_concat) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_concat) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sq_inplace_repeat) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySequenceMethods), - "::", - stringify!(sq_inplace_repeat) - ) - ); -} -impl Default for PySequenceMethods { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMappingMethods { - pub mp_length: lenfunc, - pub mp_subscript: binaryfunc, - pub mp_ass_subscript: objobjargproc, -} -#[test] -fn bindgen_test_layout_PyMappingMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyMappingMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMappingMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_subscript) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_subscript) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mp_ass_subscript) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMappingMethods), - "::", - stringify!(mp_ass_subscript) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncMethods { - pub am_await: unaryfunc, - pub am_aiter: unaryfunc, - pub am_anext: unaryfunc, -} -#[test] -fn bindgen_test_layout_PyAsyncMethods() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncMethods)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_await) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_await) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_aiter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_aiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).am_anext) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncMethods), - "::", - stringify!(am_anext) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBufferProcs { - pub bf_getbuffer: getbufferproc, - pub bf_releasebuffer: releasebufferproc, -} -#[test] -fn bindgen_test_layout_PyBufferProcs() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyBufferProcs)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBufferProcs)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_getbuffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_getbuffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bf_releasebuffer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyBufferProcs), - "::", - stringify!(bf_releasebuffer) - ) - ); -} -#[doc = " Allow printfunc in the tp_vectorcall_offset slot for\n backwards-compatibility"] -pub type printfunc = Py_ssize_t; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _typeobject { - pub ob_base: PyVarObject, - #[doc = " For printing, in format \".\""] - pub tp_name: *const ::std::os::raw::c_char, - #[doc = " For allocation"] - pub tp_basicsize: Py_ssize_t, - #[doc = " For allocation"] - pub tp_itemsize: Py_ssize_t, - #[doc = " Methods to implement standard operations"] - pub tp_dealloc: destructor, - pub tp_vectorcall_offset: Py_ssize_t, - pub tp_getattr: getattrfunc, - pub tp_setattr: setattrfunc, - #[doc = " formerly known as tp_compare (Python 2)\nor tp_reserved (Python 3)"] - pub tp_as_async: *mut PyAsyncMethods, - pub tp_repr: reprfunc, - #[doc = " Method suites for standard classes"] - pub tp_as_number: *mut PyNumberMethods, - pub tp_as_sequence: *mut PySequenceMethods, - pub tp_as_mapping: *mut PyMappingMethods, - #[doc = " More standard operations (here for binary compatibility)"] - pub tp_hash: hashfunc, - pub tp_call: ternaryfunc, - pub tp_str: reprfunc, - pub tp_getattro: getattrofunc, - pub tp_setattro: setattrofunc, - #[doc = " Functions to access object as input/output buffer"] - pub tp_as_buffer: *mut PyBufferProcs, - #[doc = " Flags to define presence of optional/expanded features"] - pub tp_flags: ::std::os::raw::c_ulong, - #[doc = " Documentation string"] - pub tp_doc: *const ::std::os::raw::c_char, - #[doc = " Assigned meaning in release 2.0 */\n/* call function for all accessible objects"] - pub tp_traverse: traverseproc, - #[doc = " delete references to contained objects"] - pub tp_clear: inquiry, - #[doc = " Assigned meaning in release 2.1 */\n/* rich comparisons"] - pub tp_richcompare: richcmpfunc, - #[doc = " weak reference enabler"] - pub tp_weaklistoffset: Py_ssize_t, - #[doc = " Iterators"] - pub tp_iter: getiterfunc, - pub tp_iternext: iternextfunc, - #[doc = " Attribute descriptor and subclassing stuff"] - pub tp_methods: *mut PyMethodDef, - pub tp_members: *mut PyMemberDef, - pub tp_getset: *mut PyGetSetDef, - pub tp_base: *mut _typeobject, - pub tp_dict: *mut PyObject, - pub tp_descr_get: descrgetfunc, - pub tp_descr_set: descrsetfunc, - pub tp_dictoffset: Py_ssize_t, - pub tp_init: initproc, - pub tp_alloc: allocfunc, - pub tp_new: newfunc, - #[doc = " Low-level free-memory routine"] - pub tp_free: freefunc, - #[doc = " For PyObject_IS_GC"] - pub tp_is_gc: inquiry, - pub tp_bases: *mut PyObject, - #[doc = " method resolution order"] - pub tp_mro: *mut PyObject, - pub tp_cache: *mut PyObject, - pub tp_subclasses: *mut PyObject, - pub tp_weaklist: *mut PyObject, - pub tp_del: destructor, - #[doc = " Type attribute cache version tag. Added in version 2.6"] - pub tp_version_tag: ::std::os::raw::c_uint, - pub tp_finalize: destructor, - pub tp_vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout__typeobject() { - const UNINIT: ::std::mem::MaybeUninit<_typeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_typeobject>(), - 408usize, - concat!("Size of: ", stringify!(_typeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_typeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_typeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_basicsize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_basicsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_itemsize) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_itemsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dealloc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall_offset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattr) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattr) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_async) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_repr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_repr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_number) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_sequence) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_mapping) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_hash) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_call) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_call) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_str) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getattro) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_setattro) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_setattro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_as_buffer) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_flags) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_doc) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_traverse) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_clear) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_richcompare) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_richcompare) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklistoffset) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklistoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iter) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_iternext) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_iternext) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_methods) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_members) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_getset) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_getset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dict) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_get) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_descr_set) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_descr_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_dictoffset) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_dictoffset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_init) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_alloc) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_new) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_new) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_free) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_free) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_is_gc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_is_gc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_bases) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_bases) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_mro) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_mro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_cache) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_subclasses) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_subclasses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_weaklist) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_weaklist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_del) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_del) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_version_tag) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_finalize) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tp_vectorcall) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(_typeobject), - "::", - stringify!(tp_vectorcall) - ) - ); -} -impl Default for _typeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _heaptypeobject { - #[doc = " Note: there's a dependency on the order of these members\nin slotptr() in typeobject.c ."] - pub ht_type: PyTypeObject, - pub as_async: PyAsyncMethods, - pub as_number: PyNumberMethods, - pub as_mapping: PyMappingMethods, - #[doc = " as_sequence comes after as_mapping,\nso that the mapping wins when both\nthe mapping and the sequence define\na given operator (e.g. __getitem__).\nsee add_operators() in typeobject.c ."] - pub as_sequence: PySequenceMethods, - pub as_buffer: PyBufferProcs, - pub ht_name: *mut PyObject, - pub ht_slots: *mut PyObject, - pub ht_qualname: *mut PyObject, - pub ht_cached_keys: *mut _dictkeysobject, - pub ht_module: *mut PyObject, -} -#[test] -fn bindgen_test_layout__heaptypeobject() { - const UNINIT: ::std::mem::MaybeUninit<_heaptypeobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_heaptypeobject>(), - 880usize, - concat!("Size of: ", stringify!(_heaptypeobject)) - ); - assert_eq!( - ::std::mem::align_of::<_heaptypeobject>(), - 8usize, - concat!("Alignment of ", stringify!(_heaptypeobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_async) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_number) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_mapping) as usize - ptr as usize }, - 720usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_mapping) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_sequence) as usize - ptr as usize }, - 744usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_sequence) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).as_buffer) as usize - ptr as usize }, - 824usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(as_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_name) as usize - ptr as usize }, - 840usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_slots) as usize - ptr as usize }, - 848usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_qualname) as usize - ptr as usize }, - 856usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_cached_keys) as usize - ptr as usize }, - 864usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_cached_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht_module) as usize - ptr as usize }, - 872usize, - concat!( - "Offset of field: ", - stringify!(_heaptypeobject), - "::", - stringify!(ht_module) - ) - ); -} -impl Default for _heaptypeobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The *real* layout of a type object when allocated on the heap"] -pub type PyHeapTypeObject = _heaptypeobject; -extern "C" { - pub fn _PyType_Name(arg1: *mut PyTypeObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _PyType_Lookup(arg1: *mut PyTypeObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_LookupId(arg1: *mut PyTypeObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_LookupSpecial(arg1: *mut PyObject, arg2: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyType_CalculateMetaclass( - arg1: *mut PyTypeObject, - arg2: *mut PyObject, - ) -> *mut PyTypeObject; -} -extern "C" { - pub fn _PyType_GetDocFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyType_GetTextSignatureFromInternalDoc( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_Print( - arg1: *mut PyObject, - arg2: *mut FILE, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_BreakPoint(); -} -extern "C" { - pub fn _PyObject_Dump(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyObject_IsFreed(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_IsAbstract(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetAttrId(arg1: *mut PyObject, arg2: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_SetAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_HasAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Replacements of PyObject_GetAttr() and _PyObject_GetAttrId() which\ndon't raise AttributeError.\n\nReturn 1 and set *result != NULL if an attribute is found.\nReturn 0 and set *result == NULL if an attribute is not found;\nan AttributeError is silenced.\nReturn -1 and set *result == NULL if an error other than AttributeError\nis raised."] - pub fn _PyObject_LookupAttr( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_LookupAttrId( - arg1: *mut PyObject, - arg2: *mut _Py_Identifier, - arg3: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetMethod( - obj: *mut PyObject, - name: *mut PyObject, - method: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GetDictPtr(arg1: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _PyObject_NextNotImplemented(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_CallFinalizer(arg1: *mut PyObject); -} -extern "C" { - pub fn PyObject_CallFinalizerFromDealloc(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_Generic{Get,Set}Attr, but passing the attributes\ndict as the last parameter."] - pub fn _PyObject_GenericGetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GenericSetAttrWithDict( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_FunctionStr(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNone_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyNotImplemented_Type: PyTypeObject; -} -extern "C" { - #[doc = " Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.\n Defined in object.c."] - pub static mut _Py_SwappedOp: [::std::os::raw::c_int; 0usize]; -} -extern "C" { - pub fn _PyDebugAllocatorStats( - out: *mut FILE, - block_name: *const ::std::os::raw::c_char, - num_blocks: ::std::os::raw::c_int, - sizeof_block: usize, - ); -} -extern "C" { - pub fn _PyObject_DebugTypeStats(out: *mut FILE); -} -extern "C" { - #[doc = " Declare and define _PyObject_AssertFailed() even when NDEBUG is defined,\nto avoid causing compiler/linker errors when building extensions without\nNDEBUG against a Python built with NDEBUG defined.\n\nmsg, expr and function can be NULL."] - pub fn _PyObject_AssertFailed( - obj: *mut PyObject, - expr: *const ::std::os::raw::c_char, - msg: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - function: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - #[doc = " Check if an object is consistent. For example, ensure that the reference\ncounter is greater than or equal to 1, and ensure that ob_type is not NULL.\n\nCall _PyObject_AssertFailed() if the object is inconsistent.\n\nIf check_content is zero, only check header fields: reduce the overhead.\n\nThe function always return 1. The return value is just here to be able to\nwrite:\n\nassert(_PyObject_CheckConsistency(obj, 1));"] - pub fn _PyObject_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.2.4.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_destroy_chain(); -} -extern "C" { - #[doc = " This is the old private API, invoked by the macros before 3.9.\nKept for binary compatibility of extensions using the stable ABI."] - pub fn _PyTrash_thread_deposit_object(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTrash_thread_destroy_chain(); -} -extern "C" { - #[doc = " Python 3.9 private API, invoked by the macros below."] - pub fn _PyTrash_begin(tstate: *mut _ts, op: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTrash_end(tstate: *mut _ts); -} -#[doc = " _PyTime_t: Python timestamp with subsecond precision. It can be used to\nstore a duration, and so indirectly a date (related to another date, like\nUNIX epoch)."] -pub type _PyTime_t = i64; -#[doc = " Round towards minus infinity (-inf).\nFor example, used to read a clock."] -pub const _PyTime_round_t__PyTime_ROUND_FLOOR: _PyTime_round_t = 0; -#[doc = " Round towards infinity (+inf).\nFor example, used for timeout to wait \"at least\" N seconds."] -pub const _PyTime_round_t__PyTime_ROUND_CEILING: _PyTime_round_t = 1; -#[doc = " Round to nearest with ties going to nearest even integer.\nFor example, used to round from a Python float."] -pub const _PyTime_round_t__PyTime_ROUND_HALF_EVEN: _PyTime_round_t = 2; -#[doc = " Round away from zero\nFor example, used for timeout. _PyTime_ROUND_CEILING rounds\n-1e-9 to 0 milliseconds which causes bpo-31786 issue.\n_PyTime_ROUND_UP rounds -1e-9 to -1 millisecond which keeps\nthe timeout sign as expected. select.poll(timeout) must block\nfor negative values.\""] -pub const _PyTime_round_t__PyTime_ROUND_UP: _PyTime_round_t = 3; -#[doc = " _PyTime_ROUND_TIMEOUT (an alias for _PyTime_ROUND_UP) should be\nused for timeouts."] -pub const _PyTime_round_t__PyTime_ROUND_TIMEOUT: _PyTime_round_t = 3; -pub type _PyTime_round_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Convert a time_t to a PyLong."] - pub fn _PyLong_FromTime_t(sec: time_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert a PyLong to a time_t."] - pub fn _PyLong_AsTime_t(obj: *mut PyObject) -> time_t; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to time_t."] - pub fn _PyTime_ObjectToTime_t( - obj: *mut PyObject, - sec: *mut time_t, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timeval structure.\nusec is in the range [0; 999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000)."] - pub fn _PyTime_ObjectToTimeval( - obj: *mut PyObject, - sec: *mut time_t, - usec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds, int or float, to a timespec structure.\nnsec is in the range [0; 999999999] and rounded towards zero.\nFor example, -1.2 is converted to (-2, 800000000)."] - pub fn _PyTime_ObjectToTimespec( - obj: *mut PyObject, - sec: *mut time_t, - nsec: *mut ::std::os::raw::c_long, - arg1: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a number of seconds."] - pub fn _PyTime_FromSeconds(seconds: ::std::os::raw::c_int) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from a number of nanoseconds."] - pub fn _PyTime_FromNanoseconds(ns: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Create a timestamp from nanoseconds (Python int)."] - pub fn _PyTime_FromNanosecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of seconds (Python float or int) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromSecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_FromMillisecondsObject( - t: *mut _PyTime_t, - obj: *mut PyObject, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds as a C double."] - pub fn _PyTime_AsSecondsDouble(t: _PyTime_t) -> f64; -} -extern "C" { - #[doc = " Convert timestamp to a number of milliseconds (10^-3 seconds)."] - pub fn _PyTime_AsMilliseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of microseconds (10^-6 seconds)."] - pub fn _PyTime_AsMicroseconds(t: _PyTime_t, round: _PyTime_round_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Convert timestamp to a number of nanoseconds (10^-9 seconds) as a Python int\nobject."] - pub fn _PyTime_AsNanosecondsObject(t: _PyTime_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a timestamp from a timeval structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimeval(tp: *mut _PyTime_t, tv: *mut timeval) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timeval structure (microsecond resolution).\ntv_usec is always positive.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimeval( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to _PyTime_AsTimeval(), but don't raise an exception on error."] - pub fn _PyTime_AsTimeval_noraise( - t: _PyTime_t, - tv: *mut timeval, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a number of seconds (secs) and microseconds (us).\nus is always positive. This function is similar to _PyTime_AsTimeval()\nexcept that secs is always a time_t type, whereas the timeval structure\nuses a C long for tv_sec on Windows.\nRaise an exception and return -1 if the conversion overflowed,\nreturn 0 on success."] - pub fn _PyTime_AsTimevalTime_t( - t: _PyTime_t, - secs: *mut time_t, - us: *mut ::std::os::raw::c_int, - round: _PyTime_round_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a timestamp from a timespec structure.\nRaise an exception and return -1 on overflow, return 0 on success."] - pub fn _PyTime_FromTimespec(tp: *mut _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert a timestamp to a timespec structure (nanosecond resolution).\ntv_nsec is always positive.\nRaise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_AsTimespec(t: _PyTime_t, ts: *mut timespec) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compute ticks * mul / div.\nThe caller must ensure that ((div - 1) * mul) cannot overflow."] - pub fn _PyTime_MulDiv(ticks: _PyTime_t, mul: _PyTime_t, div: _PyTime_t) -> _PyTime_t; -} -extern "C" { - #[doc = " Get the current time from the system clock.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetSystemClock() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nThe function cannot fail. _PyTime_Init() ensures that a monotonic clock\nis available and works."] - pub fn _PyTime_GetMonotonicClock() -> _PyTime_t; -} -#[doc = " Structure used by time.get_clock_info()"] -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct _Py_clock_info_t { - pub implementation: *const ::std::os::raw::c_char, - pub monotonic: ::std::os::raw::c_int, - pub adjustable: ::std::os::raw::c_int, - pub resolution: f64, -} -#[test] -fn bindgen_test_layout__Py_clock_info_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_clock_info_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_clock_info_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_clock_info_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_clock_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implementation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(implementation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monotonic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(monotonic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).adjustable) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(adjustable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resolution) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_clock_info_t), - "::", - stringify!(resolution) - ) - ); -} -impl Default for _Py_clock_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the current time from the system clock.\n Fill clock information if info is not NULL.\n Raise an exception and return -1 on error, return 0 on success."] - pub fn _PyTime_GetSystemClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the time of a monotonic clock, i.e. a clock that cannot go backwards.\nThe clock is not affected by system clock updates. The reference point of\nthe returned value is undefined, so that only the difference between the\nresults of consecutive calls is valid.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetMonotonicClockWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize time.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_Init() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, using the local time zone.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_localtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Converts a timestamp to the Gregorian time, assuming UTC.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_gmtime(t: time_t, tm: *mut tm) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nThe function cannot fail. _PyTime_Init() ensures that the system clock\nworks."] - pub fn _PyTime_GetPerfCounter() -> _PyTime_t; -} -extern "C" { - #[doc = " Get the performance counter: clock with the highest available resolution to\nmeasure a short duration.\n\nFill info (if set) with information of the function used to get the time.\n\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyTime_GetPerfCounterWithInfo( - t: *mut _PyTime_t, - info: *mut _Py_clock_info_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Functions\n\nFunctions supplying platform-independent semantics for malloc/realloc/\nfree. These functions make sure that allocating 0 bytes returns a distinct\nnon-NULL pointer (whenever possible -- if we're flat out of memory, NULL\nmay be returned), even if the platform malloc and realloc don't.\nReturned pointers must be checked for NULL explicitly. No action is\nperformed on failure (no exception is set, no warning is printed, etc)."] - pub fn PyMem_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyMem_RawMalloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawCalloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawRealloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyMem_RawFree(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Try to get the allocators name set by _PyMem_SetupAllocators()."] - pub fn _PyMem_GetCurrentAllocatorName() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyMem_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " strdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawStrdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " strdup() using PyMem_Malloc()"] - pub fn _PyMem_Strdup(str_: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " wcsdup() using PyMem_RawMalloc()"] - pub fn _PyMem_RawWcsdup(str_: *const wchar_t) -> *mut wchar_t; -} -#[doc = " PyMem_RawMalloc(), PyMem_RawRealloc() and PyMem_RawFree()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_RAW: PyMemAllocatorDomain = 0; -#[doc = " PyMem_Malloc(), PyMem_Realloc() and PyMem_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_MEM: PyMemAllocatorDomain = 1; -#[doc = " PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()"] -pub const PyMemAllocatorDomain_PYMEM_DOMAIN_OBJ: PyMemAllocatorDomain = 2; -pub type PyMemAllocatorDomain = ::std::os::raw::c_uint; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_NOT_SET: PyMemAllocatorName = 0; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEFAULT: PyMemAllocatorName = 1; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_DEBUG: PyMemAllocatorName = 2; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC: PyMemAllocatorName = 3; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_MALLOC_DEBUG: PyMemAllocatorName = 4; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC: PyMemAllocatorName = 5; -pub const PyMemAllocatorName_PYMEM_ALLOCATOR_PYMALLOC_DEBUG: PyMemAllocatorName = 6; -pub type PyMemAllocatorName = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemAllocatorEx { - #[doc = " user context passed as the first argument to the 4 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate a memory block"] - pub malloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate a memory block initialized by zeros"] - pub calloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - nelem: usize, - elsize: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " allocate or resize a memory block"] - pub realloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " release a memory block"] - pub free: ::std::option::Option< - unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void), - >, -} -#[test] -fn bindgen_test_layout_PyMemAllocatorEx() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemAllocatorEx)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(malloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).calloc) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(calloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).realloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(realloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemAllocatorEx), - "::", - stringify!(free) - ) - ); -} -impl Default for PyMemAllocatorEx { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the memory block allocator of the specified domain."] - pub fn PyMem_GetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Set the memory block allocator of the specified domain.\n\nThe new allocator must return a distinct non-NULL pointer when requesting\nzero bytes.\n\nFor the PYMEM_DOMAIN_RAW domain, the allocator must be thread-safe: the GIL\nis not held when the allocator is called.\n\nIf the new allocator is not a hook (don't call the previous allocator), the\nPyMem_SetupDebugHooks() function must be called to reinstall the debug hooks\non top on the new allocator."] - pub fn PyMem_SetAllocator(domain: PyMemAllocatorDomain, allocator: *mut PyMemAllocatorEx); -} -extern "C" { - #[doc = " Setup hooks to detect bugs in the following Python memory allocator\nfunctions:\n\n- PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()\n- PyMem_Malloc(), PyMem_Realloc(), PyMem_Free()\n- PyObject_Malloc(), PyObject_Realloc() and PyObject_Free()\n\nNewly allocated memory is filled with the byte 0xCB, freed memory is filled\nwith the byte 0xDB. Additional checks:\n\n- detect API violations, ex: PyObject_Free() called on a buffer allocated\nby PyMem_Malloc()\n- detect write before the start of the buffer (buffer underflow)\n- detect write after the end of the buffer (buffer overflow)\n\nThe function does nothing if Python is not compiled is debug mode."] - pub fn PyMem_SetupDebugHooks(); -} -extern "C" { - #[doc = " Functions to call the same malloc/realloc/free as used by Python's\nobject allocator. If WITH_PYMALLOC is enabled, these may differ from\nthe platform malloc/realloc/free. The Python object allocator is\ndesigned for fast, cache-conscious allocation of many \"small\" objects,\nand with low hidden memory overhead.\n\nPyObject_Malloc(0) returns a unique non-NULL pointer if possible.\n\nPyObject_Realloc(NULL, n) acts like PyObject_Malloc(n).\nPyObject_Realloc(p != NULL, 0) does not return NULL, or free the memory\nat p.\n\nReturned pointers must be checked for NULL explicitly; no action is\nperformed on failure other than to return NULL (no warning it printed, no\nexception is set, etc).\n\nFor allocating objects, use PyObject_{New, NewVar} instead whenever\npossible. The PyObject_{Malloc, Realloc, Free} family is exposed\nso that you can exploit Python's small-block allocator for non-object\nuses. If you must use these routines to allocate object memory, make sure\nthe object gets initialized via PyObject_{Init, InitVar} after obtaining\nthe raw memory."] - pub fn PyObject_Malloc(size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Calloc(nelem: usize, elsize: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Realloc( - ptr: *mut ::std::os::raw::c_void, - new_size: usize, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyObject_Free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Functions"] - pub fn PyObject_Init(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_InitVar( - arg1: *mut PyVarObject, - arg2: *mut PyTypeObject, - arg3: Py_ssize_t, - ) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " C equivalent of gc.collect() which ignores the state of gc.enabled."] - pub fn PyGC_Collect() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_GC_Resize(arg1: *mut PyVarObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - pub fn _PyObject_GC_New(arg1: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_NewVar(arg1: *mut PyTypeObject, arg2: Py_ssize_t) -> *mut PyVarObject; -} -extern "C" { - #[doc = " Tell the GC to track this object.\n\n See also private _PyObject_GC_TRACK() macro."] - pub fn PyObject_GC_Track(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " Tell the GC to stop tracking this object.\n\n See also private _PyObject_GC_UNTRACK() macro."] - pub fn PyObject_GC_UnTrack(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_Del(arg1: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn PyObject_GC_IsTracked(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_GC_IsFinalized(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This function returns the number of allocated memory blocks, regardless of size"] - pub fn _Py_GetAllocatedBlocks() -> Py_ssize_t; -} -extern "C" { - pub fn _PyObject_DebugMallocStats(out: *mut FILE) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyObjectArenaAllocator { - #[doc = " user context passed as the first argument to the 2 functions"] - pub ctx: *mut ::std::os::raw::c_void, - #[doc = " allocate an arena of size bytes"] - pub alloc: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - size: usize, - ) -> *mut ::std::os::raw::c_void, - >, - #[doc = " free an arena"] - pub free: ::std::option::Option< - unsafe extern "C" fn( - ctx: *mut ::std::os::raw::c_void, - ptr: *mut ::std::os::raw::c_void, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_PyObjectArenaAllocator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyObjectArenaAllocator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ctx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyObjectArenaAllocator), - "::", - stringify!(free) - ) - ); -} -impl Default for PyObjectArenaAllocator { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Get the arena allocator."] - pub fn PyObject_GetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - #[doc = " Set the arena allocator."] - pub fn PyObject_SetArenaAllocator(allocator: *mut PyObjectArenaAllocator); -} -extern "C" { - pub fn _PyGC_CollectNoFail() -> Py_ssize_t; -} -extern "C" { - pub fn _PyGC_CollectIfEnabled() -> Py_ssize_t; -} -extern "C" { - #[doc = " Test if an object implements the garbage collector protocol"] - pub fn PyObject_IS_GC(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_GC_Malloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_GC_Calloc(size: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_GET_WEAKREFS_LISTPTR(op: *mut PyObject) -> *mut *mut PyObject; -} -extern "C" { - pub fn _Py_HashDouble(arg1: f64) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashPointer(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - #[doc = " Similar to _Py_HashPointer(), but don't replace -1 with -2"] - pub fn _Py_HashPointerRaw(arg1: *const ::std::os::raw::c_void) -> Py_hash_t; -} -extern "C" { - pub fn _Py_HashBytes(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t; -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union _Py_HashSecret_t { - #[doc = " ensure 24 bytes"] - pub uc: [::std::os::raw::c_uchar; 24usize], - pub fnv: _Py_HashSecret_t__bindgen_ty_1, - pub siphash: _Py_HashSecret_t__bindgen_ty_2, - pub djbx33a: _Py_HashSecret_t__bindgen_ty_3, - pub expat: _Py_HashSecret_t__bindgen_ty_4, -} -#[doc = " two Py_hash_t for FNV"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_1 { - pub prefix: Py_hash_t, - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_1> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_1>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_1), - "::", - stringify!(suffix) - ) - ); -} -#[doc = " two uint64 for SipHash24"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_2 { - pub k0: u64, - pub k1: u64, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_2> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 16usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_2>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k0) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).k1) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_2), - "::", - stringify!(k1) - ) - ); -} -#[doc = " a different (!) Py_hash_t for small string optimization"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_3 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub suffix: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_3> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_3>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_3)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suffix) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_3), - "::", - stringify!(suffix) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_HashSecret_t__bindgen_ty_4 { - pub padding: [::std::os::raw::c_uchar; 16usize], - pub hashsalt: Py_hash_t, -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t__bindgen_ty_4> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t__bindgen_ty_4>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t__bindgen_ty_4)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hashsalt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t__bindgen_ty_4), - "::", - stringify!(hashsalt) - ) - ); -} -#[test] -fn bindgen_test_layout__Py_HashSecret_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_HashSecret_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_HashSecret_t>(), - 24usize, - concat!("Size of: ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_HashSecret_t>(), - 8usize, - concat!("Alignment of ", stringify!(_Py_HashSecret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(uc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fnv) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(fnv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).siphash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(siphash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).djbx33a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(djbx33a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expat) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_HashSecret_t), - "::", - stringify!(expat) - ) - ); -} -impl Default for _Py_HashSecret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _Py_HashSecret: _Py_HashSecret_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyHash_FuncDef { - pub hash: ::std::option::Option< - unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void, arg2: Py_ssize_t) -> Py_hash_t, - >, - pub name: *const ::std::os::raw::c_char, - pub hash_bits: ::std::os::raw::c_int, - pub seed_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyHash_FuncDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyHash_FuncDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(hash_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seed_bits) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyHash_FuncDef), - "::", - stringify!(seed_bits) - ) - ); -} -impl Default for PyHash_FuncDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyHash_GetFuncDef() -> *mut PyHash_FuncDef; -} -extern "C" { - pub static mut Py_DebugFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_VerboseFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_QuietFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InteractiveFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_InspectFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_OptimizeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoSiteFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_BytesWarningFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_FrozenFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IgnoreEnvironmentFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_DontWriteBytecodeFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_NoUserSiteDirectory: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UnbufferedStdioFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_HashRandomizationFlag: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_IsolatedFlag: ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Type object"] - pub static mut PyByteArray_Type: PyTypeObject; -} -extern "C" { - pub static mut PyByteArrayIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Direct API functions"] - pub fn PyByteArray_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Concat(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyByteArray_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyByteArray_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyByteArray_Resize(arg1: *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -#[doc = " Object layout"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyByteArrayObject { - pub ob_base: PyVarObject, - #[doc = " How many bytes allocated in ob_bytes"] - pub ob_alloc: Py_ssize_t, - #[doc = " Physical backing buffer"] - pub ob_bytes: *mut ::std::os::raw::c_char, - #[doc = " Logical start inside ob_bytes"] - pub ob_start: *mut ::std::os::raw::c_char, - #[doc = " How many buffer exports"] - pub ob_exports: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyByteArrayObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyByteArrayObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_alloc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_start) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyByteArrayObject), - "::", - stringify!(ob_exports) - ) - ); -} -impl Default for PyByteArrayObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyByteArray_empty_string: [::std::os::raw::c_char; 0usize]; -} -extern "C" { - #[doc = " Caching the hash (ob_shash) saves recalculation of a string's hash value.\nThis significantly speeds up dict lookups."] - pub static mut PyBytes_Type: PyTypeObject; -} -extern "C" { - pub static mut PyBytesIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyBytes_FromStringAndSize( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromString(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormatV( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_FromFormat(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyBytes_AsString(arg1: *mut PyObject) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn PyBytes_Repr(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyBytes_Concat(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_ConcatAndDel(arg1: *mut *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: Py_ssize_t, - arg5: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Provides access to the internal data buffer and size of a string\nobject or the default encoded version of a Unicode object. Passing\nNULL as *len parameter will force the string buffer to be\n0-terminated (passing a string with embedded NULL characters will\ncause an exception)."] - pub fn PyBytes_AsStringAndSize( - obj: *mut PyObject, - s: *mut *mut ::std::os::raw::c_char, - len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBytesObject { - pub ob_base: PyVarObject, - pub ob_shash: Py_hash_t, - pub ob_sval: [::std::os::raw::c_char; 1usize], -} -#[test] -fn bindgen_test_layout_PyBytesObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyBytesObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBytesObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_shash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_shash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_sval) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBytesObject), - "::", - stringify!(ob_sval) - ) - ); -} -impl Default for PyBytesObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyBytes_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyBytes_FormatEx( - format: *const ::std::os::raw::c_char, - format_len: Py_ssize_t, - args: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyBytes_FromHex( - string: *mut PyObject, - use_bytearray: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyBytes_DecodeEscape that detects invalid escape chars."] - pub fn _PyBytes_DecodeEscape( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*,\nx must be an iterable object."] - pub fn _PyBytes_Join(sep: *mut PyObject, x: *mut PyObject) -> *mut PyObject; -} -#[doc = " The _PyBytesWriter structure is big: it contains an embedded \"stack buffer\".\nA _PyBytesWriter variable must be declared at the end of variables in a\nfunction to optimize the memory allocation on the stack."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyBytesWriter { - #[doc = " bytes, bytearray or NULL (when the small buffer is used)"] - pub buffer: *mut PyObject, - #[doc = " Number of allocated size."] - pub allocated: Py_ssize_t, - #[doc = " Minimum number of allocated bytes,\nincremented by _PyBytesWriter_Prepare()"] - pub min_size: Py_ssize_t, - #[doc = " If non-zero, use a bytearray instead of a bytes object for buffer."] - pub use_bytearray: ::std::os::raw::c_int, - #[doc = " If non-zero, overallocate the buffer (default: 0).\nThis flag must be zero if use_bytearray is non-zero."] - pub overallocate: ::std::os::raw::c_int, - #[doc = " Stack buffer"] - pub use_small_buffer: ::std::os::raw::c_int, - pub small_buffer: [::std::os::raw::c_char; 512usize], -} -#[test] -fn bindgen_test_layout__PyBytesWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyBytesWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyBytesWriter>(), - 552usize, - concat!("Size of: ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyBytesWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyBytesWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(allocated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(min_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_bytearray) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_bytearray) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_small_buffer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(use_small_buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).small_buffer) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyBytesWriter), - "::", - stringify!(small_buffer) - ) - ); -} -impl Default for _PyBytesWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a bytes writer\n\nBy default, the overallocation is disabled. Set the overallocate attribute\nto control the allocation of the buffer."] - pub fn _PyBytesWriter_Init(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Get the buffer content and reset the writer.\nReturn a bytes object, or a bytearray object if use_bytearray is non-zero.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Finish( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyBytesWriter_Dealloc(writer: *mut _PyBytesWriter); -} -extern "C" { - #[doc = " Allocate the buffer to write size bytes.\nReturn the pointer to the beginning of buffer data.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Alloc( - writer: *mut _PyBytesWriter, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Ensure that the buffer is large enough to write *size* bytes.\nAdd size to the writer minimum size (min_size attribute).\n\nstr is the current pointer inside the buffer.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_Prepare( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Resize the buffer to make it larger.\nThe new buffer may be larger than size bytes because of overallocation.\nReturn the updated current pointer inside the buffer.\nRaise an exception and return NULL on error.\n\nNote: size must be greater than the number of allocated bytes in the writer.\n\nThis function doesn't use the writer minimum size (min_size attribute).\n\nSee also _PyBytesWriter_Prepare()."] - pub fn _PyBytesWriter_Resize( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Write bytes.\nRaise an exception and return NULL on error."] - pub fn _PyBytesWriter_WriteBytes( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_void, - bytes: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -#[doc = " UPPERCASE."] -pub const _ISupper: _bindgen_ty_5 = 256; -#[doc = " lowercase."] -pub const _ISlower: _bindgen_ty_5 = 512; -#[doc = " Alphabetic."] -pub const _ISalpha: _bindgen_ty_5 = 1024; -#[doc = " Numeric."] -pub const _ISdigit: _bindgen_ty_5 = 2048; -#[doc = " Hexadecimal numeric."] -pub const _ISxdigit: _bindgen_ty_5 = 4096; -#[doc = " Whitespace."] -pub const _ISspace: _bindgen_ty_5 = 8192; -#[doc = " Printing."] -pub const _ISprint: _bindgen_ty_5 = 16384; -#[doc = " Graphical."] -pub const _ISgraph: _bindgen_ty_5 = 32768; -#[doc = " Blank (usually SPC and TAB)."] -pub const _ISblank: _bindgen_ty_5 = 1; -#[doc = " Control character."] -pub const _IScntrl: _bindgen_ty_5 = 2; -#[doc = " Punctuation."] -pub const _ISpunct: _bindgen_ty_5 = 4; -#[doc = " Alphanumeric."] -pub const _ISalnum: _bindgen_ty_5 = 8; -pub type _bindgen_ty_5 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " These are defined in ctype-info.c.\nThe declarations here must match those in localeinfo.h.\n\nIn the thread-specific locale model (see `uselocale' in )\nwe cannot use global variables for these as was done in the past.\nInstead, the following accessor functions return the address of\neach variable, which is local to the current thread if multithreaded.\n\nThese point into arrays of 384, so they can be indexed by any `unsigned\nchar' value [0,255]; by EOF (-1); or by any `signed char' value\n[-128,-1). ISO C requires that the ctype functions work for `unsigned\nchar' values and for EOF; we also support negative `signed char' values\nfor broken old programs. The case conversion arrays are of `int's\nrather than `unsigned char's because tolower (EOF) must be EOF, which\ndoesn't fit into an `unsigned char'. But today more important is that\nthe arrays are also used for multi-byte character sets."] - pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort; -} -extern "C" { - pub fn __ctype_tolower_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn __ctype_toupper_loc() -> *mut *const __int32_t; -} -extern "C" { - pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C."] - pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return nonzero iff C is in the ASCII set\n(i.e., is no more than 7 bits wide)."] - pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the part of C that is in the ASCII set\n(i.e., the low-order 7 bits of C)."] - pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the lowercase version of C in locale L."] - pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the uppercase version of C."] - pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int; -} -pub type wint_t = ::std::os::raw::c_uint; -#[doc = " Conversion state information."] -pub type mbstate_t = __mbstate_t; -extern "C" { - #[doc = " Copy SRC to DEST."] - pub fn wcscpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N wide-characters of SRC to DEST."] - pub fn wcsncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append SRC onto DEST."] - pub fn wcscat(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Append no more than N wide-characters of SRC onto DEST."] - pub fn wcsncat(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Compare S1 and S2."] - pub fn wcscmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide-characters of S1 and S2."] - pub fn wcsncmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, ignoring case."] - pub fn wcscasecmp(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare no more than N chars of S1 and S2, ignoring case."] - pub fn wcsncasecmp( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Similar to the two functions above but take the information from\nthe provided locale and not the global locale."] - pub fn wcscasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsncasecmp_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the current locale."] - pub fn wcscoll(__s1: *const wchar_t, __s2: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm(__s1: *mut wchar_t, __s2: *const wchar_t, __n: usize) -> usize; -} -extern "C" { - #[doc = " Compare S1 and S2, both interpreted as appropriate to the\nLC_COLLATE category of the given locale."] - pub fn wcscoll_l( - __s1: *const wchar_t, - __s2: *const wchar_t, - __loc: locale_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transform S2 into array pointed to by S1 such that if wcscmp is\napplied to two transformed strings the result is the as applying\n`wcscoll' to the original strings."] - pub fn wcsxfrm_l( - __s1: *mut wchar_t, - __s2: *const wchar_t, - __n: usize, - __loc: locale_t, - ) -> usize; -} -extern "C" { - #[doc = " Duplicate S, returning an identical malloc'd string."] - pub fn wcsdup(__s: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcschr( - __wcs: *const ::std::os::raw::c_int, - __wc: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn wcsrchr(__wcs: *const wchar_t, __wc: wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters not in REJECT."] - pub fn wcscspn(__wcs: *const wchar_t, __reject: *const wchar_t) -> usize; -} -extern "C" { - #[doc = " Return the length of the initial segmet of WCS which\nconsists entirely of wide characters in ACCEPT."] - pub fn wcsspn(__wcs: *const wchar_t, __accept: *const wchar_t) -> usize; -} -extern "C" { - pub fn wcspbrk(__wcs: *const wchar_t, __accept: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - pub fn wcsstr(__haystack: *const wchar_t, __needle: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Divide WCS into tokens separated by characters in DELIM."] - pub fn wcstok( - __s: *mut wchar_t, - __delim: *const wchar_t, - __ptr: *mut *mut wchar_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Return the number of wide characters in S."] - pub fn wcslen(__s: *const ::std::os::raw::c_int) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Return the number of wide characters in S, but at most MAXLEN."] - pub fn wcsnlen(__s: *const wchar_t, __maxlen: usize) -> usize; -} -extern "C" { - pub fn wmemchr( - __s: *const ::std::os::raw::c_int, - __c: ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare N wide characters of S1 and S2."] - pub fn wmemcmp( - __s1: *const ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST."] - pub fn wmemcpy( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy N wide characters of SRC to DEST, guaranteeing\ncorrect behavior for overlapping strings."] - pub fn wmemmove( - __s1: *mut ::std::os::raw::c_int, - __s2: *const ::std::os::raw::c_int, - __n: ::std::os::raw::c_ulong, - ) -> *mut ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set N wide characters of S to C."] - pub fn wmemset(__s: *mut wchar_t, __c: wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Determine whether C constitutes a valid (one-byte) multibyte\ncharacter."] - pub fn btowc(__c: ::std::os::raw::c_int) -> wint_t; -} -extern "C" { - #[doc = " Determine whether C corresponds to a member of the extended\ncharacter set whose multibyte representation is a single byte."] - pub fn wctob(__c: wint_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether PS points to an object representing the initial\nstate."] - pub fn mbsinit(__ps: *const mbstate_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character pointed\nto by S to PWC."] - pub fn mbrtowc( - __pwc: *mut wchar_t, - __s: *const ::std::os::raw::c_char, - __n: usize, - __p: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte representation of wide character WC to S."] - pub fn wcrtomb(__s: *mut ::std::os::raw::c_char, __wc: wchar_t, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Return number of bytes in multibyte character pointed to by S."] - pub fn __mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - pub fn mbrlen(__s: *const ::std::os::raw::c_char, __n: usize, __ps: *mut mbstate_t) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of multibyte character string\nSRC to DST."] - pub fn mbsrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of wide character string\nSRC to DST."] - pub fn wcsrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write wide character representation of at most NMC bytes of the\nmultibyte character string SRC to DST."] - pub fn mbsnrtowcs( - __dst: *mut wchar_t, - __src: *mut *const ::std::os::raw::c_char, - __nmc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Write multibyte character representation of at most NWC characters\nfrom the wide character string SRC to DST."] - pub fn wcsnrtombs( - __dst: *mut ::std::os::raw::c_char, - __src: *mut *const wchar_t, - __nwc: usize, - __len: usize, - __ps: *mut mbstate_t, - ) -> usize; -} -extern "C" { - #[doc = " Convert initial portion of the wide string NPTR to `double'\nrepresentation."] - pub fn wcstod(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f64; -} -extern "C" { - #[doc = " Likewise for `float' and `long double' sizes of floating-point numbers."] - pub fn wcstof(__nptr: *const wchar_t, __endptr: *mut *mut wchar_t) -> f32; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long int'\nrepresentation."] - pub fn wcstol( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long int'\nrepresentation."] - pub fn wcstoul( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `long long int'\nrepresentation."] - pub fn wcstoll( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - #[doc = " Convert initial portion of wide string NPTR to `unsigned long long int'\nrepresentation."] - pub fn wcstoull( - __nptr: *const wchar_t, - __endptr: *mut *mut wchar_t, - __base: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - #[doc = " Copy SRC to DEST, returning the address of the terminating L'\\0' in\nDEST."] - pub fn wcpcpy(__dest: *mut wchar_t, __src: *const wchar_t) -> *mut wchar_t; -} -extern "C" { - #[doc = " Copy no more than N characters of SRC to DEST, returning the address of\nthe last character written into DEST."] - pub fn wcpncpy(__dest: *mut wchar_t, __src: *const wchar_t, __n: usize) -> *mut wchar_t; -} -extern "C" { - #[doc = " Like OPEN_MEMSTREAM, but the stream is wide oriented and produces\na wide character string."] - pub fn open_wmemstream(__bufloc: *mut *mut wchar_t, __sizeloc: *mut usize) -> *mut __FILE; -} -extern "C" { - #[doc = " Select orientation for stream."] - pub fn fwide(__fp: *mut __FILE, __mode: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwprintf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wprintf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N characters to S."] - pub fn swprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to S from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwprintf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output to stdout from argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwprintf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Write formatted output of at most N character to S from argument\nlist ARG."] - pub fn vswprintf( - __s: *mut wchar_t, - __n: usize, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fwscanf(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn wscanf(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - pub fn swscanf(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_fwscanf"] - pub fn fwscanf1(__stream: *mut __FILE, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_wscanf"] - pub fn wscanf1(__format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S."] - #[link_name = "\u{1}__isoc99_swscanf"] - pub fn swscanf1(__s: *const wchar_t, __format: *const wchar_t, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vfwscanf( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn vwscanf(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - pub fn vswscanf( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vfwscanf"] - pub fn vfwscanf1( - __s: *mut __FILE, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from stdin into argument list ARG.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - #[link_name = "\u{1}__isoc99_vwscanf"] - pub fn vwscanf1(__format: *const wchar_t, __arg: *mut __va_list_tag) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read formatted input from S into argument list ARG."] - #[link_name = "\u{1}__isoc99_vswscanf"] - pub fn vswscanf1( - __s: *const wchar_t, - __format: *const wchar_t, - __arg: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Read a character from STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fgetwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn getwc(__stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Read a character from stdin.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn getwchar() -> wint_t; -} -extern "C" { - #[doc = " Write a character to STREAM.\n\nThese functions are possible cancellation points and therefore not\nmarked with __THROW."] - pub fn fputwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - pub fn putwc(__wc: wchar_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Write a character to stdout.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn putwchar(__wc: wchar_t) -> wint_t; -} -extern "C" { - #[doc = " Get a newline-terminated wide character string of finite length\nfrom STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fgetws( - __ws: *mut wchar_t, - __n: ::std::os::raw::c_int, - __stream: *mut __FILE, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Write a string to STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn fputws(__ws: *const wchar_t, __stream: *mut __FILE) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Push a character back onto the input buffer of STREAM.\n\nThis function is a possible cancellation point and therefore not\nmarked with __THROW."] - pub fn ungetwc(__wc: wint_t, __stream: *mut __FILE) -> wint_t; -} -extern "C" { - #[doc = " Format TP into S according to FORMAT.\nWrite no more than MAXSIZE wide characters and return the number\nof wide characters written, or 0 if it would exceed MAXSIZE."] - pub fn wcsftime( - __s: *mut wchar_t, - __maxsize: usize, - __format: *const wchar_t, - __tp: *const tm, - ) -> usize; -} -#[doc = " Py_UCS4 and Py_UCS2 are typedefs for the respective\nunicode representations."] -pub type Py_UCS4 = u32; -pub type Py_UCS2 = u16; -pub type Py_UCS1 = u8; -extern "C" { - pub static mut PyUnicode_Type: PyTypeObject; -} -extern "C" { - pub static mut PyUnicodeIter_Type: PyTypeObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to UTF-8 encoded bytes"] - pub fn PyUnicode_FromStringAndSize( - u: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_FromUnicode(), but u points to null-terminated\nUTF-8 encoded bytes. The size is determined with strlen()."] - pub fn PyUnicode_FromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_Substring( - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer including the null character if copy_null\nis set. Return NULL and raise an exception on error. Raise a SystemError if\nthe buffer is smaller than the string. Return buffer on success.\n\nbuflen is the length of the buffer in (Py_UCS4) characters."] - pub fn PyUnicode_AsUCS4( - unicode: *mut PyObject, - buffer: *mut Py_UCS4, - buflen: Py_ssize_t, - copy_null: ::std::os::raw::c_int, - ) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Copy the string into a UCS4 buffer. A new buffer is allocated using\n PyMem_Malloc; if this fails, NULL is returned with a memory error\nexception set."] - pub fn PyUnicode_AsUCS4Copy(unicode: *mut PyObject) -> *mut Py_UCS4; -} -extern "C" { - #[doc = " Get the length of the Unicode object."] - pub fn PyUnicode_GetLength(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Get the number of Py_UNICODE units in the\nstring representation."] - pub fn PyUnicode_GetSize(unicode: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Read a character from the string."] - pub fn PyUnicode_ReadChar(unicode: *mut PyObject, index: Py_ssize_t) -> Py_UCS4; -} -extern "C" { - #[doc = " Write a character to the string. The string must have been created through\nPyUnicode_New, must not be shared, and must not have been hashed yet.\n\nReturn 0 on success, -1 on error."] - pub fn PyUnicode_WriteChar( - unicode: *mut PyObject, - index: Py_ssize_t, - character: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Resize a Unicode object. The length is the number of characters, except\nif the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length\nis the number of Py_UNICODE characters.\n\nunicode is modified to point to the new (resized) object and 0\nreturned on success.\n\nTry to resize the string in place (which is usually faster than allocating\na new string and copy characters), or create a new string.\n\nError handling is implemented as follows: an exception is set, -1\nis returned and *unicode left untouched.\n\nWARNING: The function doesn't check string content, the result may not be a\nstring in canonical representation."] - pub fn PyUnicode_Resize( - unicode: *mut *mut PyObject, - length: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode obj to a Unicode object.\n\nbytes, bytearray and other bytes-like objects are decoded according to the\ngiven encoding and error handler. The encoding and error handler can be\nNULL to have the interface use UTF-8 and \"strict\".\n\nAll other objects (including Unicode objects) raise an exception.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromEncodedObject( - obj: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy an instance of a Unicode subtype to a new true Unicode object if\nnecessary. If obj is already a true Unicode object (not a subtype), return\nthe reference with *incremented* refcount.\n\nThe API returns NULL in case of an error. The caller is responsible\nfor decref'ing the returned objects."] - pub fn PyUnicode_FromObject(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormatV( - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_FromFormat(format: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_InternInPlace(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternImmortal(arg1: *mut *mut PyObject); -} -extern "C" { - pub fn PyUnicode_InternFromString(u: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a Unicode Object from the wchar_t buffer w of the given\nsize.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromWideChar(w: *const wchar_t, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Copies the Unicode Object contents into the wchar_t buffer w. At\nmost size wchar_t characters are copied.\n\nNote that the resulting wchar_t string may or may not be\n0-terminated. It is the responsibility of the caller to make sure\nthat the wchar_t string is 0-terminated in case this is required by\nthe application.\n\nReturns the number of wchar_t characters copied (excluding a\npossibly trailing 0-termination character) or -1 in case of an\nerror."] - pub fn PyUnicode_AsWideChar( - unicode: *mut PyObject, - w: *mut wchar_t, - size: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Convert the Unicode object to a wide character string. The output string\nalways ends with a nul character. If size is not NULL, write the number of\nwide characters (excluding the null character) into *size.\n\nReturns a buffer allocated by PyMem_Malloc() (use PyMem_Free() to free it)\non success. On error, returns NULL, *size is undefined and raises a\nMemoryError."] - pub fn PyUnicode_AsWideCharString( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut wchar_t; -} -extern "C" { - #[doc = " Create a Unicode Object from the given Unicode code point ordinal.\n\nThe ordinal must be in range(0x110000). A ValueError is\nraised in case it is not."] - pub fn PyUnicode_FromOrdinal(ordinal: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns \"utf-8\"."] - pub fn PyUnicode_GetDefaultEncoding() -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Create a Unicode object by decoding the encoded string s of the\ngiven size."] - pub fn PyUnicode_Decode( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Python\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str."] - pub fn PyUnicode_AsDecodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a Unicode object unicode and return the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encoding is rot13.\nUse PyCodec_Decode() to decode with rot13 and non-standard codecs\nthat decode from str to str."] - pub fn PyUnicode_AsDecodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python\nobject.\n\nThis API is DEPRECATED. It is superseded by PyUnicode_AsEncodedString()\nsince all standard encodings (except rot13) encode str to bytes.\nUse PyCodec_Encode() for encoding with rot13 and non-standard codecs\nthat encode form str to non-bytes."] - pub fn PyUnicode_AsEncodedObject( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Python string\nobject."] - pub fn PyUnicode_AsEncodedString( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encodes a Unicode object and returns the result as Unicode\nobject.\n\nThis API is DEPRECATED. The only supported standard encodings is rot13.\nUse PyCodec_Encode() to encode with rot13 and non-standard codecs\nthat encode from str to str."] - pub fn PyUnicode_AsEncodedUnicode( - unicode: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Build an encoding map."] - pub fn PyUnicode_BuildEncodingMap(string: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF7( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF7Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn PyUnicode_DecodeUTF8( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF8Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUTF8String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-32 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first four bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF32( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF32Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-32 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF32String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Decodes length bytes from a UTF-16 encoded buffer string and returns\nthe corresponding Unicode object.\n\nerrors (if non-NULL) defines the error handling. It defaults\nto \"strict\".\n\nIf byteorder is non-NULL, the decoder starts decoding using the\ngiven byte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native order\nbyteorder == 1: big endian\n\nIn native mode, the first two bytes of the stream are checked for a\nBOM mark. If found, the BOM mark is analysed, the byte order\nadjusted and the BOM skipped. In the other modes, no BOM mark\ninterpretation is done. After completion, *byteorder is set to the\ncurrent byte order at the end of input data.\n\nIf byteorder is NULL, the codec starts in native order mode."] - pub fn PyUnicode_DecodeUTF16( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_DecodeUTF16Stateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: *mut ::std::os::raw::c_int, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string using the UTF-16 encoding in native byte\norder. The string always starts with a BOM mark."] - pub fn PyUnicode_AsUTF16String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Unicode-Escape Codecs ----------------------------------------------"] - pub fn PyUnicode_DecodeUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_DecodeRawUnicodeEscape( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsRawUnicodeEscapeString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------\n\nNote: Latin-1 corresponds to the first 256 Unicode ordinals."] - pub fn PyUnicode_DecodeLatin1( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsLatin1String(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------\n\nOnly 7-bit ASCII data is excepted. All other codes generate errors."] - pub fn PyUnicode_DecodeASCII( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsASCIIString(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------\n\nThis codec uses mappings to encode and decode characters.\n\nDecoding mappings must map byte ordinals (integers in the range from 0 to\n255) to Unicode strings, integers (which are then interpreted as Unicode\nordinals) or None. Unmapped data bytes (ones which cause a LookupError)\nas well as mapped to None, 0xFFFE or '\\ufffe' are treated as \"undefined\nmapping\" and cause an error.\n\nEncoding mappings must map Unicode ordinal integers to bytes objects,\nintegers in the range from 0 to 255 or None. Unmapped character\nordinals (ones which cause a LookupError) as well as mapped to\nNone are treated as \"undefined mapping\" and cause an error."] - pub fn PyUnicode_DecodeCharmap( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_AsCharmapString( - unicode: *mut PyObject, - mapping: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string from the current locale encoding. The decoder is strict if\nsurrogateescape* is equal to zero, otherwise it uses the 'surrogateescape'\nerror handler (PEP 383) to escape undecodable bytes. If a byte sequence can\nbe decoded as a surrogate character and *surrogateescape* is not equal to\nzero, the byte sequence is escaped using the 'surrogateescape' error handler\ninstead of being decoded. *str* must end with a null character but cannot\ncontain embedded null characters."] - pub fn PyUnicode_DecodeLocaleAndSize( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Similar to PyUnicode_DecodeLocaleAndSize(), but compute the string\nlength using strlen()."] - pub fn PyUnicode_DecodeLocale( - str_: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to the current locale encoding. The encoder is\nstrict is *surrogateescape* is equal to zero, otherwise the\n\"surrogateescape\" error handler is used. Return a bytes object. The string\ncannot contain embedded null characters."] - pub fn PyUnicode_EncodeLocale( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " ParseTuple converter: encode str objects to bytes using\nPyUnicode_EncodeFSDefault(); bytes objects are output as-is."] - pub fn PyUnicode_FSConverter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " ParseTuple converter: decode bytes objects to unicode using\nPyUnicode_DecodeFSDefaultAndSize(); str objects are output as-is."] - pub fn PyUnicode_FSDecoder( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Decode a null-terminated string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding.\n\nUse PyUnicode_DecodeFSDefaultAndSize() if the string length is known."] - pub fn PyUnicode_DecodeFSDefault(s: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Decode a string using Py_FileSystemDefaultEncoding\nand the \"surrogateescape\" error handler.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_DecodeFSDefaultAndSize( - s: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Encode a Unicode object to Py_FileSystemDefaultEncoding with the\n\"surrogateescape\" error handler, and return bytes.\n\nIf Py_FileSystemDefaultEncoding is not set, fall back to the locale\nencoding."] - pub fn PyUnicode_EncodeFSDefault(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings giving a new Unicode string."] - pub fn PyUnicode_Concat(left: *mut PyObject, right: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Concat two strings and put the result in *pleft\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_Append(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Concat two strings, put the result in *pleft and drop the right object\n(sets *pleft to NULL on error)"] - pub fn PyUnicode_AppendAndDel(pleft: *mut *mut PyObject, right: *mut PyObject); -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. If negative, no limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_Split( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Dito, but split at line breaks.\n\nCRLF is considered to be one line break. Line breaks are not\nincluded in the resulting list."] - pub fn PyUnicode_Splitlines(s: *mut PyObject, keepends: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator."] - pub fn PyUnicode_Partition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Partition a string using a given separator, searching from the end of the\nstring."] - pub fn PyUnicode_RPartition(s: *mut PyObject, sep: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Split a string giving a list of Unicode strings.\n\nIf sep is NULL, splitting will be done at all whitespace\nsubstrings. Otherwise, splits occur at the given separator.\n\nAt most maxsplit splits will be done. But unlike PyUnicode_Split\nPyUnicode_RSplit splits from the end of the string. If negative,\nno limit is set.\n\nSeparators are not included in the resulting list."] - pub fn PyUnicode_RSplit( - s: *mut PyObject, - sep: *mut PyObject, - maxsplit: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a string by applying a character mapping table to it and\nreturn the resulting Unicode object.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_Translate( - str_: *mut PyObject, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Join a sequence of strings using the given separator and return\nthe resulting Unicode string."] - pub fn PyUnicode_Join(separator: *mut PyObject, seq: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if substr matches str[start:end] at the given tail end, 0\notherwise."] - pub fn PyUnicode_Tailmatch( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the first position of substr in str[start:end] using the\ngiven search direction or -1 if not found. -2 is returned in case\nan error occurred and an exception is set."] - pub fn PyUnicode_Find( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Like PyUnicode_Find, but search for single character only."] - pub fn PyUnicode_FindChar( - str_: *mut PyObject, - ch: Py_UCS4, - start: Py_ssize_t, - end: Py_ssize_t, - direction: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Count the number of occurrences of substr in str[start:end]."] - pub fn PyUnicode_Count( - str_: *mut PyObject, - substr: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Replace at most maxcount occurrences of substr in str with replstr\nand return the resulting Unicode object."] - pub fn PyUnicode_Replace( - str_: *mut PyObject, - substr: *mut PyObject, - replstr: *mut PyObject, - maxcount: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compare two strings and return -1, 0, 1 for less than, equal,\ngreater than resp.\nRaise an exception and return -1 on error."] - pub fn PyUnicode_Compare(left: *mut PyObject, right: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Compare a Unicode object with C string and return -1, 0, 1 for less than,\nequal, and greater than, respectively. It is best to pass only\nASCII-encoded strings, but the function interprets the input string as\nISO-8859-1 if it contains non-ASCII characters.\nThis function does not raise exceptions."] - pub fn PyUnicode_CompareWithASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Rich compare two strings and return one of the following:\n\n- NULL in case an exception was raised\n- Py_True or Py_False for successful comparisons\n- Py_NotImplemented in case the type combination is unknown\n\nPossible values for op:\n\nPy_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE"] - pub fn PyUnicode_RichCompare( - left: *mut PyObject, - right: *mut PyObject, - op: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Apply an argument tuple or dictionary to a format string and return\nthe resulting Unicode string."] - pub fn PyUnicode_Format(format: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Checks whether element is contained in container and return 1/0\naccordingly.\n\nelement has to coerce to a one element Unicode string. -1 is\nreturned in case of an error."] - pub fn PyUnicode_Contains( - container: *mut PyObject, - element: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether argument is a valid identifier."] - pub fn PyUnicode_IsIdentifier(s: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " Py_DEPRECATED(3.3)"] -pub type Py_UNICODE = wchar_t; -#[doc = " ASCII-only strings created through PyUnicode_New use the PyASCIIObject\nstructure. state.ascii and state.compact are set, and the data\nimmediately follow the structure. utf8_length and wstr_length can be found\nin the length field; the utf8 pointer is equal to the data pointer."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject { - pub ob_base: PyObject, - #[doc = " Number of code points in the string"] - pub length: Py_ssize_t, - #[doc = " Hash value; -1 if not set"] - pub hash: Py_hash_t, - pub state: PyASCIIObject__bindgen_ty_1, - #[doc = " wchar_t representation (null-terminated)"] - pub wstr: *mut wchar_t, -} -#[repr(C)] -#[repr(align(4))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyASCIIObject__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, -} -#[test] -fn bindgen_test_layout_PyASCIIObject__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyASCIIObject__bindgen_ty_1)) - ); -} -impl PyASCIIObject__bindgen_ty_1 { - #[inline] - pub fn interned(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u32) } - } - #[inline] - pub fn set_interned(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn kind(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u32) } - } - #[inline] - pub fn set_kind(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn compact(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_compact(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn ascii(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_ascii(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn ready(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_ready(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - interned: ::std::os::raw::c_uint, - kind: ::std::os::raw::c_uint, - compact: ::std::os::raw::c_uint, - ascii: ::std::os::raw::c_uint, - ready: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let interned: u32 = unsafe { ::std::mem::transmute(interned) }; - interned as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let kind: u32 = unsafe { ::std::mem::transmute(kind) }; - kind as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let compact: u32 = unsafe { ::std::mem::transmute(compact) }; - compact as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let ascii: u32 = unsafe { ::std::mem::transmute(ascii) }; - ascii as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let ready: u32 = unsafe { ::std::mem::transmute(ready) }; - ready as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_PyASCIIObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyASCIIObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyASCIIObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyASCIIObject), - "::", - stringify!(wstr) - ) - ); -} -impl Default for PyASCIIObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Non-ASCII strings allocated through PyUnicode_New use the\nPyCompactUnicodeObject structure. state.compact is set, and the data\nimmediately follow the structure."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompactUnicodeObject { - pub _base: PyASCIIObject, - #[doc = " Number of bytes in utf8, excluding the\n terminating \\0."] - pub utf8_length: Py_ssize_t, - #[doc = " UTF-8 representation (null-terminated)"] - pub utf8: *mut ::std::os::raw::c_char, - #[doc = " Number of code points in wstr, possible\n surrogates count as two code points."] - pub wstr_length: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyCompactUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCompactUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_length) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(utf8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wstr_length) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCompactUnicodeObject), - "::", - stringify!(wstr_length) - ) - ); -} -impl Default for PyCompactUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Strings allocated through PyUnicode_FromUnicode(NULL, len) use the\nPyUnicodeObject structure. The actual string data is initially in the wstr\nblock, and copied into the data block using _PyUnicode_Ready."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PyUnicodeObject { - pub _base: PyCompactUnicodeObject, - #[doc = " Canonical, smallest-form Unicode buffer"] - pub data: PyUnicodeObject__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union PyUnicodeObject__bindgen_ty_1 { - pub any: *mut ::std::os::raw::c_void, - pub latin1: *mut Py_UCS1, - pub ucs2: *mut Py_UCS2, - pub ucs4: *mut Py_UCS4, -} -#[test] -fn bindgen_test_layout_PyUnicodeObject__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).any) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(any) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).latin1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(latin1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs2) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ucs4) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject__bindgen_ty_1), - "::", - stringify!(ucs4) - ) - ); -} -impl Default for PyUnicodeObject__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_PyUnicodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeObject), - "::", - stringify!(data) - ) - ); -} -impl Default for PyUnicodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyUnicode_CheckConsistency( - op: *mut PyObject, - check_content: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " String contains only wstr byte characters. This is only possible\nwhen the string was created with a legacy API and _PyUnicode_Ready()\nhas not been called yet."] -pub const PyUnicode_Kind_PyUnicode_WCHAR_KIND: PyUnicode_Kind = 0; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_1BYTE_KIND: PyUnicode_Kind = 1; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_2BYTE_KIND: PyUnicode_Kind = 2; -#[doc = " Return values of the PyUnicode_KIND() macro:"] -pub const PyUnicode_Kind_PyUnicode_4BYTE_KIND: PyUnicode_Kind = 4; -pub type PyUnicode_Kind = ::std::os::raw::c_uint; -extern "C" { - #[doc = " With PEP 393, this is the recommended way to allocate a new unicode object.\nThis function will allocate the object and its buffer in a single memory\nblock. Objects created using this function are not resizable."] - pub fn PyUnicode_New(size: Py_ssize_t, maxchar: Py_UCS4) -> *mut PyObject; -} -extern "C" { - #[doc = " Initializes the canonical string representation from the deprecated\nwstr/Py_UNICODE representation. This function is used to convert Unicode\nobjects which were created using the old API to the new flexible format\nintroduced with PEP 393.\n\nDon't call this function directly, use the public PyUnicode_READY() macro\ninstead."] - pub fn _PyUnicode_Ready(unicode: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get a copy of a Unicode string."] - pub fn _PyUnicode_Copy(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Copy character from one unicode object into another, this function performs\ncharacter conversion when necessary and falls back to memcpy() if possible.\n\nFail if to is too small (smaller than *how_many* or smaller than\nlen(from)-from_start), or if kind(from[from_start:from_start+how_many]) >\nkind(to), or if *to* has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error.\n\nPseudo-code:\n\nhow_many = min(how_many, len(from) - from_start)\nto[to_start:to_start+how_many] = from[from_start:from_start+how_many]\nreturn how_many\n\nNote: The function doesn't write a terminating null character."] - pub fn PyUnicode_CopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_CopyCharacters(): don't check arguments and so\nmay crash if parameters are invalid (e.g. if the output string\nis too short)."] - pub fn _PyUnicode_FastCopyCharacters( - to: *mut PyObject, - to_start: Py_ssize_t, - from: *mut PyObject, - from_start: Py_ssize_t, - how_many: Py_ssize_t, - ); -} -extern "C" { - #[doc = " Fill a string with a character: write fill_char into\nunicode[start:start+length].\n\nFail if fill_char is bigger than the string maximum character, or if the\nstring has more than 1 reference.\n\nReturn the number of written character, or return -1 and raise an exception\non error."] - pub fn PyUnicode_Fill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash\nif parameters are invalid (e.g. if length is longer than the string)."] - pub fn _PyUnicode_FastFill( - unicode: *mut PyObject, - start: Py_ssize_t, - length: Py_ssize_t, - fill_char: Py_UCS4, - ); -} -extern "C" { - #[doc = " Create a Unicode Object from the Py_UNICODE buffer u of the given\nsize.\n\nu may be NULL which causes the contents to be undefined. It is the\nuser's responsibility to fill in the needed data afterwards. Note\nthat modifying the Unicode object contents after construction is\nonly allowed if u was set to NULL.\n\nThe buffer is copied into the new object."] - pub fn PyUnicode_FromUnicode(u: *const Py_UNICODE, size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of Py_UCS1, Py_UCS2 or Py_UCS4 characters.\nScan the string to find the maximum character."] - pub fn PyUnicode_FromKindAndData( - kind: ::std::os::raw::c_int, - buffer: *const ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a new string from a buffer of ASCII characters.\nWARNING: Don't check if the string contains any non-ASCII character."] - pub fn _PyUnicode_FromASCII( - buffer: *const ::std::os::raw::c_char, - size: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Compute the maximum character of the substring unicode[start:end].\nReturn 127 for an empty string."] - pub fn _PyUnicode_FindMaxChar( - unicode: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> Py_UCS4; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicode(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string\ncontains null characters."] - pub fn _PyUnicode_AsUnicode(unicode: *mut PyObject) -> *const Py_UNICODE; -} -extern "C" { - #[doc = " Return a read-only pointer to the Unicode object's internal\nPy_UNICODE buffer and save the length at size.\nIf the wchar_t/Py_UNICODE representation is not yet available, this\nfunction will calculate it."] - pub fn PyUnicode_AsUnicodeAndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Get the maximum ordinal for a Unicode character."] - pub fn PyUnicode_GetMax() -> Py_UNICODE; -} -#[doc = " --- _PyUnicodeWriter API -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyUnicodeWriter { - pub buffer: *mut PyObject, - pub data: *mut ::std::os::raw::c_void, - pub kind: PyUnicode_Kind, - pub maxchar: Py_UCS4, - pub size: Py_ssize_t, - pub pos: Py_ssize_t, - #[doc = " minimum number of allocated characters (default: 0)"] - pub min_length: Py_ssize_t, - #[doc = " minimum character (default: 127, ASCII)"] - pub min_char: Py_UCS4, - #[doc = " If non-zero, overallocate the buffer (default: 0)."] - pub overallocate: ::std::os::raw::c_uchar, - #[doc = " If readonly is 1, buffer is a shared string (cannot be modified)\nand size is set to 0."] - pub readonly: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout__PyUnicodeWriter() { - const UNINIT: ::std::mem::MaybeUninit<_PyUnicodeWriter> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyUnicodeWriter>(), - 56usize, - concat!("Size of: ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - ::std::mem::align_of::<_PyUnicodeWriter>(), - 8usize, - concat!("Alignment of ", stringify!(_PyUnicodeWriter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(buffer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxchar) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(maxchar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_length) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_char) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(min_char) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overallocate) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(overallocate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).readonly) as usize - ptr as usize }, - 53usize, - concat!( - "Offset of field: ", - stringify!(_PyUnicodeWriter), - "::", - stringify!(readonly) - ) - ); -} -impl Default for _PyUnicodeWriter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Initialize a Unicode writer.\n\n By default, the minimum buffer size is 0 character and overallocation is\n disabled. Set min_length, min_char and overallocate attributes to control\n the allocation of the buffer."] - pub fn _PyUnicodeWriter_Init(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_Prepare() macro\ninstead."] - pub fn _PyUnicodeWriter_PrepareInternal( - writer: *mut _PyUnicodeWriter, - length: Py_ssize_t, - maxchar: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Don't call this function directly, use the _PyUnicodeWriter_PrepareKind()\nmacro instead."] - pub fn _PyUnicodeWriter_PrepareKindInternal( - writer: *mut _PyUnicodeWriter, - kind: PyUnicode_Kind, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode character.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteChar( - writer: *mut _PyUnicodeWriter, - ch: Py_UCS4, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteStr( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a substring of a Unicode string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteSubstring( - writer: *mut _PyUnicodeWriter, - str_: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append an ASCII-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteASCIIString( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Append a latin1-encoded byte string.\nReturn 0 on success, raise an exception and return -1 on error."] - pub fn _PyUnicodeWriter_WriteLatin1String( - writer: *mut _PyUnicodeWriter, - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the value of the writer as a Unicode string. Clear the\nbuffer of the writer. Raise an exception and return NULL\non error."] - pub fn _PyUnicodeWriter_Finish(writer: *mut _PyUnicodeWriter) -> *mut PyObject; -} -extern "C" { - #[doc = " Deallocate memory of a writer (clear its internal buffer)."] - pub fn _PyUnicodeWriter_Dealloc(writer: *mut _PyUnicodeWriter); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyUnicode_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode and the size of the encoded representation\nin bytes stored in *size.\n\nIn case of an error, no *size is set.\n\nThis function caches the UTF-8 encoded string in the unicodeobject\nand subsequent calls will return the same string. The memory is released\nwhen the unicodeobject is deallocated.\n\n_PyUnicode_AsStringAndSize is a #define for PyUnicode_AsUTF8AndSize to\nsupport the previous internal function with the same behaviour."] - pub fn PyUnicode_AsUTF8AndSize( - unicode: *mut PyObject, - size: *mut Py_ssize_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Returns a pointer to the default encoding (UTF-8) of the\nUnicode object unicode.\n\nLike PyUnicode_AsUTF8AndSize(), this also caches the UTF-8 representation\nin the unicodeobject.\n\n_PyUnicode_AsString is a #define for PyUnicode_AsUTF8 to\nsupport the previous internal function with the same behaviour.\n\nUse of this API is DEPRECATED since no size information can be\nextracted from the returned data."] - pub fn PyUnicode_AsUTF8(unicode: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Encodes a Py_UNICODE buffer of the given size and returns a\nPython string object."] - pub fn PyUnicode_Encode( - s: *const Py_UNICODE, - size: Py_ssize_t, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-7 Codecs -------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF7( - data: *const Py_UNICODE, - length: Py_ssize_t, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF7( - unicode: *mut PyObject, - base64SetO: ::std::os::raw::c_int, - base64WhiteSpace: ::std::os::raw::c_int, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-8 Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsUTF8String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUTF8( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- UTF-32 Codecs ------------------------------------------------------"] - pub fn PyUnicode_EncodeUTF32( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF32( - object: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns a Python string object holding the UTF-16 encoded value of\nthe Unicode data.\n\nIf byteorder is not 0, output is written according to the following\nbyte order:\n\nbyteorder == -1: little endian\nbyteorder == 0: native byte order (writes a BOM mark)\nbyteorder == 1: big endian\n\nIf byteorder is 0, the output string will always start with the\nUnicode BOM mark (U+FEFF). In the other two modes, no BOM mark is\nprepended.\n\nNote that Py_UNICODE data is being interpreted as UTF-16 reduced to\nUCS-2. This trick makes it possible to add full UTF-16 capabilities\nat a later point without compromising the APIs."] - pub fn PyUnicode_EncodeUTF16( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeUTF16( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - byteorder: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape\nchars."] - pub fn _PyUnicode_DecodeUnicodeEscapeInternal( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - first_invalid_escape: *mut *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Raw-Unicode-Escape Codecs ------------------------------------------"] - pub fn PyUnicode_EncodeRawUnicodeEscape( - data: *const Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding."] - pub fn _PyUnicode_DecodeRawUnicodeEscapeStateful( - string: *const ::std::os::raw::c_char, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - consumed: *mut Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Latin-1 Codecs -----------------------------------------------------"] - pub fn _PyUnicode_AsLatin1String( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeLatin1( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- ASCII Codecs -------------------------------------------------------"] - pub fn _PyUnicode_AsASCIIString( - unicode: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicode_EncodeASCII( - data: *const Py_UNICODE, - length: Py_ssize_t, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Character Map Codecs -----------------------------------------------"] - pub fn PyUnicode_EncodeCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicode_EncodeCharmap( - unicode: *mut PyObject, - mapping: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Translate a Py_UNICODE buffer of the given length by applying a\ncharacter mapping table to it and return the resulting Unicode\nobject.\n\nThe mapping table must map Unicode ordinal integers to Unicode strings,\nUnicode ordinal integers or None (causing deletion of the character).\n\nMapping tables may be dictionaries or sequences. Unmapped character\nordinals (ones which cause a LookupError) are left untouched and\nare copied as-is."] - pub fn PyUnicode_TranslateCharmap( - data: *const Py_UNICODE, - length: Py_ssize_t, - table: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes a Unicode string holding a decimal value and writes it into\nan output buffer using standard ASCII digit codes.\n\nThe output buffer has to provide at least length+1 bytes of storage\narea. The output string is 0-terminated.\n\nThe encoder converts whitespace to ' ', decimal characters to their\ncorresponding ASCII digit and all other Latin-1 characters except\n\\0 as-is. Characters outside this range (Unicode ordinals 1-256)\nare treated as errors. This includes embedded NULL bytes.\n\nError handling is defined by the errors argument:\n\nNULL or \"strict\": raise a ValueError\n\"ignore\": ignore the wrong characters (these are not copied to the\noutput buffer)\n\"replace\": replaces illegal characters with '?'\n\nReturns 0 on success, -1 on failure."] - pub fn PyUnicode_EncodeDecimal( - s: *mut Py_UNICODE, - length: Py_ssize_t, - output: *mut ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Transforms code points that have decimal digit property to the\ncorresponding ASCII digit code points.\n\nReturns a new Unicode string on success, NULL on failure."] - pub fn PyUnicode_TransformDecimalToASCII( - s: *mut Py_UNICODE, - length: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Coverts a Unicode object holding a decimal value to an ASCII string\nfor using in int, float and complex parsers.\nTransforms code points that have decimal digit property to the\ncorresponding ASCII digit code points. Transforms spaces to ASCII.\nTransforms code points starting from the first non-ASCII code point that\nis neither a decimal digit nor a space to the end into '?'."] - pub fn _PyUnicode_TransformDecimalAndSpaceToASCII(unicode: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " --- Methods & Slots ----------------------------------------------------"] - pub fn _PyUnicode_JoinArray( - separator: *mut PyObject, - items: *const *mut PyObject, - seqlen: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII identifier. Return 1 if true,\n0 otherwise. The right argument must be ASCII identifier.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIId( - left: *mut PyObject, - right: *mut _Py_Identifier, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test whether a unicode is equal to ASCII string. Return 1 if true,\n0 otherwise. The right argument must be ASCII-encoded string.\nAny error occurs inside will be cleared before return."] - pub fn _PyUnicode_EqualToASCIIString( - left: *mut PyObject, - right: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Externally visible for str.strip(unicode)"] - pub fn _PyUnicode_XStrip( - self_: *mut PyObject, - striptype: ::std::os::raw::c_int, - sepobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Using explicit passed-in values, insert the thousands grouping\ninto the string pointed to by buffer. For the argument descriptions,\nsee Objects/stringlib/localeutil.h"] - pub fn _PyUnicode_InsertThousandsGrouping( - writer: *mut _PyUnicodeWriter, - n_buffer: Py_ssize_t, - digits: *mut PyObject, - d_pos: Py_ssize_t, - n_digits: Py_ssize_t, - min_width: Py_ssize_t, - grouping: *const ::std::os::raw::c_char, - thousands_sep: *mut PyObject, - maxchar: *mut Py_UCS4, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " Helper array used by Py_UNICODE_ISSPACE()."] - pub static _Py_ascii_whitespace: [::std::os::raw::c_uchar; 0usize]; -} -extern "C" { - #[doc = " These should not be used directly. Use the Py_UNICODE_IS* and\nPy_UNICODE_TO* macros instead.\n\nThese APIs are implemented in Objects/unicodectype.c."] - pub fn _PyUnicode_IsLowercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsUppercase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsTitlecase(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidStart(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsXidContinue(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsWhitespace(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsLinebreak(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToLowercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - #[doc = " Py_DEPRECATED(3.3)"] - pub fn _PyUnicode_ToUppercase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToTitlecase(ch: Py_UCS4) -> Py_UCS4; -} -extern "C" { - pub fn _PyUnicode_ToLowerFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToTitleFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToUpperFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToFoldedFull(ch: Py_UCS4, res: *mut Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCaseIgnorable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsCased(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ToNumeric(ch: Py_UCS4) -> f64; -} -extern "C" { - pub fn _PyUnicode_IsDecimalDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsDigit(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsNumeric(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsPrintable(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_IsAlpha(ch: Py_UCS4) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strlen(u: *const Py_UNICODE) -> usize; -} -extern "C" { - pub fn Py_UNICODE_strcpy(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcat(s1: *mut Py_UNICODE, s2: *const Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strncpy( - s1: *mut Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strcmp(s1: *const Py_UNICODE, s2: *const Py_UNICODE) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strncmp( - s1: *const Py_UNICODE, - s2: *const Py_UNICODE, - n: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UNICODE_strchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn Py_UNICODE_strrchr(s: *const Py_UNICODE, c: Py_UNICODE) -> *mut Py_UNICODE; -} -extern "C" { - pub fn _PyUnicode_FormatLong( - arg1: *mut PyObject, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a copy of a unicode string ending with a nul character. Return NULL\nand raise a MemoryError exception on memory allocation failure, otherwise\nreturn a new allocated buffer (use PyMem_Free() to free the buffer)."] - pub fn PyUnicode_AsUnicodeCopy(unicode: *mut PyObject) -> *mut Py_UNICODE; -} -extern "C" { - #[doc = " Return an interned Unicode object for an Identifier; may fail if there is no memory."] - pub fn _PyUnicode_FromId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Fast equality check when the inputs are known to be exact unicode types\nand where the hash values are equal (i.e. a very probable match)"] - pub fn _PyUnicode_EQ(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyUnicode_ScanIdentifier(arg1: *mut PyObject) -> Py_ssize_t; -} -#[doc = " Long (arbitrary precision) integer object interface"] -pub type PyLongObject = _longobject; -extern "C" { - pub static mut PyLong_Type: PyTypeObject; -} -extern "C" { - pub fn PyLong_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLong(arg1: ::std::os::raw::c_ulong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSize_t(arg1: usize) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromSsize_t(arg1: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLong(arg1: *mut PyObject) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyLong_AsSsize_t(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyLong_AsSize_t(arg1: *mut PyObject) -> usize; -} -extern "C" { - pub fn PyLong_AsUnsignedLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyLong_AsInt(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyLong_GetInfo() -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_UnsignedShort_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedInt_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_UnsignedLongLong_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_Size_t_Converter( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut _PyLong_DigitValue: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn _PyLong_Frexp(a: *mut PyLongObject, e: *mut Py_ssize_t) -> f64; -} -extern "C" { - pub fn PyLong_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyLong_FromVoidPtr(arg1: *mut ::std::os::raw::c_void) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsVoidPtr(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyLong_FromLongLong(arg1: ::std::os::raw::c_longlong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnsignedLongLong(arg1: ::std::os::raw::c_ulonglong) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_AsLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLong(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsUnsignedLongLongMask(arg1: *mut PyObject) -> ::std::os::raw::c_ulonglong; -} -extern "C" { - pub fn PyLong_AsLongLongAndOverflow( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_longlong; -} -extern "C" { - pub fn PyLong_FromString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicode( - arg1: *mut Py_UNICODE, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyLong_FromUnicodeObject(u: *mut PyObject, base: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FromBytes( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Sign. Return 0 if v is 0, -1 if v < 0, +1 if v > 0.\nv must not be NULL, and must be a normalized long.\nThere are no error cases."] - pub fn _PyLong_Sign(v: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_NumBits. Return the number of bits needed to represent the\nabsolute value of a long. For example, this returns 1 for 1 and -1, 2\nfor 2 and -2, and 2 for 3 and -3. It returns 0 for 0.\nv must not be NULL, and must be a normalized long.\n(size_t)-1 is returned and OverflowError set if the true result doesn't\nfit in a size_t."] - pub fn _PyLong_NumBits(v: *mut PyObject) -> usize; -} -extern "C" { - #[doc = " _PyLong_DivmodNear. Given integers a and b, compute the nearest\ninteger q to the exact quotient a / b, rounding to the nearest even integer\nin the case of a tie. Return (q, r), where r = a - q*b. The remainder r\nwill satisfy abs(r) <= abs(b)/2, with equality possible only if q is\neven."] - pub fn _PyLong_DivmodNear(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_FromByteArray: View the n unsigned bytes as a binary integer in\nbase 256, and return a Python int with the same numeric value.\nIf n is 0, the integer is 0. Else:\nIf little_endian is 1/true, bytes[n-1] is the MSB and bytes[0] the LSB;\nelse (little_endian is 0/false) bytes[0] is the MSB and bytes[n-1] the\nLSB.\nIf is_signed is 0/false, view the bytes as a non-negative integer.\nIf is_signed is 1/true, view the bytes as a 2's-complement integer,\nnon-negative if bit 0x80 of the MSB is clear, negative if set.\nError returns:\n+ Return NULL with the appropriate exception set if there's not\nenough memory to create the Python int."] - pub fn _PyLong_FromByteArray( - bytes: *const ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_AsByteArray: Convert the least-significant 8*n bits of long\nv to a base-256 integer, stored in array bytes. Normally return 0,\nreturn -1 on error.\nIf little_endian is 1/true, store the MSB at bytes[n-1] and the LSB at\nbytes[0]; else (little_endian is 0/false) store the MSB at bytes[0] and\nthe LSB at bytes[n-1].\nIf is_signed is 0/false, it's an error if v < 0; else (v >= 0) n bytes\nare filled and there's nothing special about bit 0x80 of the MSB.\nIf is_signed is 1/true, bytes is filled with the 2's-complement\nrepresentation of v's value. Bit 0x80 of the MSB is the sign bit.\nError returns (-1):\n+ is_signed is 0 and v < 0. TypeError is set in this case, and bytes\nisn't altered.\n+ n isn't big enough to hold the full mathematical value of v. For\nexample, if is_signed is 0 and there are more digits in the v than\nfit in n; or if is_signed is 1, v < 0, and n is just 1 bit shy of\nbeing large enough to hold a sign bit. OverflowError is set in this\ncase, but bytes holds the least-significant n bytes of the true value."] - pub fn _PyLong_AsByteArray( - v: *mut PyLongObject, - bytes: *mut ::std::os::raw::c_uchar, - n: usize, - little_endian: ::std::os::raw::c_int, - is_signed: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " _PyLong_FromNbInt: Convert the given object to a PyLongObject\nusing the nb_int slot, if available. Raise TypeError if either the\nnb_int slot is not available or the result of the call to nb_int\nreturns something not of type int."] - pub fn _PyLong_FromNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Convert the given object to a PyLongObject using the nb_index or\nnb_int slots, if available (the latter is deprecated).\nRaise TypeError if either nb_index and nb_int slots are not\navailable or the result of the call to nb_index or nb_int\nreturns something not of type int.\nShould be replaced with PyNumber_Index after the end of the\ndeprecation period."] - pub fn _PyLong_FromNbIndexOrNbInt(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " _PyLong_Format: Convert the long to a string object with given base,\nappending a base prefix of 0[box] if base is 2, 8 or 16."] - pub fn _PyLong_Format(obj: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_FormatWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyLong_FormatBytesWriter( - writer: *mut _PyBytesWriter, - str_: *mut ::std::os::raw::c_char, - obj: *mut PyObject, - base: ::std::os::raw::c_int, - alternate: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyLong_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " These aren't really part of the int object, but they're handy. The\nfunctions are in Python/mystrtoul.c."] - pub fn PyOS_strtoul( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyOS_strtol( - arg1: *const ::std::os::raw::c_char, - arg2: *mut *mut ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_long; -} -extern "C" { - #[doc = " For use by the gcd function in mathmodule.c"] - pub fn _PyLong_GCD(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut _PyLong_Zero: *mut PyObject; -} -extern "C" { - pub static mut _PyLong_One: *mut PyObject; -} -extern "C" { - pub fn _PyLong_Rshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -extern "C" { - pub fn _PyLong_Lshift(arg1: *mut PyObject, arg2: usize) -> *mut PyObject; -} -pub type digit = u32; -pub type sdigit = i32; -pub type twodigits = u64; -pub type stwodigits = i64; -#[doc = " Long integer representation.\nThe absolute value of a number is equal to\nSUM(for i=0 through abs(ob_size)-1) ob_digit[i] * 2**(SHIFT*i)\nNegative numbers are represented with ob_size < 0;\nzero is represented by ob_size == 0.\nIn a normalized number, ob_digit[abs(ob_size)-1] (the most significant\ndigit) is never zero. Also, in all cases, for all valid i,\n0 <= ob_digit[i] <= MASK.\nThe allocation function takes care of allocating extra memory\nso that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.\n\nCAUTION: Generic code manipulating subtypes of PyVarObject has to\naware that ints abuse ob_size's sign bit."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _longobject { - pub ob_base: PyVarObject, - pub ob_digit: [digit; 1usize], -} -#[test] -fn bindgen_test_layout__longobject() { - const UNINIT: ::std::mem::MaybeUninit<_longobject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_longobject>(), - 32usize, - concat!("Size of: ", stringify!(_longobject)) - ); - assert_eq!( - ::std::mem::align_of::<_longobject>(), - 8usize, - concat!("Alignment of ", stringify!(_longobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_digit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_longobject), - "::", - stringify!(ob_digit) - ) - ); -} -impl Default for _longobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyLong_New(arg1: Py_ssize_t) -> *mut PyLongObject; -} -extern "C" { - #[doc = " Return a copy of src."] - pub fn _PyLong_Copy(src: *mut PyLongObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyBool_Type: PyTypeObject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_FalseStruct: _longobject; -} -extern "C" { - #[doc = " Don't use these directly"] - pub static mut _Py_TrueStruct: _longobject; -} -extern "C" { - #[doc = " Function to return a bool from a C long"] - pub fn PyBool_FromLong(arg1: ::std::os::raw::c_long) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyFloatObject { - pub ob_base: PyObject, - pub ob_fval: f64, -} -#[test] -fn bindgen_test_layout_PyFloatObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyFloatObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFloatObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_fval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFloatObject), - "::", - stringify!(ob_fval) - ) - ); -} -impl Default for PyFloatObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFloat_Type: PyTypeObject; -} -extern "C" { - pub fn PyFloat_GetMax() -> f64; -} -extern "C" { - pub fn PyFloat_GetMin() -> f64; -} -extern "C" { - pub fn PyFloat_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from string PyObject."] - pub fn PyFloat_FromString(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return Python float from C double."] - pub fn PyFloat_FromDouble(arg1: f64) -> *mut PyObject; -} -extern "C" { - #[doc = " Extract C double from Python float. The macro version trades safety for\nspeed."] - pub fn PyFloat_AsDouble(arg1: *mut PyObject) -> f64; -} -extern "C" { - #[doc = " The pack routines write 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if you want the string in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if you want big-endian format (exponent\n first, at p).\n Return value: 0 if all is OK, -1 if error (and an exception is\n set, most likely OverflowError).\n There are two problems on non-IEEE platforms:\n 1): What this does is undefined if x is a NaN or infinity.\n 2): -0.0 and +0.0 produce the same string."] - pub fn _PyFloat_Pack2( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack4( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFloat_Pack8( - x: f64, - p: *mut ::std::os::raw::c_uchar, - le: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool\n argument, true if the string is in little-endian format (exponent\n last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).\n Return value: The unpacked double. On error, this is -1.0 and\n PyErr_Occurred() is true (and an exception is set, most likely\n OverflowError). Note that on a non-IEEE platform this will refuse\n to unpack a string that represents a NaN or infinity."] - pub fn _PyFloat_Unpack2(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack4(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_Unpack8(p: *const ::std::os::raw::c_uchar, le: ::std::os::raw::c_int) -> f64; -} -extern "C" { - pub fn _PyFloat_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " Format the object based on the format_spec, as defined in PEP 3101\n(Advanced String Formatting)."] - pub fn _PyFloat_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialOrd, PartialEq)] -pub struct Py_complex { - pub real: f64, - pub imag: f64, -} -#[test] -fn bindgen_test_layout_Py_complex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(Py_complex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(Py_complex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(real) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imag) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(Py_complex), - "::", - stringify!(imag) - ) - ); -} -extern "C" { - #[doc = " Operations on complex numbers from complexmodule.c"] - pub fn _Py_c_sum(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_diff(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_neg(arg1: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_prod(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_quot(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_pow(arg1: Py_complex, arg2: Py_complex) -> Py_complex; -} -extern "C" { - pub fn _Py_c_abs(arg1: Py_complex) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialOrd, PartialEq)] -pub struct PyComplexObject { - pub ob_base: PyObject, - pub cval: Py_complex, -} -#[test] -fn bindgen_test_layout_PyComplexObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyComplexObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyComplexObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cval) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyComplexObject), - "::", - stringify!(cval) - ) - ); -} -impl Default for PyComplexObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyComplex_Type: PyTypeObject; -} -extern "C" { - pub fn PyComplex_FromCComplex(arg1: Py_complex) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_FromDoubles(real: f64, imag: f64) -> *mut PyObject; -} -extern "C" { - pub fn PyComplex_RealAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_ImagAsDouble(op: *mut PyObject) -> f64; -} -extern "C" { - pub fn PyComplex_AsCComplex(op: *mut PyObject) -> Py_complex; -} -extern "C" { - pub fn _PyComplex_FormatAdvancedWriter( - writer: *mut _PyUnicodeWriter, - obj: *mut PyObject, - format_spec: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "A range object represents an integer range. This is an immutable object;\na range cannot change its value after creation.\n\nRange objects behave like the corresponding tuple objects except that\nthey are represented by a start, stop, and step datamembers."] - pub static mut PyRange_Type: PyTypeObject; -} -extern "C" { - pub static mut PyRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyLongRangeIter_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyManagedBuffer_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemoryView_Type: PyTypeObject; -} -extern "C" { - pub fn PyMemoryView_FromObject(base: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromMemory( - mem: *mut ::std::os::raw::c_char, - size: Py_ssize_t, - flags: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_FromBuffer(info: *mut Py_buffer) -> *mut PyObject; -} -extern "C" { - pub fn PyMemoryView_GetContiguous( - base: *mut PyObject, - buffertype: ::std::os::raw::c_int, - order: ::std::os::raw::c_char, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyManagedBufferObject { - pub ob_base: PyObject, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of direct memoryview exports"] - pub exports: Py_ssize_t, - #[doc = " snapshot buffer obtained from the original exporter"] - pub master: Py_buffer, -} -#[test] -fn bindgen_test_layout__PyManagedBufferObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyManagedBufferObject> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyManagedBufferObject>(), - 112usize, - concat!("Size of: ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyManagedBufferObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyManagedBufferObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).master) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyManagedBufferObject), - "::", - stringify!(master) - ) - ); -} -impl Default for _PyManagedBufferObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemoryViewObject { - pub ob_base: PyVarObject, - #[doc = " managed buffer"] - pub mbuf: *mut _PyManagedBufferObject, - #[doc = " hash value for read-only views"] - pub hash: Py_hash_t, - #[doc = " state flags"] - pub flags: ::std::os::raw::c_int, - #[doc = " number of buffer re-exports"] - pub exports: Py_ssize_t, - #[doc = " private copy of the exporter's view"] - pub view: Py_buffer, - pub weakreflist: *mut PyObject, - #[doc = " shape, strides, suboffsets"] - pub ob_array: [Py_ssize_t; 1usize], -} -#[test] -fn bindgen_test_layout_PyMemoryViewObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemoryViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mbuf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(mbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exports) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(exports) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(view) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_array) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyMemoryViewObject), - "::", - stringify!(ob_array) - ) - ); -} -impl Default for PyMemoryViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = "Another generally useful object type is a tuple of object pointers.\nFor Python, this is an immutable type. C code can change the tuple items\n(but not their number), and even use tuples as general-purpose arrays of\nobject references, but in general only brand new tuples should be mutated,\nnot ones that might already have been exposed to Python code.\n\n WARNING *** PyTuple_SetItem does not increment the new item's reference\ncount, but does decrement the reference count of the item it replaces,\nif not nil. It does *decrement* the reference count if it is *not*\ninserted in the tuple. Similarly, PyTuple_GetItem does not increment the\nreturned item's reference count."] - pub static mut PyTuple_Type: PyTypeObject; -} -extern "C" { - pub static mut PyTupleIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyTuple_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyTuple_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTuple_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyTuple_Pack(arg1: Py_ssize_t, ...) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyTupleObject { - pub ob_base: PyVarObject, - #[doc = " ob_item contains space for 'ob_size' elements.\nItems must normally not be NULL, except during construction when\nthe tuple is not yet visible outside the function that builds it."] - pub ob_item: [*mut PyObject; 1usize], -} -#[test] -fn bindgen_test_layout_PyTupleObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyTupleObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyTupleObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyTupleObject), - "::", - stringify!(ob_item) - ) - ); -} -impl Default for PyTupleObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyTuple_Resize(arg1: *mut *mut PyObject, arg2: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTuple_MaybeUntrack(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyTuple_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub static mut PyList_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyListRevIter_Type: PyTypeObject; -} -extern "C" { - pub fn PyList_New(size: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_Size(arg1: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyList_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetItem( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Insert( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Append(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_GetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyList_SetSlice( - arg1: *mut PyObject, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Sort(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_Reverse(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyList_AsTuple(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyListObject { - pub ob_base: PyVarObject, - #[doc = " Vector of pointers to list elements. list[0] is ob_item[0], etc."] - pub ob_item: *mut *mut PyObject, - #[doc = " ob_item contains space for 'allocated' elements. The number\n currently in use is ob_size.\n Invariants:\n 0 <= ob_size <= allocated\n len(list) == ob_size\n ob_item == NULL implies ob_size == allocated == 0\n list.sort() temporarily sets allocated to -1 to detect mutations.\n\n Items must normally not be NULL, except during construction when\n the list is not yet visible outside the function that builds it."] - pub allocated: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyListObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyListObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyListObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(ob_item) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocated) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyListObject), - "::", - stringify!(allocated) - ) - ); -} -impl Default for PyListObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyList_Extend(arg1: *mut PyListObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyList_DebugMallocStats(out: *mut FILE); -} -extern "C" { - #[doc = " The distribution includes a separate file, Objects/dictnotes.txt,\ndescribing explorations into dictionary design and optimization.\nIt covers typical dictionary use patterns, the parameters for\ntuning dictionaries, and several ideas for possible optimizations."] - pub static mut PyDict_Type: PyTypeObject; -} -extern "C" { - pub fn PyDict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItem(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_GetItemWithError(mp: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItem( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItem(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Clear(mp: *mut PyObject); -} -extern "C" { - pub fn PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_Keys(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Values(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Items(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Size(mp: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyDict_Copy(mp: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_Contains(mp: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Update(mp, other) is equivalent to PyDict_Merge(mp, other, 1)."] - pub fn PyDict_Update(mp: *mut PyObject, other: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_Merge updates/merges from a mapping object (an object that\nsupports PyMapping_Keys() and PyObject_GetItem()). If override is true,\nthe last occurrence of a key wins, else the first. The Python\ndict.update(other) is equivalent to PyDict_Merge(dict, other, 1)."] - pub fn PyDict_Merge( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PyDict_MergeFromSeq2 updates/merges from an iterable object producing\niterable objects of length 2. If override is true, the last occurrence\nof a key wins, else the first. The Python dict constructor dict(seq2)\nis equivalent to dict={}; PyDict_MergeFromSeq(dict, seq2, 1)."] - pub fn PyDict_MergeFromSeq2( - d: *mut PyObject, - seq2: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_GetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyDict_DelItemString( - dp: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Dictionary (keys, values, items) views"] - pub static mut PyDictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictValues_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictItems_Type: PyTypeObject; -} -extern "C" { - #[doc = " Dictionary (key, value, items) iterators"] - pub static mut PyDictIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterValue_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterKey_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterItem_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictRevIterValue_Type: PyTypeObject; -} -pub type PyDictKeysObject = _dictkeysobject; -#[doc = " The ma_values pointer is NULL for a combined table\n or points to an array of PyObject* for a split table"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDictObject { - pub ob_base: PyObject, - #[doc = " Number of items in the dictionary"] - pub ma_used: Py_ssize_t, - #[doc = " Dictionary version: globally unique, value change each time\nthe dictionary is modified"] - pub ma_version_tag: u64, - pub ma_keys: *mut PyDictKeysObject, - #[doc = " If ma_values is NULL, the table is \"combined\": keys and values\nare stored in ma_keys.\n\nIf ma_values is not NULL, the table is split:\nkeys are stored in ma_keys and values are stored in ma_values"] - pub ma_values: *mut *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDictObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyDictObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDictObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_used) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_version_tag) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_version_tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_keys) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_keys) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ma_values) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyDictObject), - "::", - stringify!(ma_values) - ) - ); -} -impl Default for PyDictObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDict_GetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemIdWithError(dp: *mut PyObject, key: *mut _Py_Identifier) - -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_GetItemStringWithError( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDict_SetDefault( - mp: *mut PyObject, - key: *mut PyObject, - defaultobj: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItem_KnownHash( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemIf( - mp: *mut PyObject, - key: *mut PyObject, - predicate: ::std::option::Option< - unsafe extern "C" fn(value: *mut PyObject) -> ::std::os::raw::c_int, - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewKeysForClass() -> *mut PyDictKeysObject; -} -extern "C" { - pub fn PyObject_GenericGetDict( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Next( - mp: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - value: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_Contains( - mp: *mut PyObject, - key: *mut PyObject, - hash: Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_NewPresized(minused: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_MaybeUntrack(mp: *mut PyObject); -} -extern "C" { - pub fn _PyDict_HasOnlyStringKeys(mp: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_KeysSize(keys: *mut PyDictKeysObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_SizeOf(arg1: *mut PyDictObject) -> Py_ssize_t; -} -extern "C" { - pub fn _PyDict_Pop( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_Pop_KnownHash( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: Py_hash_t, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_FromKeys( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0,\nthe first occurrence of a key wins, if override is 1, the last occurrence\nof a key wins, if override is 2, a KeyError with conflicting key as\nargument is raised."] - pub fn _PyDict_MergeEx( - mp: *mut PyObject, - other: *mut PyObject, - override_: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_GetItemId(dp: *mut PyObject, key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyDict_SetItemId( - dp: *mut PyObject, - key: *mut _Py_Identifier, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DelItemId(mp: *mut PyObject, key: *mut _Py_Identifier) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_DebugMallocStats(out: *mut FILE); -} -extern "C" { - pub fn _PyObjectDict_SetItem( - tp: *mut PyTypeObject, - dictptr: *mut *mut PyObject, - name: *mut PyObject, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyDict_LoadGlobal( - arg1: *mut PyDictObject, - arg2: *mut PyDictObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " _PyDictView"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyDictViewObject { - pub ob_base: PyObject, - pub dv_dict: *mut PyDictObject, -} -#[test] -fn bindgen_test_layout__PyDictViewObject() { - const UNINIT: ::std::mem::MaybeUninit<_PyDictViewObject> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyDictViewObject>(), - 24usize, - concat!("Size of: ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - ::std::mem::align_of::<_PyDictViewObject>(), - 8usize, - concat!("Alignment of ", stringify!(_PyDictViewObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dv_dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyDictViewObject), - "::", - stringify!(dv_dict) - ) - ); -} -impl Default for _PyDictViewObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyDictView_New(arg1: *mut PyObject, arg2: *mut PyTypeObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyDictView_Intersect(self_: *mut PyObject, other: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _odictobject { - _unused: [u8; 0], -} -pub type PyODictObject = _odictobject; -extern "C" { - pub static mut PyODict_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictKeys_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictItems_Type: PyTypeObject; -} -extern "C" { - pub static mut PyODictValues_Type: PyTypeObject; -} -extern "C" { - pub fn PyODict_New() -> *mut PyObject; -} -extern "C" { - pub fn PyODict_SetItem( - od: *mut PyObject, - key: *mut PyObject, - item: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyODict_DelItem(od: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyEnum_Type: PyTypeObject; -} -extern "C" { - pub static mut PyReversed_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct setentry { - pub key: *mut PyObject, - #[doc = " Cached hash code of the key"] - pub hash: Py_hash_t, -} -#[test] -fn bindgen_test_layout_setentry() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(setentry)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(setentry)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(setentry), - "::", - stringify!(hash) - ) - ); -} -impl Default for setentry { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " The SetObject data structure is shared by set and frozenset objects.\n\nInvariant for sets:\n- hash is -1\n\nInvariants for frozensets:\n- data is immutable.\n- hash is the hash of the frozenset or -1 if not computed yet."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySetObject { - pub ob_base: PyObject, - #[doc = " Number active and dummy entries"] - pub fill: Py_ssize_t, - #[doc = " Number active entries"] - pub used: Py_ssize_t, - #[doc = " The table contains mask + 1 slots, and that's a power of 2.\n We store the mask instead of the size because the mask is more\n frequently needed."] - pub mask: Py_ssize_t, - #[doc = " The table points to a fixed-size smalltable for small tables\n or to additional malloc'ed memory for bigger tables.\n The table pointer is never NULL which saves us from repeated\n runtime null-tests."] - pub table: *mut setentry, - #[doc = " Only used by frozenset objects"] - pub hash: Py_hash_t, - #[doc = " Search finger for pop()"] - pub finger: Py_ssize_t, - pub smalltable: [setentry; 8usize], - #[doc = " List of weak references"] - pub weakreflist: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySetObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 200usize, - concat!("Size of: ", stringify!(PySetObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySetObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).table) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finger) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(finger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smalltable) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(smalltable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).weakreflist) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PySetObject), - "::", - stringify!(weakreflist) - ) - ); -} -impl Default for PySetObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PySet_Dummy: *mut PyObject; -} -extern "C" { - pub fn _PySet_NextEntry( - set: *mut PyObject, - pos: *mut Py_ssize_t, - key: *mut *mut PyObject, - hash: *mut Py_hash_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySet_Update(set: *mut PyObject, iterable: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySet_Type: PyTypeObject; -} -extern "C" { - pub static mut PyFrozenSet_Type: PyTypeObject; -} -extern "C" { - pub static mut PySetIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFrozenSet_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Add(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Clear(set: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Contains(anyset: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Discard(set: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySet_Pop(set: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PySet_Size(anyset: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " This is about the type 'builtin_function_or_method',\nnot Python methods in user-defined classes. See classobject.h\nfor the latter."] - pub static mut PyCFunction_Type: PyTypeObject; -} -pub type PyCFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject, ->; -pub type _PyCFunctionFast = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - ) -> *mut PyObject, ->; -pub type PyCFunctionWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject, ->; -pub type _PyCFunctionFastWithKeywords = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *const *mut PyObject, - arg3: Py_ssize_t, - arg4: *mut PyObject, - ) -> *mut PyObject, ->; -pub type PyCMethod = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyTypeObject, - arg3: *const *mut PyObject, - arg4: usize, - arg5: *mut PyObject, - ) -> *mut PyObject, ->; -extern "C" { - pub fn PyCFunction_GetFunction(arg1: *mut PyObject) -> PyCFunction; -} -extern "C" { - pub fn PyCFunction_GetSelf(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCFunction_GetFlags(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCFunction_Call( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDef { - #[doc = " The name of the built-in function/method"] - pub ml_name: *const ::std::os::raw::c_char, - #[doc = " The C function that implements it"] - pub ml_meth: PyCFunction, - #[doc = " Combination of METH_xxx flags, which mostly\ndescribe the args expected by the C func"] - pub ml_flags: ::std::os::raw::c_int, - #[doc = " The __doc__ attribute, or NULL"] - pub ml_doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyMethodDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyMethodDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_meth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ml_doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDef), - "::", - stringify!(ml_doc) - ) - ); -} -impl Default for PyMethodDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyCFunction_NewEx( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCMethod_New( - arg1: *mut PyMethodDef, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyTypeObject, - ) -> *mut PyObject; -} -extern "C" { - pub static mut PyCMethod_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCFunctionObject { - pub ob_base: PyObject, - #[doc = " Description of the C function to call"] - pub m_ml: *mut PyMethodDef, - #[doc = " Passed as 'self' arg to the C func, can be NULL"] - pub m_self: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub m_module: *mut PyObject, - #[doc = " List of weak references"] - pub m_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyCFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_ml) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_ml) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_module) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(m_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyCFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCMethodObject { - pub func: PyCFunctionObject, - #[doc = " Class that defines this method"] - pub mm_class: *mut PyTypeObject, -} -#[test] -fn bindgen_test_layout_PyCMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyCMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mm_class) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCMethodObject), - "::", - stringify!(mm_class) - ) - ); -} -impl Default for PyCMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyModule_Type: PyTypeObject; -} -extern "C" { - pub fn PyModule_NewObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_New(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetDict(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetNameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyModule_GetName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilename(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyModule_GetFilenameObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_Clear(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModule_ClearDict(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyModuleSpec_IsInitializing(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_GetDef(arg1: *mut PyObject) -> *mut PyModuleDef; -} -extern "C" { - pub fn PyModule_GetState(arg1: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModuleDef_Init(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub static mut PyModuleDef_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Base { - pub ob_base: PyObject, - pub m_init: ::std::option::Option *mut PyObject>, - pub m_index: Py_ssize_t, - pub m_copy: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Base() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Base)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_init) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_index) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_copy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Base), - "::", - stringify!(m_copy) - ) - ); -} -impl Default for PyModuleDef_Base { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " New in 3.5"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef_Slot { - pub slot: ::std::os::raw::c_int, - pub value: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyModuleDef_Slot() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef_Slot)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef_Slot), - "::", - stringify!(value) - ) - ); -} -impl Default for PyModuleDef_Slot { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyModuleDef { - pub m_base: PyModuleDef_Base, - pub m_name: *const ::std::os::raw::c_char, - pub m_doc: *const ::std::os::raw::c_char, - pub m_size: Py_ssize_t, - pub m_methods: *mut PyMethodDef, - pub m_slots: *mut PyModuleDef_Slot, - pub m_traverse: traverseproc, - pub m_clear: inquiry, - pub m_free: freefunc, -} -#[test] -fn bindgen_test_layout_PyModuleDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyModuleDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyModuleDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_name) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_doc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_size) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_methods) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_methods) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_slots) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_traverse) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_traverse) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_clear) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).m_free) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyModuleDef), - "::", - stringify!(m_free) - ) - ); -} -impl Default for PyModuleDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Function objects and code objects should not be confused with each other:\n\n Function objects are created by the execution of the 'def' statement.\n They reference a code object in their __code__ attribute, which is a\n purely syntactic object, i.e. nothing more than a compiled version of some\n source code lines. There is one code object per source code \"fragment\",\n but each code object can be referenced by zero or many function objects\n depending only on how many times the 'def' statement in the source was\n executed so far."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFunctionObject { - pub ob_base: PyObject, - #[doc = " A code object, the __code__ attribute"] - pub func_code: *mut PyObject, - #[doc = " A dictionary (other mappings won't do)"] - pub func_globals: *mut PyObject, - #[doc = " NULL or a tuple"] - pub func_defaults: *mut PyObject, - #[doc = " NULL or a dict"] - pub func_kwdefaults: *mut PyObject, - #[doc = " NULL or a tuple of cell objects"] - pub func_closure: *mut PyObject, - #[doc = " The __doc__ attribute, can be anything"] - pub func_doc: *mut PyObject, - #[doc = " The __name__ attribute, a string object"] - pub func_name: *mut PyObject, - #[doc = " The __dict__ attribute, a dict or NULL"] - pub func_dict: *mut PyObject, - #[doc = " List of weak references"] - pub func_weakreflist: *mut PyObject, - #[doc = " The __module__ attribute, can be anything"] - pub func_module: *mut PyObject, - #[doc = " Annotations, a dict or NULL"] - pub func_annotations: *mut PyObject, - #[doc = " The qualified name"] - pub func_qualname: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyFunctionObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyFunctionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyFunctionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_globals) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_globals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_defaults) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_defaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_kwdefaults) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_kwdefaults) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_closure) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_closure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_doc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_name) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_weakreflist) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_module) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_annotations) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_annotations) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func_qualname) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(func_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyFunctionObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyFunctionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyFunction_Type: PyTypeObject; -} -extern "C" { - pub fn PyFunction_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_NewWithQualName( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetCode(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetGlobals(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetModule(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_GetDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetKwDefaults(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetKwDefaults( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetClosure(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetClosure(arg1: *mut PyObject, arg2: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFunction_GetAnnotations(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFunction_SetAnnotations( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyFunction_Vectorcall( - func: *mut PyObject, - stack: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " The classmethod and staticmethod types lives here, too"] - pub static mut PyClassMethod_Type: PyTypeObject; -} -extern "C" { - pub static mut PyStaticMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyClassMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyStaticMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodObject { - pub ob_base: PyObject, - #[doc = " The callable object implementing the method"] - pub im_func: *mut PyObject, - #[doc = " The instance it is bound to"] - pub im_self: *mut PyObject, - #[doc = " List of weak references"] - pub im_weakreflist: *mut PyObject, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_self) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_self) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).im_weakreflist) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(im_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyMethod_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyMethod_Self(arg1: *mut PyObject) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyInstanceMethodObject { - pub ob_base: PyObject, - pub func: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyInstanceMethodObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyInstanceMethodObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyInstanceMethodObject), - "::", - stringify!(func) - ) - ); -} -impl Default for PyInstanceMethodObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyInstanceMethod_Type: PyTypeObject; -} -extern "C" { - pub fn PyInstanceMethod_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyInstanceMethod_Function(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_FromFd( - arg1: ::std::os::raw::c_int, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: ::std::os::raw::c_int, - arg5: *const ::std::os::raw::c_char, - arg6: *const ::std::os::raw::c_char, - arg7: *const ::std::os::raw::c_char, - arg8: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_WriteObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFile_WriteString( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The default encoding used by the platform file system APIs\nIf non-NULL, this is different than the default encoding for strings"] - pub static mut Py_FileSystemDefaultEncoding: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_FileSystemDefaultEncodeErrors: *const ::std::os::raw::c_char; -} -extern "C" { - pub static mut Py_HasFileSystemDefaultEncoding: ::std::os::raw::c_int; -} -extern "C" { - pub static mut Py_UTF8Mode: ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_UniversalNewlineFgets( - arg1: *mut ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut FILE, - arg4: *mut PyObject, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " The std printer acts as a preliminary sys.stderr until the new io\ninfrastructure is in place."] - pub fn PyFile_NewStdPrinter(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub static mut PyStdPrinter_Type: PyTypeObject; -} -pub type Py_OpenCodeHookFunction = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -extern "C" { - pub fn PyFile_OpenCode(utf8path: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_OpenCodeObject(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyFile_SetOpenCodeHook( - hook: Py_OpenCodeHookFunction, - userData: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyCapsule_Type: PyTypeObject; -} -pub type PyCapsule_Destructor = ::std::option::Option; -extern "C" { - pub fn PyCapsule_New( - pointer: *mut ::std::os::raw::c_void, - name: *const ::std::os::raw::c_char, - destructor: PyCapsule_Destructor, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyCapsule_GetPointer( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_GetDestructor(capsule: *mut PyObject) -> PyCapsule_Destructor; -} -extern "C" { - pub fn PyCapsule_GetName(capsule: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyCapsule_GetContext(capsule: *mut PyObject) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyCapsule_IsValid( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetPointer( - capsule: *mut PyObject, - pointer: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetDestructor( - capsule: *mut PyObject, - destructor: PyCapsule_Destructor, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetName( - capsule: *mut PyObject, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_SetContext( - capsule: *mut PyObject, - context: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCapsule_Import( - name: *const ::std::os::raw::c_char, - no_block: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -pub type _Py_CODEUNIT = u16; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _PyOpcache { - _unused: [u8; 0], -} -#[doc = " Bytecode object"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCodeObject { - pub ob_base: PyObject, - #[doc = " #arguments, except *args"] - pub co_argcount: ::std::os::raw::c_int, - #[doc = " #positional only arguments"] - pub co_posonlyargcount: ::std::os::raw::c_int, - #[doc = " #keyword only arguments"] - pub co_kwonlyargcount: ::std::os::raw::c_int, - #[doc = " #local variables"] - pub co_nlocals: ::std::os::raw::c_int, - #[doc = " #entries needed for evaluation stack"] - pub co_stacksize: ::std::os::raw::c_int, - #[doc = " CO_..., see below"] - pub co_flags: ::std::os::raw::c_int, - #[doc = " first source line number"] - pub co_firstlineno: ::std::os::raw::c_int, - #[doc = " instruction opcodes"] - pub co_code: *mut PyObject, - #[doc = " list (constants used)"] - pub co_consts: *mut PyObject, - #[doc = " list of strings (names used)"] - pub co_names: *mut PyObject, - #[doc = " tuple of strings (local variable names)"] - pub co_varnames: *mut PyObject, - #[doc = " tuple of strings (free variable names)"] - pub co_freevars: *mut PyObject, - #[doc = " tuple of strings (cell variable names)"] - pub co_cellvars: *mut PyObject, - #[doc = " Maps cell vars which are arguments."] - pub co_cell2arg: *mut Py_ssize_t, - #[doc = " unicode (where it was loaded from)"] - pub co_filename: *mut PyObject, - #[doc = " unicode (name, for reference)"] - pub co_name: *mut PyObject, - #[doc = " string (encoding addr<->lineno mapping) See\nObjects/lnotab_notes.txt for details."] - pub co_lnotab: *mut PyObject, - #[doc = " for optimization only (see frameobject.c)"] - pub co_zombieframe: *mut ::std::os::raw::c_void, - #[doc = " to support weakrefs to code objects"] - pub co_weakreflist: *mut PyObject, - #[doc = " Scratch space for extra data relating to the code object.\nType is a void* to keep the format private in codeobject.c to force\npeople to go through the proper APIs."] - pub co_extra: *mut ::std::os::raw::c_void, - #[doc = " co_opcache_map is indexed by (next_instr - first_instr).\n * 0 means there is no cache for this opcode.\n * n > 0 means there is cache in co_opcache[n-1]."] - pub co_opcache_map: *mut ::std::os::raw::c_uchar, - pub co_opcache: *mut _PyOpcache, - #[doc = " used to determine when create a cache."] - pub co_opcache_flag: ::std::os::raw::c_int, - #[doc = " length of co_opcache."] - pub co_opcache_size: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_PyCodeObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!("Size of: ", stringify!(PyCodeObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCodeObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_argcount) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_argcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_posonlyargcount) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_posonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_kwonlyargcount) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_kwonlyargcount) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_nlocals) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_nlocals) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_stacksize) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_stacksize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_flags) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_firstlineno) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_firstlineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_code) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_consts) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_consts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_names) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_names) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_varnames) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_varnames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_freevars) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_freevars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cellvars) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cellvars) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_cell2arg) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_cell2arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_filename) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_lnotab) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_lnotab) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_zombieframe) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_zombieframe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_weakreflist) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_extra) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_extra) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_map) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_flag) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).co_opcache_size) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyCodeObject), - "::", - stringify!(co_opcache_size) - ) - ); -} -impl Default for PyCodeObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCode_Type: PyTypeObject; -} -extern "C" { - #[doc = " Public interface"] - pub fn PyCode_New( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: *mut PyObject, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: ::std::os::raw::c_int, - arg15: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyCode_NewWithPosOnlyArgs( - arg1: ::std::os::raw::c_int, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - arg5: ::std::os::raw::c_int, - arg6: ::std::os::raw::c_int, - arg7: *mut PyObject, - arg8: *mut PyObject, - arg9: *mut PyObject, - arg10: *mut PyObject, - arg11: *mut PyObject, - arg12: *mut PyObject, - arg13: *mut PyObject, - arg14: *mut PyObject, - arg15: ::std::os::raw::c_int, - arg16: *mut PyObject, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Creates a new empty code object with the specified source location."] - pub fn PyCode_NewEmpty( - filename: *const ::std::os::raw::c_char, - funcname: *const ::std::os::raw::c_char, - firstlineno: ::std::os::raw::c_int, - ) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Return the line number associated with the specified bytecode index\nin this code object. If you just need the line number of a frame,\nuse PyFrame_GetLineNumber() instead."] - pub fn PyCode_Addr2Line( - arg1: *mut PyCodeObject, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[doc = " for internal use only"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _addr_pair { - pub ap_lower: ::std::os::raw::c_int, - pub ap_upper: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__addr_pair() { - const UNINIT: ::std::mem::MaybeUninit<_addr_pair> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_addr_pair>(), - 8usize, - concat!("Size of: ", stringify!(_addr_pair)) - ); - assert_eq!( - ::std::mem::align_of::<_addr_pair>(), - 4usize, - concat!("Alignment of ", stringify!(_addr_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_lower) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ap_upper) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_addr_pair), - "::", - stringify!(ap_upper) - ) - ); -} -#[doc = " for internal use only"] -pub type PyAddrPair = _addr_pair; -extern "C" { - #[doc = " Update *bounds to describe the first and one-past-the-last instructions in the\nsame line as lasti. Return the number of that line."] - pub fn _PyCode_CheckLineNumber( - co: *mut PyCodeObject, - lasti: ::std::os::raw::c_int, - bounds: *mut PyAddrPair, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a comparable key used to compare constants taking in account the\n object type. It is used to make sure types are not coerced (e.g., float and\n complex) _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms\n\n Return (type(obj), obj, ...): a tuple with variable size (at least 2 items)\n depending on the type and the value. The type is the first item to not\n compare bytes and str which can raise a BytesWarning exception."] - pub fn _PyCode_ConstantKey(obj: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCode_Optimize( - code: *mut PyObject, - consts: *mut PyObject, - names: *mut PyObject, - lnotab: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCode_GetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCode_SetExtra( - code: *mut PyObject, - index: Py_ssize_t, - extra: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _frame { - _unused: [u8; 0], -} -pub type PyFrameObject = _frame; -extern "C" { - #[doc = " Return the line of code the frame is currently executing."] - pub fn PyFrame_GetLineNumber(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyFrame_GetCode(frame: *mut PyFrameObject) -> *mut PyCodeObject; -} -extern "C" { - #[doc = " Traceback interface"] - pub fn PyTraceBack_Here(arg1: *mut PyFrameObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyTraceBack_Print(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Reveal traceback type so we can typecheck traceback objects"] - pub static mut PyTraceBack_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _traceback { - pub ob_base: PyObject, - pub tb_next: *mut _traceback, - pub tb_frame: *mut PyFrameObject, - pub tb_lasti: ::std::os::raw::c_int, - pub tb_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__traceback() { - const UNINIT: ::std::mem::MaybeUninit<_traceback> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_traceback>(), - 40usize, - concat!("Size of: ", stringify!(_traceback)) - ); - assert_eq!( - ::std::mem::align_of::<_traceback>(), - 8usize, - concat!("Alignment of ", stringify!(_traceback)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_next) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lasti) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lasti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tb_lineno) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_traceback), - "::", - stringify!(tb_lineno) - ) - ); -} -impl Default for _traceback { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type PyTracebackObject = _traceback; -extern "C" { - pub fn _Py_DisplaySourceLine( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyTraceback_Add( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Don't use this directly"] - pub static mut _Py_EllipsisObject: PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySliceObject { - pub ob_base: PyObject, - #[doc = " not NULL"] - pub start: *mut PyObject, - #[doc = " not NULL"] - pub stop: *mut PyObject, - #[doc = " not NULL"] - pub step: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySliceObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PySliceObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySliceObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).step) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySliceObject), - "::", - stringify!(step) - ) - ); -} -impl Default for PySliceObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PySlice_Type: PyTypeObject; -} -extern "C" { - pub static mut PyEllipsis_Type: PyTypeObject; -} -extern "C" { - pub fn PySlice_New( - start: *mut PyObject, - stop: *mut PyObject, - step: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_FromIndices(start: Py_ssize_t, stop: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub fn _PySlice_GetLongIndices( - self_: *mut PySliceObject, - length: *mut PyObject, - start_ptr: *mut *mut PyObject, - stop_ptr: *mut *mut PyObject, - step_ptr: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndices( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_GetIndicesEx( - r: *mut PyObject, - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - slicelength: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_Unpack( - slice: *mut PyObject, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySlice_AdjustIndices( - length: Py_ssize_t, - start: *mut Py_ssize_t, - stop: *mut Py_ssize_t, - step: Py_ssize_t, - ) -> Py_ssize_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCellObject { - pub ob_base: PyObject, - #[doc = " Content of the cell or NULL when empty"] - pub ob_ref: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCellObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(PyCellObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCellObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_ref) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCellObject), - "::", - stringify!(ob_ref) - ) - ); -} -impl Default for PyCellObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCell_Type: PyTypeObject; -} -extern "C" { - pub fn PyCell_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Get(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCell_Set(arg1: *mut PyObject, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PySeqIter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyCallIter_Type: PyTypeObject; -} -extern "C" { - pub fn PySeqIter_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCallIter_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -#[doc = " --- PyStatus -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStatus { - pub _type: PyStatus__bindgen_ty_1, - pub func: *const ::std::os::raw::c_char, - pub err_msg: *const ::std::os::raw::c_char, - pub exitcode: ::std::os::raw::c_int, -} -pub const PyStatus__PyStatus_TYPE_OK: PyStatus__bindgen_ty_1 = 0; -pub const PyStatus__PyStatus_TYPE_ERROR: PyStatus__bindgen_ty_1 = 1; -pub const PyStatus__PyStatus_TYPE_EXIT: PyStatus__bindgen_ty_1 = 2; -pub type PyStatus__bindgen_ty_1 = ::std::os::raw::c_uint; -#[test] -fn bindgen_test_layout_PyStatus() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStatus)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStatus)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).err_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(err_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exitcode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStatus), - "::", - stringify!(exitcode) - ) - ); -} -impl Default for PyStatus { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyStatus_Ok() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Error(err_msg: *const ::std::os::raw::c_char) -> PyStatus; -} -extern "C" { - pub fn PyStatus_NoMemory() -> PyStatus; -} -extern "C" { - pub fn PyStatus_Exit(exitcode: ::std::os::raw::c_int) -> PyStatus; -} -extern "C" { - pub fn PyStatus_IsError(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_IsExit(err: PyStatus) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStatus_Exception(err: PyStatus) -> ::std::os::raw::c_int; -} -#[doc = " --- PyWideStringList ------------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWideStringList { - #[doc = " If length is greater than zero, items must be non-NULL\nand all items strings must be non-NULL"] - pub length: Py_ssize_t, - pub items: *mut *mut wchar_t, -} -#[test] -fn bindgen_test_layout_PyWideStringList() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyWideStringList)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWideStringList)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).items) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyWideStringList), - "::", - stringify!(items) - ) - ); -} -impl Default for PyWideStringList { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyWideStringList_Append(list: *mut PyWideStringList, item: *const wchar_t) -> PyStatus; -} -extern "C" { - pub fn PyWideStringList_Insert( - list: *mut PyWideStringList, - index: Py_ssize_t, - item: *const wchar_t, - ) -> PyStatus; -} -#[doc = " --- PyPreConfig -----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyPreConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Parse Py_PreInitializeFromBytesArgs() arguments?\nSee PyConfig.parse_argv"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable isolated mode: sys.path contains\nneither the script's directory nor the user's site-packages directory.\n\nSet to 1 by the -I command line option. If set to -1 (default), inherit\nPy_IsolatedFlag value."] - pub isolated: ::std::os::raw::c_int, - #[doc = " If greater than 0: use environment variables.\nSet to 0 by -E command line option. If set to -1 (default), it is\nset to !Py_IgnoreEnvironmentFlag."] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Set the LC_CTYPE locale to the user preferred locale? If equals to 0,\nset coerce_c_locale and coerce_c_locale_warn to 0."] - pub configure_locale: ::std::os::raw::c_int, - #[doc = " Coerce the LC_CTYPE locale if it's equal to \"C\"? (PEP 538)\n\nSet to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1.\nSet to 2 if the user preferred LC_CTYPE locale is \"C\".\n\nIf it is equal to 1, LC_CTYPE locale is read to decide if it should be\ncoerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2\nif the LC_CTYPE locale must be coerced.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale: ::std::os::raw::c_int, - #[doc = " Emit a warning if the LC_CTYPE locale is coerced?\n\nSet to 1 by PYTHONCOERCECLOCALE=warn.\n\nDisable by default (set to 0). Set it to -1 to let Python decide if it\nshould be enabled or not."] - pub coerce_c_locale_warn: ::std::os::raw::c_int, - #[doc = " Enable UTF-8 mode? (PEP 540)\n\nDisabled by default (equals to 0).\n\nSet to 1 by \"-X utf8\" and \"-X utf8=1\" command line options.\nSet to 1 by PYTHONUTF8=1 environment variable.\n\nSet to 0 by \"-X utf8=0\" and PYTHONUTF8=0.\n\nIf equals to -1, it is set to 1 if the LC_CTYPE locale is \"C\" or\n\"POSIX\", otherwise it is set to 0. Inherit Py_UTF8Mode value value."] - pub utf8_mode: ::std::os::raw::c_int, - #[doc = " If non-zero, enable the Python Development Mode.\n\nSet to 1 by the -X dev command line option. Set by the PYTHONDEVMODE\nenvironment variable."] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Memory allocator: PYTHONMALLOC env var.\nSee PyMemAllocatorName for valid values."] - pub allocator: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyPreConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyPreConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyPreConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_locale) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(configure_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).coerce_c_locale_warn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(coerce_c_locale_warn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).utf8_mode) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(utf8_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allocator) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyPreConfig), - "::", - stringify!(allocator) - ) - ); -} -extern "C" { - pub fn PyPreConfig_InitPythonConfig(config: *mut PyPreConfig); -} -extern "C" { - pub fn PyPreConfig_InitIsolatedConfig(config: *mut PyPreConfig); -} -#[doc = " --- PyConfig ----------------------------------------------"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyConfig { - #[doc = " _PyConfigInitEnum value"] - pub _config_init: ::std::os::raw::c_int, - #[doc = " Isolated mode? see PyPreConfig.isolated"] - pub isolated: ::std::os::raw::c_int, - #[doc = " Use environment variables? see PyPreConfig.use_environment"] - pub use_environment: ::std::os::raw::c_int, - #[doc = " Python Development Mode? See PyPreConfig.dev_mode"] - pub dev_mode: ::std::os::raw::c_int, - #[doc = " Install signal handlers? Yes by default."] - pub install_signal_handlers: ::std::os::raw::c_int, - #[doc = " PYTHONHASHSEED=x"] - pub use_hash_seed: ::std::os::raw::c_int, - pub hash_seed: ::std::os::raw::c_ulong, - #[doc = " Enable faulthandler?\nSet to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset."] - pub faulthandler: ::std::os::raw::c_int, - #[doc = " Enable PEG parser?\n1 by default, set to 0 by -X oldparser and PYTHONOLDPARSER"] - pub _use_peg_parser: ::std::os::raw::c_int, - #[doc = " Enable tracemalloc?\nSet by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset"] - pub tracemalloc: ::std::os::raw::c_int, - #[doc = " PYTHONPROFILEIMPORTTIME, -X importtime"] - pub import_time: ::std::os::raw::c_int, - #[doc = " -X showrefcount"] - pub show_ref_count: ::std::os::raw::c_int, - #[doc = " PYTHONDUMPREFS"] - pub dump_refs: ::std::os::raw::c_int, - #[doc = " PYTHONMALLOCSTATS"] - pub malloc_stats: ::std::os::raw::c_int, - #[doc = " Python filesystem encoding and error handler:\nsys.getfilesystemencoding() and sys.getfilesystemencodeerrors().\n\nDefault encoding and error handler:\n\n if Py_SetStandardStreamEncoding() has been called: they have the\nhighest priority;\n PYTHONIOENCODING environment variable;\n The UTF-8 Mode uses UTF-8/surrogateescape;\n If Python forces the usage of the ASCII encoding (ex: C locale\nor POSIX locale on FreeBSD or HP-UX), use ASCII/surrogateescape;\n locale encoding: ANSI code page on Windows, UTF-8 on Android and\nVxWorks, LC_CTYPE locale encoding on other platforms;\n On Windows, \"surrogateescape\" error handler;\n \"surrogateescape\" error handler if the LC_CTYPE locale is \"C\" or \"POSIX\";\n \"surrogateescape\" error handler if the LC_CTYPE locale has been coerced\n(PEP 538);\n \"strict\" error handler.\n\nSupported error handlers: \"strict\", \"surrogateescape\" and\n\"surrogatepass\". The surrogatepass error handler is only supported\nif Py_DecodeLocale() and Py_EncodeLocale() use directly the UTF-8 codec;\nit's only used on Windows.\n\ninitfsencoding() updates the encoding to the Python codec name.\nFor example, \"ANSI_X3.4-1968\" is replaced with \"ascii\".\n\nOn Windows, sys._enablelegacywindowsfsencoding() sets the\nencoding/errors to mbcs/replace at runtime.\n\n\nSee Py_FileSystemDefaultEncoding and Py_FileSystemDefaultEncodeErrors."] - pub filesystem_encoding: *mut wchar_t, - pub filesystem_errors: *mut wchar_t, - #[doc = " PYTHONPYCACHEPREFIX, -X pycache_prefix=PATH"] - pub pycache_prefix: *mut wchar_t, - #[doc = " Parse argv command line arguments?"] - pub parse_argv: ::std::os::raw::c_int, - #[doc = " Command line arguments (sys.argv).\n\nSet parse_argv to 1 to parse argv as Python command line arguments\nand then strip Python arguments from argv.\n\nIf argv is empty, an empty string is added to ensure that sys.argv\nalways exists and is never empty."] - pub argv: PyWideStringList, - #[doc = " Program name:\n\n- If Py_SetProgramName() was called, use its value.\n- On macOS, use PYTHONEXECUTABLE environment variable if set.\n- If WITH_NEXT_FRAMEWORK macro is defined, use __PYVENV_LAUNCHER__\nenvironment variable is set.\n- Use argv[0] if available and non-empty.\n- Use \"python\" on Windows, or \"python3 on other platforms."] - pub program_name: *mut wchar_t, - #[doc = " Command line -X options"] - pub xoptions: PyWideStringList, - #[doc = " Warnings options: lowest to highest priority. warnings.filters\nis built in the reverse order (highest to lowest priority)."] - pub warnoptions: PyWideStringList, - #[doc = " If equal to zero, disable the import of the module site and the\nsite-dependent manipulations of sys.path that it entails. Also disable\nthese manipulations if site is explicitly imported later (call\nsite.main() if you want them to be triggered).\n\nSet to 0 by the -S command line option. If set to -1 (default), it is\nset to !Py_NoSiteFlag."] - pub site_import: ::std::os::raw::c_int, - #[doc = " Bytes warnings:\n\n If equal to 1, issue a warning when comparing bytes or bytearray with\nstr or bytes with int.\n If equal or greater to 2, issue an error.\n\nIncremented by the -b command line option. If set to -1 (default), inherit\nPy_BytesWarningFlag value."] - pub bytes_warning: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable inspect: when a script is passed as first\nargument or the -c option is used, enter interactive mode after\nexecuting the script or the command, even when sys.stdin does not appear\nto be a terminal.\n\nIncremented by the -i command line option. Set to 1 if the PYTHONINSPECT\nenvironment variable is non-empty. If set to -1 (default), inherit\nPy_InspectFlag value."] - pub inspect: ::std::os::raw::c_int, - #[doc = " If greater than 0: enable the interactive mode (REPL).\n\nIncremented by the -i command line option. If set to -1 (default),\ninherit Py_InteractiveFlag value."] - pub interactive: ::std::os::raw::c_int, - #[doc = " Optimization level.\n\nIncremented by the -O command line option. Set by the PYTHONOPTIMIZE\nenvironment variable. If set to -1 (default), inherit Py_OptimizeFlag\nvalue."] - pub optimization_level: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the debug mode: turn on parser debugging\noutput (for expert only, depending on compilation options).\n\nIncremented by the -d command line option. Set by the PYTHONDEBUG\nenvironment variable. If set to -1 (default), inherit Py_DebugFlag\nvalue."] - pub parser_debug: ::std::os::raw::c_int, - #[doc = " If equal to 0, Python won't try to write ``.pyc`` files on the\nimport of source modules.\n\nSet to 0 by the -B command line option and the PYTHONDONTWRITEBYTECODE\nenvironment variable. If set to -1 (default), it is set to\nPy_DontWriteBytecodeFlag."] - pub write_bytecode: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the verbose mode: print a message each time a\nmodule is initialized, showing the place (filename or built-in module)\nfrom which it is loaded.\n\nIf greater or equal to 2, print a message for each file that is checked\nfor when searching for a module. Also provides information on module\ncleanup at exit.\n\nIncremented by the -v option. Set by the PYTHONVERBOSE environment\nvariable. If set to -1 (default), inherit Py_VerboseFlag value."] - pub verbose: ::std::os::raw::c_int, - #[doc = " If greater than 0, enable the quiet mode: Don't display the copyright\nand version messages even in interactive mode.\n\nIncremented by the -q option. If set to -1 (default), inherit\nPy_QuietFlag value."] - pub quiet: ::std::os::raw::c_int, - #[doc = " If greater than 0, don't add the user site-packages directory to\nsys.path.\n\nSet to 0 by the -s and -I command line options , and the PYTHONNOUSERSITE\nenvironment variable. If set to -1 (default), it is set to\nPy_NoUserSiteDirectory."] - pub user_site_directory: ::std::os::raw::c_int, - #[doc = " If non-zero, configure C standard steams (stdio, stdout,\nstderr):\n\n- Set O_BINARY mode on Windows.\n- If buffered_stdio is equal to zero, make streams unbuffered.\nOtherwise, enable streams buffering if interactive is non-zero."] - pub configure_c_stdio: ::std::os::raw::c_int, - #[doc = " If equal to 0, enable unbuffered mode: force the stdout and stderr\nstreams to be unbuffered.\n\nSet to 0 by the -u option. Set by the PYTHONUNBUFFERED environment\nvariable.\nIf set to -1 (default), it is set to !Py_UnbufferedStdioFlag."] - pub buffered_stdio: ::std::os::raw::c_int, - #[doc = " Encoding of sys.stdin, sys.stdout and sys.stderr.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_errors' attribute."] - pub stdio_encoding: *mut wchar_t, - #[doc = " Error handler of sys.stdin and sys.stdout.\nValue set from PYTHONIOENCODING environment variable and\nPy_SetStandardStreamEncoding() function.\nSee also 'stdio_encoding' attribute."] - pub stdio_errors: *mut wchar_t, - #[doc = " Value of the --check-hash-based-pycs command line option:\n\n- \"default\" means the 'check_source' flag in hash-based pycs\ndetermines invalidation\n- \"always\" causes the interpreter to hash the source file for\ninvalidation regardless of value of 'check_source' bit\n- \"never\" causes the interpreter to always assume hash-based pycs are\nvalid\n\nThe default value is \"default\".\n\nSee PEP 552 \"Deterministic pycs\" for more details."] - pub check_hash_pycs_mode: *mut wchar_t, - #[doc = " If greater than 0, suppress _PyPathConfig_Calculate() warnings on Unix.\nThe parameter has no effect on Windows.\n\nIf set to -1 (default), inherit !Py_FrozenFlag value."] - pub pathconfig_warnings: ::std::os::raw::c_int, - #[doc = " PYTHONPATH environment variable"] - pub pythonpath_env: *mut wchar_t, - #[doc = " PYTHONHOME environment variable,\nsee also Py_SetPythonHome()."] - pub home: *mut wchar_t, - #[doc = " If non-zero, use module_search_paths"] - pub module_search_paths_set: ::std::os::raw::c_int, - #[doc = " sys.path paths. Computed if\nmodule_search_paths_set is equal\nto zero."] - pub module_search_paths: PyWideStringList, - #[doc = " sys.executable"] - pub executable: *mut wchar_t, - #[doc = " sys._base_executable"] - pub base_executable: *mut wchar_t, - #[doc = " sys.prefix"] - pub prefix: *mut wchar_t, - #[doc = " sys.base_prefix"] - pub base_prefix: *mut wchar_t, - #[doc = " sys.exec_prefix"] - pub exec_prefix: *mut wchar_t, - #[doc = " sys.base_exec_prefix"] - pub base_exec_prefix: *mut wchar_t, - #[doc = " sys.platlibdir"] - pub platlibdir: *mut wchar_t, - #[doc = " Skip the first line of the source ('run_filename' parameter), allowing use of non-Unix forms of\n\"#!cmd\". This is intended for a DOS specific hack only.\n\nSet by the -x command line option."] - pub skip_source_first_line: ::std::os::raw::c_int, - #[doc = " -c command line argument"] - pub run_command: *mut wchar_t, - #[doc = " -m command line argument"] - pub run_module: *mut wchar_t, - #[doc = " Trailing command line argument without -c or -m"] - pub run_filename: *mut wchar_t, - #[doc = " Install importlib? If set to 0, importlib is not initialized at all.\nNeeded by freeze_importlib."] - pub _install_importlib: ::std::os::raw::c_int, - #[doc = " If equal to 0, stop Python initialization before the \"main\" phase"] - pub _init_main: ::std::os::raw::c_int, - #[doc = " If non-zero, disallow threads, subprocesses, and fork.\nDefault: 0."] - pub _isolated_interpreter: ::std::os::raw::c_int, - #[doc = " Original command line arguments. If _orig_argv is empty and _argv is\nnot equal to [''], PyConfig_Read() copies the configuration 'argv' list\ninto '_orig_argv' list before modifying 'argv' list (if parse_argv\nis non-zero).\n\n_PyConfig_Write() initializes Py_GetArgcArgv() to this list."] - pub _orig_argv: PyWideStringList, -} -#[test] -fn bindgen_test_layout_PyConfig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 392usize, - concat!("Size of: ", stringify!(PyConfig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyConfig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._config_init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_config_init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isolated) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(isolated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_environment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_environment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev_mode) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dev_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).install_signal_handlers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(install_signal_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_hash_seed) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(use_hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash_seed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(hash_seed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).faulthandler) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(faulthandler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._use_peg_parser) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_use_peg_parser) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracemalloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(tracemalloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).import_time) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(import_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).show_ref_count) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(show_ref_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dump_refs) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(dump_refs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloc_stats) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(malloc_stats) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filesystem_errors) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(filesystem_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pycache_prefix) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pycache_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parse_argv) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parse_argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).argv) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(argv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).program_name) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(program_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).xoptions) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(xoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warnoptions) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(warnoptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).site_import) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(site_import) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes_warning) as usize - ptr as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(bytes_warning) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inspect) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(inspect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interactive) as usize - ptr as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(interactive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimization_level) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(optimization_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).parser_debug) as usize - ptr as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(parser_debug) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_bytecode) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(write_bytecode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 180usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_site_directory) as usize - ptr as usize }, - 188usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(user_site_directory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configure_c_stdio) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(configure_c_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buffered_stdio) as usize - ptr as usize }, - 196usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(buffered_stdio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_encoding) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stdio_errors) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(stdio_errors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_hash_pycs_mode) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(check_hash_pycs_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pathconfig_warnings) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pathconfig_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pythonpath_env) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(pythonpath_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).home) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(home) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths_set) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_search_paths) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(module_search_paths) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).executable) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_executable) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_executable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prefix) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_prefix) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exec_prefix) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_exec_prefix) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(base_exec_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).platlibdir) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(platlibdir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip_source_first_line) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(skip_source_first_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_command) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_module) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run_filename) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(run_filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._install_importlib) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_install_importlib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._init_main) as usize - ptr as usize }, - 364usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_init_main) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._isolated_interpreter) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_isolated_interpreter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._orig_argv) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(PyConfig), - "::", - stringify!(_orig_argv) - ) - ); -} -impl Default for PyConfig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn PyConfig_InitPythonConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_InitIsolatedConfig(config: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_Clear(arg1: *mut PyConfig); -} -extern "C" { - pub fn PyConfig_SetString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesString( - config: *mut PyConfig, - config_str: *mut *mut wchar_t, - str_: *const ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_Read(config: *mut PyConfig) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetBytesArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetArgv( - config: *mut PyConfig, - argc: Py_ssize_t, - argv: *const *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn PyConfig_SetWideStringList( - config: *mut PyConfig, - list: *mut PyWideStringList, - length: Py_ssize_t, - items: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - #[doc = " Get the original command line arguments, before Python modified them.\n\nSee also PyConfig._orig_argv."] - pub fn Py_GetArgcArgv(argc: *mut ::std::os::raw::c_int, argv: *mut *mut *mut wchar_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _is { - _unused: [u8; 0], -} -#[doc = " struct _ts is defined in cpython/pystate.h"] -pub type PyThreadState = _ts; -#[doc = " struct _is is defined in internal/pycore_interp.h"] -pub type PyInterpreterState = _is; -extern "C" { - pub fn PyInterpreterState_New() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Clear(arg1: *mut PyInterpreterState); -} -extern "C" { - pub fn PyInterpreterState_Delete(arg1: *mut PyInterpreterState); -} -extern "C" { - #[doc = " New in 3.9 */\n/* Get the current interpreter state.\n\nIssue a fatal error if there no current Python thread state or no current\ninterpreter. It cannot return NULL.\n\nThe caller must hold the GIL."] - pub fn PyInterpreterState_Get() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " New in 3.8"] - pub fn PyInterpreterState_GetDict(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.7"] - pub fn PyInterpreterState_GetID(arg1: *mut PyInterpreterState) -> i64; -} -extern "C" { - #[doc = " New in 3.3"] - pub fn PyState_AddModule(arg1: *mut PyObject, arg2: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_RemoveModule(arg1: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyState_FindModule(arg1: *mut PyModuleDef) -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_New(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Clear(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyThreadState_Delete(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Get the current thread state.\n\nWhen the current thread state is NULL, this issues a fatal error (so that\nthe caller needn't check for NULL).\n\nThe caller must hold the GIL.\n\nSee also PyThreadState_GET() and _PyThreadState_GET()."] - pub fn PyThreadState_Get() -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Swap(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_GetDict() -> *mut PyObject; -} -extern "C" { - pub fn PyThreadState_SetAsyncExc( - arg1: ::std::os::raw::c_ulong, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyThreadState_GetInterpreter(tstate: *mut PyThreadState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyThreadState_GetFrame(tstate: *mut PyThreadState) -> *mut PyFrameObject; -} -extern "C" { - pub fn PyThreadState_GetID(tstate: *mut PyThreadState) -> u64; -} -pub const PyGILState_STATE_PyGILState_LOCKED: PyGILState_STATE = 0; -pub const PyGILState_STATE_PyGILState_UNLOCKED: PyGILState_STATE = 1; -pub type PyGILState_STATE = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Ensure that the current thread is ready to call the Python\nC API, regardless of the current state of Python, or of its\nthread lock. This may be called as many times as desired\nby a thread so long as each call is matched with a call to\nPyGILState_Release(). In general, other thread-state APIs may\nbe used between _Ensure() and _Release() calls, so long as the\nthread-state is restored to its previous state before the Release().\nFor example, normal use of the Py_BEGIN_ALLOW_THREADS/\nPy_END_ALLOW_THREADS macros are acceptable.\n\nThe return value is an opaque \"handle\" to the thread state when\nPyGILState_Ensure() was called, and must be passed to\nPyGILState_Release() to ensure Python is left in the same state. Even\nthough recursive calls are allowed, these handles can *not* be shared -\neach unique call to PyGILState_Ensure must save the handle for its\ncall to PyGILState_Release.\n\nWhen the function returns, the current thread will hold the GIL.\n\nFailure is a fatal error."] - pub fn PyGILState_Ensure() -> PyGILState_STATE; -} -extern "C" { - #[doc = " Release any resources previously acquired. After this call, Python's\nstate will be the same as it was prior to the corresponding\nPyGILState_Ensure() call (but generally this state will be unknown to\nthe caller, hence the use of the GILState API.)\n\nEvery call to PyGILState_Ensure must be matched by a call to\nPyGILState_Release on the same thread."] - pub fn PyGILState_Release(arg1: PyGILState_STATE); -} -extern "C" { - #[doc = " Helper/diagnostic function - get the current thread state for\nthis thread. May return NULL if no GILState API has been used\non the current thread. Note that the main thread always has such a\nthread-state, even if no auto-thread-state call has been made\non the main thread."] - pub fn PyGILState_GetThisThreadState() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyInterpreterState_RequiresIDRef( - arg1: *mut PyInterpreterState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyInterpreterState_RequireIDRef( - arg1: *mut PyInterpreterState, - arg2: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetMainModule(arg1: *mut PyInterpreterState) -> *mut PyObject; -} -#[doc = " Py_tracefunc return -1 when raising an exception, or 0 for success."] -pub type Py_tracefunc = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyFrameObject, - arg3: ::std::os::raw::c_int, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _err_stackitem { - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_type: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_value: *mut PyObject, - #[doc = " This struct represents an entry on the exception stack, which is a\n per-coroutine state. (Coroutine in the computer science sense,\n including the thread and generators).\n This ensures that the exception state is not impacted by \"yields\"\n from an except handler."] - pub exc_traceback: *mut PyObject, - pub previous_item: *mut _err_stackitem, -} -#[test] -fn bindgen_test_layout__err_stackitem() { - const UNINIT: ::std::mem::MaybeUninit<_err_stackitem> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_err_stackitem>(), - 32usize, - concat!("Size of: ", stringify!(_err_stackitem)) - ); - assert_eq!( - ::std::mem::align_of::<_err_stackitem>(), - 8usize, - concat!("Alignment of ", stringify!(_err_stackitem)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_traceback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(exc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).previous_item) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_err_stackitem), - "::", - stringify!(previous_item) - ) - ); -} -impl Default for _err_stackitem { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type _PyErr_StackItem = _err_stackitem; -#[doc = " Forward declarations for PyThreadState"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _ts { - #[doc = " See Python/ceval.c for comments explaining most fields"] - pub prev: *mut _ts, - pub next: *mut _ts, - pub interp: *mut PyInterpreterState, - #[doc = " Borrowed reference to the current frame (it can be NULL)"] - pub frame: *mut PyFrameObject, - pub recursion_depth: ::std::os::raw::c_int, - #[doc = " The stack has overflowed. Allow 50 more calls\nto handle the runtime error."] - pub overflowed: ::std::os::raw::c_char, - #[doc = " The current calls must not cause\na stack overflow."] - pub recursion_critical: ::std::os::raw::c_char, - pub stackcheck_counter: ::std::os::raw::c_int, - #[doc = " 'tracing' keeps track of the execution depth when tracing/profiling.\nThis is to prevent the actual trace/profile code from being recorded in\nthe trace/profile."] - pub tracing: ::std::os::raw::c_int, - pub use_tracing: ::std::os::raw::c_int, - pub c_profilefunc: Py_tracefunc, - pub c_tracefunc: Py_tracefunc, - pub c_profileobj: *mut PyObject, - pub c_traceobj: *mut PyObject, - #[doc = " The exception currently being raised"] - pub curexc_type: *mut PyObject, - pub curexc_value: *mut PyObject, - pub curexc_traceback: *mut PyObject, - #[doc = " The exception currently being handled, if no coroutines/generators\n are present. Always last element on the stack referred to be exc_info."] - pub exc_state: _PyErr_StackItem, - #[doc = " Pointer to the top of the stack of the exceptions currently\n being handled"] - pub exc_info: *mut _PyErr_StackItem, - #[doc = " Stores per-thread state"] - pub dict: *mut PyObject, - pub gilstate_counter: ::std::os::raw::c_int, - #[doc = " Asynchronous exception to raise"] - pub async_exc: *mut PyObject, - #[doc = " Thread id where this tstate was created"] - pub thread_id: ::std::os::raw::c_ulong, - pub trash_delete_nesting: ::std::os::raw::c_int, - pub trash_delete_later: *mut PyObject, - #[doc = " Called when a thread state is deleted normally, but not when it\n is destroyed after fork().\n Pain: to prevent rare but fatal shutdown errors (issue 18808),\n Thread.join() must wait for the join'ed thread's tstate to be unlinked\n from the tstate chain. That happens at the end of a thread's life,\n in pystate.c.\n The obvious way doesn't quite work: create a lock which the tstate\n unlinking code releases, and have Thread.join() wait to acquire that\n lock. The problem is that we _are_ at the end of the thread's life:\n if the thread holds the last reference to the lock, decref'ing the\n lock will delete the lock, and that may trigger arbitrary Python code\n if there's a weakref, with a callback, to the lock. But by this time\n _PyRuntime.gilstate.tstate_current is already NULL, so only the simplest\n of C code can be allowed to run (in particular it must not be possible to\n release the GIL).\n So instead of holding the lock directly, the tstate holds a weakref to\n the lock: that's the value of on_delete_data below. Decref'ing a\n weakref is harmless.\n on_delete points to _threadmodule.c's static release_sentinel() function.\n After the tstate is unlinked, release_sentinel is called with the\n weakref-to-lock (on_delete_data) argument, and release_sentinel releases\n the indirectly held lock."] - pub on_delete: ::std::option::Option, - pub on_delete_data: *mut ::std::os::raw::c_void, - pub coroutine_origin_tracking_depth: ::std::os::raw::c_int, - pub async_gen_firstiter: *mut PyObject, - pub async_gen_finalizer: *mut PyObject, - pub context: *mut PyObject, - pub context_ver: u64, - #[doc = " Unique thread state id."] - pub id: u64, -} -#[test] -fn bindgen_test_layout__ts() { - const UNINIT: ::std::mem::MaybeUninit<_ts> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_ts>(), - 264usize, - concat!("Size of: ", stringify!(_ts)) - ); - assert_eq!( - ::std::mem::align_of::<_ts>(), - 8usize, - concat!("Alignment of ", stringify!(_ts)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(prev)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(next)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_depth) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflowed) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(overflowed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recursion_critical) as usize - ptr as usize }, - 37usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(recursion_critical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stackcheck_counter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(stackcheck_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracing) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).use_tracing) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(use_tracing) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profilefunc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profilefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_tracefunc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_tracefunc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_profileobj) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_profileobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_traceobj) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(c_traceobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_type) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_value) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).curexc_traceback) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(curexc_traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_state) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exc_info) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(exc_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 152usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(dict)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gilstate_counter) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(gilstate_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_exc) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_id) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(thread_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_nesting) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_nesting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trash_delete_later) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(trash_delete_later) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_delete_data) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(on_delete_data) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).coroutine_origin_tracking_depth) as usize - ptr as usize - }, - 216usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(coroutine_origin_tracking_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_firstiter) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_firstiter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).async_gen_finalizer) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(async_gen_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_ver) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(_ts), - "::", - stringify!(context_ver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 256usize, - concat!("Offset of field: ", stringify!(_ts), "::", stringify!(id)) - ); -} -impl Default for _ts { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyThreadState_Prealloc(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - #[doc = " Similar to PyThreadState_Get(), but don't issue a fatal error\n if it is NULL."] - pub fn _PyThreadState_UncheckedGet() -> *mut PyThreadState; -} -extern "C" { - pub fn _PyThreadState_GetDict(tstate: *mut PyThreadState) -> *mut PyObject; -} -extern "C" { - #[doc = " Helper/diagnostic function - return 1 if the current thread\ncurrently holds the GIL, 0 otherwise.\n\nThe function returns 1 if _PyGILState_check_enabled is non-zero."] - pub fn PyGILState_Check() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the single PyInterpreterState used by this process' GILState\nimplementation.\n\nThis function doesn't check for error. Return NULL before _PyGILState_Init()\nis called and after _PyGILState_Fini() is called.\n\nSee also _PyInterpreterState_Get() and _PyInterpreterState_GET()."] - pub fn _PyGILState_GetInterpreterStateUnsafe() -> *mut PyInterpreterState; -} -extern "C" { - #[doc = " The implementation of sys._current_frames() Returns a dict mapping\nthread id to that thread's current frame."] - pub fn _PyThread_CurrentFrames() -> *mut PyObject; -} -extern "C" { - #[doc = " Routines for advanced debuggers, requested by David Beazley.\nDon't use unless you know what you are doing!"] - pub fn PyInterpreterState_Main() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Head() -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_Next(arg1: *mut PyInterpreterState) -> *mut PyInterpreterState; -} -extern "C" { - pub fn PyInterpreterState_ThreadHead(arg1: *mut PyInterpreterState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_Next(arg1: *mut PyThreadState) -> *mut PyThreadState; -} -extern "C" { - pub fn PyThreadState_DeleteCurrent(); -} -#[doc = " Frame evaluation API"] -pub type _PyFrameEvalFunction = ::std::option::Option< - unsafe extern "C" fn( - tstate: *mut PyThreadState, - arg1: *mut PyFrameObject, - arg2: ::std::os::raw::c_int, - ) -> *mut PyObject, ->; -extern "C" { - pub fn _PyInterpreterState_GetEvalFrameFunc( - interp: *mut PyInterpreterState, - ) -> _PyFrameEvalFunction; -} -extern "C" { - pub fn _PyInterpreterState_SetEvalFrameFunc( - interp: *mut PyInterpreterState, - eval_frame: _PyFrameEvalFunction, - ); -} -extern "C" { - pub fn _PyInterpreterState_GetConfig(interp: *mut PyInterpreterState) -> *const PyConfig; -} -extern "C" { - #[doc = " Get the configuration of the currrent interpreter.\n The caller must hold the GIL."] - pub fn _Py_GetConfig() -> *const PyConfig; -} -#[doc = " cross-interpreter data"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _xid { - #[doc = " data is the cross-interpreter-safe derivation of a Python object\n (see _PyObject_GetCrossInterpreterData). It will be NULL if the\n new_object func (below) encodes the data."] - pub data: *mut ::std::os::raw::c_void, - #[doc = " obj is the Python object from which the data was derived. This\n is non-NULL only if the data remains bound to the object in some\n way, such that the object must be \"released\" (via a decref) when\n the data is released. In that case the code that sets the field,\n likely a registered \"crossinterpdatafunc\", is responsible for\n ensuring it owns the reference (i.e. incref)."] - pub obj: *mut PyObject, - #[doc = " interp is the ID of the owning interpreter of the original\n object. It corresponds to the active interpreter when\n _PyObject_GetCrossInterpreterData() was called. This should only\n be set by the cross-interpreter machinery.\n\n We use the ID rather than the PyInterpreterState to avoid issues\n with deleted interpreters. Note that IDs are never re-used, so\n each one will always correspond to a specific interpreter\n (whether still alive or not)."] - pub interp: i64, - #[doc = " new_object is a function that returns a new object in the current\n interpreter given the data. The resulting object (a new\n reference) will be equivalent to the original object. This field\n is required."] - pub new_object: ::std::option::Option *mut PyObject>, - #[doc = " free is called when the data is released. If it is NULL then\n nothing will be done to free the data. For some types this is\n okay (e.g. bytes) and for those types this field should be set\n to NULL. However, for most the data was allocated just for\n cross-interpreter use, so it must be freed when\n _PyCrossInterpreterData_Release is called or the memory will\n leak. In that case, at the very least this field should be set\n to PyMem_RawFree (the default if not explicitly set to NULL).\n The call will happen with the original interpreter activated."] - pub free: ::std::option::Option, -} -#[test] -fn bindgen_test_layout__xid() { - const UNINIT: ::std::mem::MaybeUninit<_xid> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_xid>(), - 40usize, - concat!("Size of: ", stringify!(_xid)) - ); - assert_eq!( - ::std::mem::align_of::<_xid>(), - 8usize, - concat!("Alignment of ", stringify!(_xid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 8usize, - concat!("Offset of field: ", stringify!(_xid), "::", stringify!(obj)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(interp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(new_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_xid), - "::", - stringify!(free) - ) - ); -} -impl Default for _xid { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " _PyCrossInterpreterData is similar to Py_buffer as an effectively\n opaque struct that holds data outside the object machinery. This\n is necessary to pass safely between interpreters in the same process."] -pub type _PyCrossInterpreterData = _xid; -extern "C" { - pub fn _PyObject_GetCrossInterpreterData( - arg1: *mut PyObject, - arg2: *mut _PyCrossInterpreterData, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_NewObject(arg1: *mut _PyCrossInterpreterData) -> *mut PyObject; -} -extern "C" { - pub fn _PyCrossInterpreterData_Release(arg1: *mut _PyCrossInterpreterData); -} -extern "C" { - pub fn _PyObject_CheckCrossInterpreterData(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -#[doc = " cross-interpreter data registry"] -pub type crossinterpdatafunc = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut _xid) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn _PyCrossInterpreterData_RegisterClass( - arg1: *mut PyTypeObject, - arg2: crossinterpdatafunc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCrossInterpreterData_Lookup(arg1: *mut PyObject) -> crossinterpdatafunc; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGenObject { - pub ob_base: PyObject, - pub gi_frame: *mut PyFrameObject, - pub gi_running: ::std::os::raw::c_char, - pub gi_code: *mut PyObject, - pub gi_weakreflist: *mut PyObject, - pub gi_name: *mut PyObject, - pub gi_qualname: *mut PyObject, - pub gi_exc_state: _PyErr_StackItem, -} -#[test] -fn bindgen_test_layout_PyGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(PyGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gi_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyGenObject), - "::", - stringify!(gi_exc_state) - ) - ); -} -impl Default for PyGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyGen_Type: PyTypeObject; -} -extern "C" { - pub fn PyGen_New(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyGen_NewWithQualName( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_SetStopIterationValue(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_FetchStopIterationValue(arg1: *mut *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyGen_Send(arg1: *mut PyGenObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_yf(arg1: *mut PyGenObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyGen_Finalize(self_: *mut PyObject); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCoroObject { - pub ob_base: PyObject, - pub cr_frame: *mut PyFrameObject, - pub cr_running: ::std::os::raw::c_char, - pub cr_code: *mut PyObject, - pub cr_weakreflist: *mut PyObject, - pub cr_name: *mut PyObject, - pub cr_qualname: *mut PyObject, - pub cr_exc_state: _PyErr_StackItem, - pub cr_origin: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyCoroObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyCoroObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyCoroObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr_origin) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyCoroObject), - "::", - stringify!(cr_origin) - ) - ); -} -impl Default for PyCoroObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyCoro_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyCoroWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn _PyCoro_GetAwaitableIter(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCoro_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -#[doc = " Asynchronous Generators"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyAsyncGenObject { - pub ob_base: PyObject, - pub ag_frame: *mut PyFrameObject, - pub ag_running: ::std::os::raw::c_char, - pub ag_code: *mut PyObject, - pub ag_weakreflist: *mut PyObject, - pub ag_name: *mut PyObject, - pub ag_qualname: *mut PyObject, - pub ag_exc_state: _PyErr_StackItem, - pub ag_finalizer: *mut PyObject, - #[doc = " Flag is set to 1 when hooks set up by sys.set_asyncgen_hooks\nwere called on the generator, to avoid calling them more\nthan once."] - pub ag_hooks_inited: ::std::os::raw::c_int, - #[doc = " Flag is set to 1 when aclose() is called for the first time, or\nwhen a StopAsyncIteration exception is raised."] - pub ag_closed: ::std::os::raw::c_int, - pub ag_running_async: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyAsyncGenObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyAsyncGenObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_frame) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_code) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_weakreflist) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_weakreflist) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_name) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_qualname) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_qualname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_exc_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_exc_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_finalizer) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_finalizer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_hooks_inited) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_hooks_inited) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_closed) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_closed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ag_running_async) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(PyAsyncGenObject), - "::", - stringify!(ag_running_async) - ) - ); -} -impl Default for PyAsyncGenObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyAsyncGen_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenASend_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenWrappedValue_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyAsyncGenAThrow_Type: PyTypeObject; -} -extern "C" { - pub fn PyAsyncGen_New( - arg1: *mut PyFrameObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyAsyncGenValueWrapperNew(arg1: *mut PyObject) -> *mut PyObject; -} -pub type getter = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut PyObject, arg2: *mut ::std::os::raw::c_void) -> *mut PyObject, ->; -pub type setter = ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDef { - pub name: *const ::std::os::raw::c_char, - pub get: getter, - pub set: setter, - pub doc: *const ::std::os::raw::c_char, - pub closure: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyGetSetDef() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyGetSetDef)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDef)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).closure) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDef), - "::", - stringify!(closure) - ) - ); -} -impl Default for PyGetSetDef { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type wrapperfunc = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, ->; -pub type wrapperfunc_kwds = ::std::option::Option< - unsafe extern "C" fn( - self_: *mut PyObject, - args: *mut PyObject, - wrapped: *mut ::std::os::raw::c_void, - kwds: *mut PyObject, - ) -> *mut PyObject, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct wrapperbase { - pub name: *const ::std::os::raw::c_char, - pub offset: ::std::os::raw::c_int, - pub function: *mut ::std::os::raw::c_void, - pub wrapper: wrapperfunc, - pub doc: *const ::std::os::raw::c_char, - pub flags: ::std::os::raw::c_int, - pub name_strobj: *mut PyObject, -} -#[test] -fn bindgen_test_layout_wrapperbase() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(wrapperbase)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(wrapperbase)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wrapper) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(wrapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name_strobj) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(wrapperbase), - "::", - stringify!(name_strobj) - ) - ); -} -impl Default for wrapperbase { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Various kinds of descriptor objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyDescrObject { - pub ob_base: PyObject, - pub d_type: *mut PyTypeObject, - pub d_name: *mut PyObject, - pub d_qualname: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(PyDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_name) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_qualname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyDescrObject), - "::", - stringify!(d_qualname) - ) - ); -} -impl Default for PyDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMethodDescrObject { - pub d_common: PyDescrObject, - pub d_method: *mut PyMethodDef, - pub vectorcall: vectorcallfunc, -} -#[test] -fn bindgen_test_layout_PyMethodDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMethodDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_method) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(d_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vectorcall) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyMethodDescrObject), - "::", - stringify!(vectorcall) - ) - ); -} -impl Default for PyMethodDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyMemberDescrObject { - pub d_common: PyDescrObject, - pub d_member: *mut PyMemberDef, -} -#[test] -fn bindgen_test_layout_PyMemberDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyMemberDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_member) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyMemberDescrObject), - "::", - stringify!(d_member) - ) - ); -} -impl Default for PyMemberDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyGetSetDescrObject { - pub d_common: PyDescrObject, - pub d_getset: *mut PyGetSetDef, -} -#[test] -fn bindgen_test_layout_PyGetSetDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyGetSetDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_getset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyGetSetDescrObject), - "::", - stringify!(d_getset) - ) - ); -} -impl Default for PyGetSetDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyWrapperDescrObject { - pub d_common: PyDescrObject, - pub d_base: *mut wrapperbase, - #[doc = " This can be any function pointer"] - pub d_wrapped: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_PyWrapperDescrObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyWrapperDescrObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_common) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_base) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d_wrapped) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyWrapperDescrObject), - "::", - stringify!(d_wrapped) - ) - ); -} -impl Default for PyWrapperDescrObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyClassMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyGetSetDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMemberDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMethodDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyWrapperDescr_Type: PyTypeObject; -} -extern "C" { - pub static mut PyDictProxy_Type: PyTypeObject; -} -extern "C" { - pub static mut _PyMethodWrapper_Type: PyTypeObject; -} -extern "C" { - pub fn PyDescr_NewMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewClassMethod(arg1: *mut PyTypeObject, arg2: *mut PyMethodDef) - -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct PyMemberDef { - _unused: [u8; 0], -} -extern "C" { - pub fn PyDescr_NewMember(arg1: *mut PyTypeObject, arg2: *mut PyMemberDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewGetSet(arg1: *mut PyTypeObject, arg2: *mut PyGetSetDef) -> *mut PyObject; -} -extern "C" { - pub fn PyDescr_NewWrapper( - arg1: *mut PyTypeObject, - arg2: *mut wrapperbase, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyDictProxy_New(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWrapper_New(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyProperty_Type: PyTypeObject; -} -extern "C" { - pub fn Py_GenericAlias(arg1: *mut PyObject, arg2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_GenericAliasType: PyTypeObject; -} -extern "C" { - pub fn _PyWarnings_Init() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WarnEx( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - stack_level: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnFormat( - category: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Emit a ResourceWarning warning"] - pub fn PyErr_ResourceWarning( - source: *mut PyObject, - stack_level: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitObject( - category: *mut PyObject, - message: *mut PyObject, - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - module: *mut PyObject, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicit( - category: *mut PyObject, - message: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_WarnExplicitFormat( - category: *mut PyObject, - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - module: *const ::std::os::raw::c_char, - registry: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_WarnUnawaitedCoroutine(coro: *mut PyObject); -} -pub type PyWeakReference = _PyWeakReference; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyWeakReference { - pub ob_base: PyObject, - #[doc = " The object to which this is a weak reference, or Py_None if none.\n Note that this is a stealth reference: wr_object's refcount is\n not incremented to reflect this pointer."] - pub wr_object: *mut PyObject, - #[doc = " A callable to invoke when wr_object dies, or NULL if none."] - pub wr_callback: *mut PyObject, - #[doc = " A cache for wr_object's hash code. As usual for hashes, this is -1\n if the hash code isn't known yet."] - pub hash: Py_hash_t, - #[doc = " If wr_object is weakly referenced, wr_object has a doubly-linked NULL-\n terminated list of weak references to it. These are the list pointers.\n If wr_object goes away, wr_object is set to Py_None, and these pointers\n have no meaning then."] - pub wr_prev: *mut PyWeakReference, - pub wr_next: *mut PyWeakReference, -} -#[test] -fn bindgen_test_layout__PyWeakReference() { - const UNINIT: ::std::mem::MaybeUninit<_PyWeakReference> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyWeakReference>(), - 56usize, - concat!("Size of: ", stringify!(_PyWeakReference)) - ); - assert_eq!( - ::std::mem::align_of::<_PyWeakReference>(), - 8usize, - concat!("Alignment of ", stringify!(_PyWeakReference)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_object) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(hash) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_prev) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wr_next) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyWeakReference), - "::", - stringify!(wr_next) - ) - ); -} -impl Default for _PyWeakReference { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut _PyWeakref_RefType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_ProxyType: PyTypeObject; -} -extern "C" { - pub static mut _PyWeakref_CallableProxyType: PyTypeObject; -} -extern "C" { - pub fn PyWeakref_NewRef(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_NewProxy(ob: *mut PyObject, callback: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyWeakref_GetObject(ref_: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _PyWeakref_GetWeakrefCount(head: *mut PyWeakReference) -> Py_ssize_t; -} -extern "C" { - pub fn _PyWeakref_ClearRef(self_: *mut PyWeakReference); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Field { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Field() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Field)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Field), - "::", - stringify!(doc) - ) - ); -} -impl Default for PyStructSequence_Field { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStructSequence_Desc { - pub name: *const ::std::os::raw::c_char, - pub doc: *const ::std::os::raw::c_char, - pub fields: *mut PyStructSequence_Field, - pub n_in_sequence: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyStructSequence_Desc() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStructSequence_Desc)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(doc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).n_in_sequence) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStructSequence_Desc), - "::", - stringify!(n_in_sequence) - ) - ); -} -impl Default for PyStructSequence_Desc { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static PyStructSequence_UnnamedField: *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyStructSequence_InitType(type_: *mut PyTypeObject, desc: *mut PyStructSequence_Desc); -} -extern "C" { - pub fn PyStructSequence_InitType2( - type_: *mut PyTypeObject, - desc: *mut PyStructSequence_Desc, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyStructSequence_NewType(desc: *mut PyStructSequence_Desc) -> *mut PyTypeObject; -} -extern "C" { - pub fn PyStructSequence_New(type_: *mut PyTypeObject) -> *mut PyObject; -} -pub type PyStructSequence = PyTupleObject; -extern "C" { - pub fn PyStructSequence_SetItem(arg1: *mut PyObject, arg2: Py_ssize_t, arg3: *mut PyObject); -} -extern "C" { - pub fn PyStructSequence_GetItem(arg1: *mut PyObject, arg2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - pub static mut _PyNamespace_Type: PyTypeObject; -} -extern "C" { - pub fn _PyNamespace_New(kwds: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut PyPickleBuffer_Type: PyTypeObject; -} -extern "C" { - #[doc = " Create a PickleBuffer redirecting to the given buffer-enabled object"] - pub fn PyPickleBuffer_FromObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the PickleBuffer's underlying view to the original object\n (NULL if released)"] - pub fn PyPickleBuffer_GetBuffer(arg1: *mut PyObject) -> *const Py_buffer; -} -extern "C" { - #[doc = " Release the PickleBuffer. Returns 0 on success, -1 on error."] - pub fn PyPickleBuffer_Release(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Register a new codec search function.\n\nAs side effect, this tries to load the encodings package, if not\nyet done, to make sure that it is always first in the list of\nsearch functions.\n\nThe search_function's refcount is incremented by this function."] - pub fn PyCodec_Register(search_function: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyCodec_Lookup(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_Forget(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Codec registry encoding check API.\n\nReturns 1/0 depending on whether there is a registered codec for\nthe given encoding."] - pub fn PyCodec_KnownEncoding(encoding: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Generic codec based encoding API.\n\nobject is passed through the encoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Encode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Generic codec based decoding API.\n\nobject is passed through the decoder function found for the given\nencoding using the error handling method defined by errors. errors\nmay be NULL to use the default method defined for the codec.\n\nRaises a LookupError in case no encoder can be found.\n"] - pub fn PyCodec_Decode( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Text codec specific encoding and decoding API.\n\nChecks the encoding against a list of codecs which do not\nimplement a str<->bytes encoding before attempting the\noperation.\n\nPlease note that these APIs are internal and should not\nbe used in Python C extensions.\n\nXXX (ncoghlan): should we make these, or something like them, public\nin Python 3.5+?\n"] - pub fn _PyCodec_LookupTextEncoding( - encoding: *const ::std::os::raw::c_char, - alternate_command: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_EncodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodec_DecodeText( - object: *mut PyObject, - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " These two aren't actually text encoding specific, but _io.TextIOWrapper\n is the only current API consumer."] - pub fn _PyCodecInfo_GetIncrementalDecoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyCodecInfo_GetIncrementalEncoder( - codec_info: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an encoder function for the given encoding."] - pub fn PyCodec_Encoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a decoder function for the given encoding."] - pub fn PyCodec_Decoder(encoding: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalEncoder object for the given encoding."] - pub fn PyCodec_IncrementalEncoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get an IncrementalDecoder object function for the given encoding."] - pub fn PyCodec_IncrementalDecoder( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamReader factory function for the given encoding."] - pub fn PyCodec_StreamReader( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a StreamWriter factory function for the given encoding."] - pub fn PyCodec_StreamWriter( - encoding: *const ::std::os::raw::c_char, - stream: *mut PyObject, - errors: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Register the error handling callback function error under the given\nname. This function will be called by the codec when it encounters\nunencodable characters/undecodable bytes and doesn't know the\ncallback name, when name is specified as the error parameter\nin the call to the encode/decode function.\nReturn 0 on success, -1 on error"] - pub fn PyCodec_RegisterError( - name: *const ::std::os::raw::c_char, - error: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lookup the error handling callback function registered under the given\nname. As a special case NULL can be passed, in which case\nthe error handling callback for \"strict\" will be returned."] - pub fn PyCodec_LookupError(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " raise exc as an exception"] - pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " ignore the unicode error, skipping the faulty input"] - pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with ? or U+FFFD"] - pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with XML character references"] - pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\x, \\u and \\U)"] - pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " replace the unicode encode error with backslash escapes (\\N, \\x, \\u and \\U)"] - pub fn PyCodec_NameReplaceErrors(exc: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static mut Py_hexdigits: *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Error handling definitions"] - pub fn PyErr_SetNone(arg1: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetObject(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyErr_SetString(exception: *mut PyObject, string: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn PyErr_Occurred() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Clear(); -} -extern "C" { - pub fn PyErr_Fetch( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_Restore(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - pub fn PyErr_GetExcInfo( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - pub fn PyErr_SetExcInfo(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Defined in Python/pylifecycle.c\n\nThe Py_FatalError() function is replaced with a macro which logs\nautomatically the name of the current function, unless the Py_LIMITED_API\nmacro is defined."] - pub fn Py_FatalError(message: *const ::std::os::raw::c_char) -> !; -} -extern "C" { - #[doc = " Error testing and normalization"] - pub fn PyErr_GivenExceptionMatches( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_ExceptionMatches(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NormalizeException( - arg1: *mut *mut PyObject, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Traceback manipulation (PEP 3134)"] - pub fn PyException_SetTraceback( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyException_GetTraceback(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Cause manipulation (PEP 3134)"] - pub fn PyException_GetCause(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetCause(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn PyException_GetContext(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyException_SetContext(arg1: *mut PyObject, arg2: *mut PyObject); -} -extern "C" { - pub fn PyExceptionClass_Name(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Predefined exceptions"] - pub static mut PyExc_BaseException: *mut PyObject; -} -extern "C" { - pub static mut PyExc_Exception: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopAsyncIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_StopIteration: *mut PyObject; -} -extern "C" { - pub static mut PyExc_GeneratorExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ArithmeticError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_LookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AssertionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_AttributeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BufferError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_EOFError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FloatingPointError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OSError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ModuleNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndexError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_KeyboardInterrupt: *mut PyObject; -} -extern "C" { - pub static mut PyExc_MemoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NameError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_OverflowError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RecursionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotImplementedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IndentationError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TabError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ReferenceError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SystemExit: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TypeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnboundLocalError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeEncodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeDecodeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeTranslateError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ValueError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ZeroDivisionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BlockingIOError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BrokenPipeError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ChildProcessError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionAbortedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionRefusedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ConnectionResetError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileExistsError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FileNotFoundError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_InterruptedError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IsADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_NotADirectoryError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PermissionError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ProcessLookupError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_TimeoutError: *mut PyObject; -} -extern "C" { - #[doc = " Compatibility aliases"] - pub static mut PyExc_EnvironmentError: *mut PyObject; -} -extern "C" { - pub static mut PyExc_IOError: *mut PyObject; -} -extern "C" { - #[doc = " Predefined warning categories"] - pub static mut PyExc_Warning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UserWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_DeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_PendingDeprecationWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_SyntaxWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_RuntimeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_FutureWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ImportWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_UnicodeWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_BytesWarning: *mut PyObject; -} -extern "C" { - pub static mut PyExc_ResourceWarning: *mut PyObject; -} -extern "C" { - #[doc = " Convenience functions"] - pub fn PyErr_BadArgument() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_NoMemory() -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrno(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilenameObjects( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetFromErrnoWithFilename( - exc: *mut PyObject, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_Format( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_FormatV( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - vargs: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportErrorSubclass( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_SetImportError( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Export the old function so that the existing API remains available:"] - pub fn PyErr_BadInternalCall(); -} -extern "C" { - pub fn _PyErr_BadInternalCall( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Function to create a new exception"] - pub fn PyErr_NewException( - name: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_NewExceptionWithDoc( - name: *const ::std::os::raw::c_char, - doc: *const ::std::os::raw::c_char, - base: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyErr_WriteUnraisable(arg1: *mut PyObject); -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyErr_SetInterrupt(); -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocation( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_SyntaxLocationEx( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramText( - filename: *const ::std::os::raw::c_char, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " create a UnicodeDecodeError object"] - pub fn PyUnicodeDecodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const ::std::os::raw::c_char, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " get the encoding attribute"] - pub fn PyUnicodeEncodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEncoding(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the object attribute"] - pub fn PyUnicodeEncodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetObject(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " get the value of the start attribute (the int * may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetStart( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the start attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetStart( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the end attribute (the int *may not be NULL)\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetEnd( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " assign a new value to the end attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetEnd( - arg1: *mut PyObject, - arg2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " get the value of the reason attribute"] - pub fn PyUnicodeEncodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeDecodeError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyUnicodeTranslateError_GetReason(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " assign a new value to the reason attribute\nreturn 0 on success, -1 on failure"] - pub fn PyUnicodeEncodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeDecodeError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyUnicodeTranslateError_SetReason( - exc: *mut PyObject, - reason: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_snprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_vsnprintf( - str_: *mut ::std::os::raw::c_char, - size: usize, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyBaseExceptionObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_PyBaseExceptionObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyBaseExceptionObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyBaseExceptionObject), - "::", - stringify!(suppress_context) - ) - ); -} -impl Default for PyBaseExceptionObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySyntaxErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub filename: *mut PyObject, - pub lineno: *mut PyObject, - pub offset: *mut PyObject, - pub text: *mut PyObject, - pub print_file_and_line: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySyntaxErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySyntaxErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lineno) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(lineno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_file_and_line) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(PySyntaxErrorObject), - "::", - stringify!(print_file_and_line) - ) - ); -} -impl Default for PySyntaxErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyImportErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub msg: *mut PyObject, - pub name: *mut PyObject, - pub path: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyImportErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyImportErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyImportErrorObject), - "::", - stringify!(path) - ) - ); -} -impl Default for PyImportErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyUnicodeErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub encoding: *mut PyObject, - pub object: *mut PyObject, - pub start: Py_ssize_t, - pub end: Py_ssize_t, - pub reason: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyUnicodeErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyUnicodeErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).encoding) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyUnicodeErrorObject), - "::", - stringify!(reason) - ) - ); -} -impl Default for PyUnicodeErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PySystemExitObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub code: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PySystemExitObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PySystemExitObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PySystemExitObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PySystemExitObject), - "::", - stringify!(code) - ) - ); -} -impl Default for PySystemExitObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyOSErrorObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub myerrno: *mut PyObject, - pub strerror: *mut PyObject, - pub filename: *mut PyObject, - pub filename2: *mut PyObject, - #[doc = " only for BlockingIOError, -1 otherwise"] - pub written: Py_ssize_t, -} -#[test] -fn bindgen_test_layout_PyOSErrorObject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyOSErrorObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).myerrno) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(myerrno) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).strerror) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(strerror) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).filename2) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(filename2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).written) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(PyOSErrorObject), - "::", - stringify!(written) - ) - ); -} -impl Default for PyOSErrorObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyStopIterationObject { - pub ob_base: PyObject, - pub dict: *mut PyObject, - pub args: *mut PyObject, - pub traceback: *mut PyObject, - pub context: *mut PyObject, - pub cause: *mut PyObject, - pub suppress_context: ::std::os::raw::c_char, - pub value: *mut PyObject, -} -#[test] -fn bindgen_test_layout_PyStopIterationObject() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(PyStopIterationObject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).args) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(args) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).traceback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(traceback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cause) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(cause) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_context) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(suppress_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(PyStopIterationObject), - "::", - stringify!(value) - ) - ); -} -impl Default for PyStopIterationObject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Compatibility typedefs"] -pub type PyEnvironmentErrorObject = PyOSErrorObject; -extern "C" { - #[doc = " Error handling definitions"] - pub fn _PyErr_SetKeyError(arg1: *mut PyObject); -} -extern "C" { - pub fn _PyErr_GetTopmostException(tstate: *mut PyThreadState) -> *mut _PyErr_StackItem; -} -extern "C" { - pub fn _PyErr_GetExcInfo( - arg1: *mut PyThreadState, - arg2: *mut *mut PyObject, - arg3: *mut *mut PyObject, - arg4: *mut *mut PyObject, - ); -} -extern "C" { - #[doc = " Context manipulation (PEP 3134)"] - pub fn _PyErr_ChainExceptions(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " Like PyErr_Format(), but saves current exception as __context__ and\n__cause__."] - pub fn _PyErr_FormatFromCause( - exception: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " In signalmodule.c"] - pub fn PySignal_SetWakeupFd(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyErr_CheckSignals() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Support for adding program text to SyntaxErrors"] - pub fn PyErr_SyntaxLocationObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - col_offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PyErr_ProgramTextObject( - filename: *mut PyObject, - lineno: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeEncodeError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeEncodeError_Create( - encoding: *const ::std::os::raw::c_char, - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Create a UnicodeTranslateError object.\n\n TODO: This API will be removed in Python 3.11."] - pub fn PyUnicodeTranslateError_Create( - object: *const Py_UNICODE, - length: Py_ssize_t, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyUnicodeTranslateError_Create( - object: *mut PyObject, - start: Py_ssize_t, - end: Py_ssize_t, - reason: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyErr_WriteUnraisableMsg(err_msg: *const ::std::os::raw::c_char, obj: *mut PyObject); -} -extern "C" { - pub fn _Py_FatalErrorFunc( - func: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn _Py_FatalErrorFormat( - func: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> !; -} -pub type PyThread_type_lock = *mut ::std::os::raw::c_void; -pub const PyLockStatus_PY_LOCK_FAILURE: PyLockStatus = 0; -pub const PyLockStatus_PY_LOCK_ACQUIRED: PyLockStatus = 1; -pub const PyLockStatus_PY_LOCK_INTR: PyLockStatus = 2; -#[doc = " Return status codes for Python lock acquisition. Chosen for maximum\n backwards compatibility, ie failure -> 0, success -> 1."] -pub type PyLockStatus = ::std::os::raw::c_uint; -extern "C" { - pub fn PyThread_init_thread(); -} -extern "C" { - pub fn PyThread_start_new_thread( - arg1: ::std::option::Option, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_exit_thread() -> !; -} -extern "C" { - pub fn PyThread_get_thread_ident() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_get_thread_native_id() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn PyThread_allocate_lock() -> PyThread_type_lock; -} -extern "C" { - pub fn PyThread_free_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_acquire_lock( - arg1: PyThread_type_lock, - arg2: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Private function to reinitialize a lock at fork in the child process.\nReset the lock to the unlocked state.\nReturn 0 on success, return -1 on error."] - pub fn _PyThread_at_fork_reinit(lock: *mut PyThread_type_lock) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " If microseconds == 0, the call is non-blocking: it returns immediately\neven when the lock can't be acquired.\nIf microseconds > 0, the call waits up to the specified duration.\nIf microseconds < 0, the call waits until success (or abnormal failure)\n\nmicroseconds must be less than PY_TIMEOUT_MAX. Behaviour otherwise is\nundefined.\n\nIf intr_flag is true and the acquire is interrupted by a signal, then the\ncall will return PY_LOCK_INTR. The caller may reattempt to acquire the\nlock."] - pub fn PyThread_acquire_lock_timed( - arg1: PyThread_type_lock, - microseconds: ::std::os::raw::c_longlong, - intr_flag: ::std::os::raw::c_int, - ) -> PyLockStatus; -} -extern "C" { - pub fn PyThread_release_lock(arg1: PyThread_type_lock); -} -extern "C" { - pub fn PyThread_get_stacksize() -> usize; -} -extern "C" { - pub fn PyThread_set_stacksize(arg1: usize) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_GetInfo() -> *mut PyObject; -} -extern "C" { - #[doc = " Thread Local Storage (TLS) API\nTLS API is DEPRECATED. Use Thread Specific Storage (TSS) API.\n\nThe existing TLS API has used int to represent TLS keys across all\nplatforms, but it is not POSIX-compliant. Therefore, the new TSS API uses\nopaque data type to represent TSS keys to be compatible (see PEP 539)."] - pub fn PyThread_create_key() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_delete_key(key: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyThread_set_key_value( - key: ::std::os::raw::c_int, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_get_key_value(key: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn PyThread_delete_key_value(key: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " Cleanup after a fork"] - pub fn PyThread_ReInitTLS(); -} -#[doc = " New in 3.7 */\n/* Thread Specific Storage (TSS) API"] -pub type Py_tss_t = _Py_tss_t; -#[doc = " Data structure to describe a process' schedulability."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sched_param { - pub sched_priority: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_sched_param() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(sched_param)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sched_param)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sched_priority) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sched_param), - "::", - stringify!(sched_priority) - ) - ); -} -#[doc = " Type for array elements in 'cpu_set_t'."] -pub type __cpu_mask = ::std::os::raw::c_ulong; -#[doc = " Data structure to describe CPU mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_set_t { - pub __bits: [__cpu_mask; 16usize], -} -#[test] -fn bindgen_test_layout_cpu_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(cpu_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_set_t), - "::", - stringify!(__bits) - ) - ); -} -extern "C" { - pub fn __sched_cpucount(__setsize: usize, __setp: *const cpu_set_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn __sched_cpualloc(__count: usize) -> *mut cpu_set_t; -} -extern "C" { - pub fn __sched_cpufree(__set: *mut cpu_set_t); -} -extern "C" { - #[doc = " Set scheduling parameters for a process."] - pub fn sched_setparam(__pid: __pid_t, __param: *const sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling parameters for a particular process."] - pub fn sched_getparam(__pid: __pid_t, __param: *mut sched_param) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling algorithm and/or parameters for a process."] - pub fn sched_setscheduler( - __pid: __pid_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Retrieve scheduling algorithm for a particular purpose."] - pub fn sched_getscheduler(__pid: __pid_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Yield the processor."] - pub fn sched_yield() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get maximum priority value for a scheduler."] - pub fn sched_get_priority_max(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get minimum priority value for a scheduler."] - pub fn sched_get_priority_min(__algorithm: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sched_rr_get_interval(__pid: __pid_t, __t: *mut timespec) -> ::std::os::raw::c_int; -} -pub type __jmp_buf = [::std::os::raw::c_long; 8usize]; -#[doc = " Calling environment, plus possibly a saved signal mask."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __jmp_buf_tag { - #[doc = " Calling environment."] - pub __jmpbuf: __jmp_buf, - #[doc = " Saved the signal mask?"] - pub __mask_was_saved: ::std::os::raw::c_int, - #[doc = " Saved signal mask."] - pub __saved_mask: __sigset_t, -} -#[test] -fn bindgen_test_layout___jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__jmp_buf_tag>(), - 200usize, - concat!("Size of: ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__jmpbuf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__jmpbuf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__saved_mask) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__jmp_buf_tag), - "::", - stringify!(__saved_mask) - ) - ); -} -pub const PTHREAD_CREATE_JOINABLE: _bindgen_ty_6 = 0; -pub const PTHREAD_CREATE_DETACHED: _bindgen_ty_6 = 1; -#[doc = " Detach state."] -pub type _bindgen_ty_6 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_TIMED_NP: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE_NP: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK_NP: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_ADAPTIVE_NP: _bindgen_ty_7 = 3; -pub const PTHREAD_MUTEX_NORMAL: _bindgen_ty_7 = 0; -pub const PTHREAD_MUTEX_RECURSIVE: _bindgen_ty_7 = 1; -pub const PTHREAD_MUTEX_ERRORCHECK: _bindgen_ty_7 = 2; -pub const PTHREAD_MUTEX_DEFAULT: _bindgen_ty_7 = 0; -#[doc = " Mutex types."] -pub type _bindgen_ty_7 = ::std::os::raw::c_uint; -pub const PTHREAD_MUTEX_STALLED: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_STALLED_NP: _bindgen_ty_8 = 0; -pub const PTHREAD_MUTEX_ROBUST: _bindgen_ty_8 = 1; -pub const PTHREAD_MUTEX_ROBUST_NP: _bindgen_ty_8 = 1; -#[doc = " Robust mutex or not flags."] -pub type _bindgen_ty_8 = ::std::os::raw::c_uint; -pub const PTHREAD_PRIO_NONE: _bindgen_ty_9 = 0; -pub const PTHREAD_PRIO_INHERIT: _bindgen_ty_9 = 1; -pub const PTHREAD_PRIO_PROTECT: _bindgen_ty_9 = 2; -#[doc = " Mutex protocols."] -pub type _bindgen_ty_9 = ::std::os::raw::c_uint; -pub const PTHREAD_RWLOCK_PREFER_READER_NP: _bindgen_ty_10 = 0; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NP: _bindgen_ty_10 = 1; -pub const PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP: _bindgen_ty_10 = 2; -pub const PTHREAD_RWLOCK_DEFAULT_NP: _bindgen_ty_10 = 0; -pub type _bindgen_ty_10 = ::std::os::raw::c_uint; -pub const PTHREAD_INHERIT_SCHED: _bindgen_ty_11 = 0; -pub const PTHREAD_EXPLICIT_SCHED: _bindgen_ty_11 = 1; -#[doc = " Scheduler inheritance."] -pub type _bindgen_ty_11 = ::std::os::raw::c_uint; -pub const PTHREAD_SCOPE_SYSTEM: _bindgen_ty_12 = 0; -pub const PTHREAD_SCOPE_PROCESS: _bindgen_ty_12 = 1; -#[doc = " Scope handling."] -pub type _bindgen_ty_12 = ::std::os::raw::c_uint; -pub const PTHREAD_PROCESS_PRIVATE: _bindgen_ty_13 = 0; -pub const PTHREAD_PROCESS_SHARED: _bindgen_ty_13 = 1; -#[doc = " Process shared or private flag."] -pub type _bindgen_ty_13 = ::std::os::raw::c_uint; -#[doc = " Cleanup buffers"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _pthread_cleanup_buffer { - #[doc = " Function to call."] - pub __routine: ::std::option::Option, - #[doc = " Its argument."] - pub __arg: *mut ::std::os::raw::c_void, - #[doc = " Saved cancellation type."] - pub __canceltype: ::std::os::raw::c_int, - #[doc = " Chaining of cleanup functions."] - pub __prev: *mut _pthread_cleanup_buffer, -} -#[test] -fn bindgen_test_layout__pthread_cleanup_buffer() { - const UNINIT: ::std::mem::MaybeUninit<_pthread_cleanup_buffer> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_pthread_cleanup_buffer>(), - 32usize, - concat!("Size of: ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - ::std::mem::align_of::<_pthread_cleanup_buffer>(), - 8usize, - concat!("Alignment of ", stringify!(_pthread_cleanup_buffer)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__canceltype) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__canceltype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_pthread_cleanup_buffer), - "::", - stringify!(__prev) - ) - ); -} -impl Default for _pthread_cleanup_buffer { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const PTHREAD_CANCEL_ENABLE: _bindgen_ty_14 = 0; -pub const PTHREAD_CANCEL_DISABLE: _bindgen_ty_14 = 1; -#[doc = " Cancellation"] -pub type _bindgen_ty_14 = ::std::os::raw::c_uint; -pub const PTHREAD_CANCEL_DEFERRED: _bindgen_ty_15 = 0; -pub const PTHREAD_CANCEL_ASYNCHRONOUS: _bindgen_ty_15 = 1; -pub type _bindgen_ty_15 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new thread, starting with execution of START-ROUTINE\ngetting passed ARG. Creation attributed come from ATTR. The new\nhandle is stored in *NEWTHREAD."] - pub fn pthread_create( - __newthread: *mut pthread_t, - __attr: *const pthread_attr_t, - __start_routine: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void, - >, - __arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Terminate calling thread.\n\nThe registered cleanup handlers are called via exception handling\nso we cannot mark this function with __THROW."] - pub fn pthread_exit(__retval: *mut ::std::os::raw::c_void) -> !; -} -extern "C" { - #[doc = " Make calling thread wait for termination of the thread TH. The\nexit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN\nis not NULL.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_join( - __th: pthread_t, - __thread_return: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Indicate that the thread TH is never to be joined with PTHREAD_JOIN.\nThe resources of TH will therefore be freed immediately when it\nterminates, instead of waiting for another thread to perform PTHREAD_JOIN\non it."] - pub fn pthread_detach(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Obtain the identifier of the current thread."] - pub fn pthread_self() -> pthread_t; -} -extern "C" { - #[doc = " Compare two thread identifiers."] - pub fn pthread_equal(__thread1: pthread_t, __thread2: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize thread attribute *ATTR with default attributes\n(detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,\nno user-provided stack)."] - pub fn pthread_attr_init(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy thread attribute *ATTR."] - pub fn pthread_attr_destroy(__attr: *mut pthread_attr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get detach state attribute."] - pub fn pthread_attr_getdetachstate( - __attr: *const pthread_attr_t, - __detachstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set detach state attribute."] - pub fn pthread_attr_setdetachstate( - __attr: *mut pthread_attr_t, - __detachstate: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_getguardsize( - __attr: *const pthread_attr_t, - __guardsize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the size of the guard area created for stack overflow protection."] - pub fn pthread_attr_setguardsize( - __attr: *mut pthread_attr_t, - __guardsize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PARAM the scheduling parameters of *ATTR."] - pub fn pthread_attr_getschedparam( - __attr: *const pthread_attr_t, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling parameters (priority, etc) in *ATTR according to PARAM."] - pub fn pthread_attr_setschedparam( - __attr: *mut pthread_attr_t, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY the scheduling policy of *ATTR."] - pub fn pthread_attr_getschedpolicy( - __attr: *const pthread_attr_t, - __policy: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling policy in *ATTR according to POLICY."] - pub fn pthread_attr_setschedpolicy( - __attr: *mut pthread_attr_t, - __policy: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *INHERIT the scheduling inheritance mode of *ATTR."] - pub fn pthread_attr_getinheritsched( - __attr: *const pthread_attr_t, - __inherit: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling inheritance mode in *ATTR according to INHERIT."] - pub fn pthread_attr_setinheritsched( - __attr: *mut pthread_attr_t, - __inherit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *SCOPE the scheduling contention scope of *ATTR."] - pub fn pthread_attr_getscope( - __attr: *const pthread_attr_t, - __scope: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set scheduling contention scope in *ATTR according to SCOPE."] - pub fn pthread_attr_setscope( - __attr: *mut pthread_attr_t, - __scope: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstackaddr( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the starting address of the stack of the thread to be created.\nDepending on whether the stack grows up or down the value must either\nbe higher or lower than all the address in the memory block. The\nminimal size of the block must be PTHREAD_STACK_MIN."] - pub fn pthread_attr_setstackaddr( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the currently used minimal stack size."] - pub fn pthread_attr_getstacksize( - __attr: *const pthread_attr_t, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Add information about the minimum stack size needed for the thread\nto be started. This size must never be less than PTHREAD_STACK_MIN\nand must also not exceed the system limits."] - pub fn pthread_attr_setstacksize( - __attr: *mut pthread_attr_t, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the previously set address for the stack."] - pub fn pthread_attr_getstack( - __attr: *const pthread_attr_t, - __stackaddr: *mut *mut ::std::os::raw::c_void, - __stacksize: *mut usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " The following two interfaces are intended to replace the last two. They\nrequire setting the address as well as the size since only setting the\naddress will make the implementation on some architectures impossible."] - pub fn pthread_attr_setstack( - __attr: *mut pthread_attr_t, - __stackaddr: *mut ::std::os::raw::c_void, - __stacksize: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling parameters for TARGET_THREAD according to POLICY\nand *PARAM."] - pub fn pthread_setschedparam( - __target_thread: pthread_t, - __policy: ::std::os::raw::c_int, - __param: *const sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD."] - pub fn pthread_getschedparam( - __target_thread: pthread_t, - __policy: *mut ::std::os::raw::c_int, - __param: *mut sched_param, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the scheduling priority for TARGET_THREAD."] - pub fn pthread_setschedprio( - __target_thread: pthread_t, - __prio: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guarantee that the initialization function INIT_ROUTINE will be called\nonly once, even if pthread_once is executed several times with the\nsame ONCE_CONTROL argument. ONCE_CONTROL must point to a static or\nextern variable initialized to PTHREAD_ONCE_INIT.\n\nThe initialization functions might throw exception which is why\nthis function is not marked with __THROW."] - pub fn pthread_once( - __once_control: *mut pthread_once_t, - __init_routine: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancelability state of current thread to STATE, returning old\nstate in *OLDSTATE if OLDSTATE is not NULL."] - pub fn pthread_setcancelstate( - __state: ::std::os::raw::c_int, - __oldstate: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set cancellation state of current thread to TYPE, returning the old\ntype in *OLDTYPE if OLDTYPE is not NULL."] - pub fn pthread_setcanceltype( - __type: ::std::os::raw::c_int, - __oldtype: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Cancel THREAD immediately or at the next possibility."] - pub fn pthread_cancel(__th: pthread_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Test for pending cancellation for the current thread and terminate\nthe thread as per pthread_exit(PTHREAD_CANCELED) if it has been\ncancelled."] - pub fn pthread_testcancel(); -} -#[doc = " Cancellation handling with integration into exception handling."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __cancel_jmp_buf_tag { - pub __cancel_jmp_buf: __jmp_buf, - pub __mask_was_saved: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___cancel_jmp_buf_tag() { - const UNINIT: ::std::mem::MaybeUninit<__cancel_jmp_buf_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__cancel_jmp_buf_tag>(), - 72usize, - concat!("Size of: ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__cancel_jmp_buf_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__cancel_jmp_buf_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__mask_was_saved) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(__cancel_jmp_buf_tag), - "::", - stringify!(__mask_was_saved) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_unwind_buf_t { - pub __cancel_jmp_buf: [__cancel_jmp_buf_tag; 1usize], - pub __pad: [*mut ::std::os::raw::c_void; 4usize], -} -#[test] -fn bindgen_test_layout___pthread_unwind_buf_t() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_unwind_buf_t> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_unwind_buf_t>(), - 104usize, - concat!("Size of: ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_unwind_buf_t>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_unwind_buf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_jmp_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__cancel_jmp_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(__pthread_unwind_buf_t), - "::", - stringify!(__pad) - ) - ); -} -impl Default for __pthread_unwind_buf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure to hold the cleanup handler information."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __pthread_cleanup_frame { - pub __cancel_routine: - ::std::option::Option, - pub __cancel_arg: *mut ::std::os::raw::c_void, - pub __do_it: ::std::os::raw::c_int, - pub __cancel_type: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout___pthread_cleanup_frame() { - const UNINIT: ::std::mem::MaybeUninit<__pthread_cleanup_frame> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__pthread_cleanup_frame>(), - 24usize, - concat!("Size of: ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_cleanup_frame>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_cleanup_frame)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_routine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_routine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__do_it) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__do_it) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cancel_type) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(__pthread_cleanup_frame), - "::", - stringify!(__cancel_type) - ) - ); -} -impl Default for __pthread_cleanup_frame { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn __pthread_register_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - pub fn __pthread_unregister_cancel(__buf: *mut __pthread_unwind_buf_t); -} -extern "C" { - #[doc = " Internal interface to initiate cleanup."] - pub fn __pthread_unwind_next(__buf: *mut __pthread_unwind_buf_t) -> !; -} -extern "C" { - pub fn __sigsetjmp( - __env: *mut __jmp_buf_tag, - __savemask: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize a mutex."] - pub fn pthread_mutex_init( - __mutex: *mut pthread_mutex_t, - __mutexattr: *const pthread_mutexattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a mutex."] - pub fn pthread_mutex_destroy(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try locking a mutex."] - pub fn pthread_mutex_trylock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Lock a mutex."] - pub fn pthread_mutex_lock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_mutex_timedlock( - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock a mutex."] - pub fn pthread_mutex_unlock(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the priority ceiling of MUTEX."] - pub fn pthread_mutex_getprioceiling( - __mutex: *const pthread_mutex_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the priority ceiling of MUTEX to PRIOCEILING, return old\npriority ceiling value in *OLD_CEILING."] - pub fn pthread_mutex_setprioceiling( - __mutex: *mut pthread_mutex_t, - __prioceiling: ::std::os::raw::c_int, - __old_ceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Declare the state protected by MUTEX as consistent."] - pub fn pthread_mutex_consistent(__mutex: *mut pthread_mutex_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize mutex attribute object ATTR with default attributes\n(kind is PTHREAD_MUTEX_TIMED_NP)."] - pub fn pthread_mutexattr_init(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy mutex attribute object ATTR."] - pub fn pthread_mutexattr_destroy(__attr: *mut pthread_mutexattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getpshared( - __attr: *const pthread_mutexattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setpshared( - __attr: *mut pthread_mutexattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *KIND the mutex kind attribute in *ATTR."] - pub fn pthread_mutexattr_gettype( - __attr: *const pthread_mutexattr_t, - __kind: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,\nPTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or\nPTHREAD_MUTEX_DEFAULT)."] - pub fn pthread_mutexattr_settype( - __attr: *mut pthread_mutexattr_t, - __kind: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PROTOCOL the mutex protocol attribute in *ATTR."] - pub fn pthread_mutexattr_getprotocol( - __attr: *const pthread_mutexattr_t, - __protocol: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex protocol attribute in *ATTR to PROTOCOL (either\nPTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT)."] - pub fn pthread_mutexattr_setprotocol( - __attr: *mut pthread_mutexattr_t, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR."] - pub fn pthread_mutexattr_getprioceiling( - __attr: *const pthread_mutexattr_t, - __prioceiling: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the mutex prioceiling attribute in *ATTR to PRIOCEILING."] - pub fn pthread_mutexattr_setprioceiling( - __attr: *mut pthread_mutexattr_t, - __prioceiling: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_getrobust( - __attr: *const pthread_mutexattr_t, - __robustness: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the robustness flag of the mutex attribute ATTR."] - pub fn pthread_mutexattr_setrobust( - __attr: *mut pthread_mutexattr_t, - __robustness: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize read-write lock RWLOCK using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_rwlock_init( - __rwlock: *mut pthread_rwlock_t, - __attr: *const pthread_rwlockattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy read-write lock RWLOCK."] - pub fn pthread_rwlock_destroy(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire read lock for RWLOCK."] - pub fn pthread_rwlock_rdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire read lock for RWLOCK."] - pub fn pthread_rwlock_tryrdlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedrdlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Acquire write lock for RWLOCK."] - pub fn pthread_rwlock_wrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to acquire write lock for RWLOCK."] - pub fn pthread_rwlock_trywrlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_rwlock_timedwrlock( - __rwlock: *mut pthread_rwlock_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Unlock RWLOCK."] - pub fn pthread_rwlock_unlock(__rwlock: *mut pthread_rwlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize attribute object ATTR with default values."] - pub fn pthread_rwlockattr_init(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy attribute object ATTR."] - pub fn pthread_rwlockattr_destroy(__attr: *mut pthread_rwlockattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of process-shared attribute of ATTR in PSHARED."] - pub fn pthread_rwlockattr_getpshared( - __attr: *const pthread_rwlockattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set process-shared attribute of ATTR to PSHARED."] - pub fn pthread_rwlockattr_setpshared( - __attr: *mut pthread_rwlockattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current setting of reader/writer preference."] - pub fn pthread_rwlockattr_getkind_np( - __attr: *const pthread_rwlockattr_t, - __pref: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set reader/write preference."] - pub fn pthread_rwlockattr_setkind_np( - __attr: *mut pthread_rwlockattr_t, - __pref: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable COND using attributes ATTR, or use\nthe default values if later is NULL."] - pub fn pthread_cond_init( - __cond: *mut pthread_cond_t, - __cond_attr: *const pthread_condattr_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable COND."] - pub fn pthread_cond_destroy(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up one thread waiting for condition variable COND."] - pub fn pthread_cond_signal(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wake up all threads waiting for condition variables COND."] - pub fn pthread_cond_broadcast(__cond: *mut pthread_cond_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait for condition variable COND to be signaled or broadcast.\nMUTEX is assumed to be locked before.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn pthread_cond_wait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pthread_cond_timedwait( - __cond: *mut pthread_cond_t, - __mutex: *mut pthread_mutex_t, - __abstime: *const timespec, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize condition variable attribute ATTR."] - pub fn pthread_condattr_init(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy condition variable attribute ATTR."] - pub fn pthread_condattr_destroy(__attr: *mut pthread_condattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_getpshared( - __attr: *const pthread_condattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the condition variable attribute ATTR."] - pub fn pthread_condattr_setpshared( - __attr: *mut pthread_condattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_getclock( - __attr: *const pthread_condattr_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the clock selected for the condition variable attribute ATTR."] - pub fn pthread_condattr_setclock( - __attr: *mut pthread_condattr_t, - __clock_id: __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can\nbe shared between different processes."] - pub fn pthread_spin_init( - __lock: *mut pthread_spinlock_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy the spinlock LOCK."] - pub fn pthread_spin_destroy(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait until spinlock LOCK is retrieved."] - pub fn pthread_spin_lock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Try to lock spinlock LOCK."] - pub fn pthread_spin_trylock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Release spinlock LOCK."] - pub fn pthread_spin_unlock(__lock: *mut pthread_spinlock_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize BARRIER with the attributes in ATTR. The barrier is\nopened when COUNT waiters arrived."] - pub fn pthread_barrier_init( - __barrier: *mut pthread_barrier_t, - __attr: *const pthread_barrierattr_t, - __count: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy a previously dynamically initialized barrier BARRIER."] - pub fn pthread_barrier_destroy(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Wait on barrier BARRIER."] - pub fn pthread_barrier_wait(__barrier: *mut pthread_barrier_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialize barrier attribute ATTR."] - pub fn pthread_barrierattr_init(__attr: *mut pthread_barrierattr_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy previously dynamically initialized barrier attribute ATTR."] - pub fn pthread_barrierattr_destroy(__attr: *mut pthread_barrierattr_t) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_getpshared( - __attr: *const pthread_barrierattr_t, - __pshared: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set the process-shared flag of the barrier attribute ATTR."] - pub fn pthread_barrierattr_setpshared( - __attr: *mut pthread_barrierattr_t, - __pshared: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a key value identifying a location in the thread-specific\ndata area. Each thread maintains a distinct thread-specific data\narea. DESTR_FUNCTION, if non-NULL, is called with the value\nassociated to that key when the key is destroyed.\nDESTR_FUNCTION is not called if the value associated is NULL when\nthe key is destroyed."] - pub fn pthread_key_create( - __key: *mut pthread_key_t, - __destr_function: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void), - >, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Destroy KEY."] - pub fn pthread_key_delete(__key: pthread_key_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return current value of the thread-specific data slot identified by KEY."] - pub fn pthread_getspecific(__key: pthread_key_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Store POINTER in the thread-specific data slot identified by KEY."] - pub fn pthread_setspecific( - __key: pthread_key_t, - __pointer: *const ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get ID of CPU-time clock for thread THREAD_ID."] - pub fn pthread_getcpuclockid( - __thread_id: pthread_t, - __clock_id: *mut __clockid_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Install handlers to be called when a new process is created with FORK.\nThe PREPARE handler is called in the parent process just before performing\nFORK. The PARENT handler is called in the parent process just after FORK.\nThe CHILD handler is called in the child process. Each of the three\nhandlers can be NULL, meaning that no handler needs to be called at that\npoint.\nPTHREAD_ATFORK can be called several times, in which case the PREPARE\nhandlers are called in LIFO order (last added with PTHREAD_ATFORK,\nfirst called before FORK), and the PARENT and CHILD handlers are called\nin FIFO (first added, first called)."] - pub fn pthread_atfork( - __prepare: ::std::option::Option, - __parent: ::std::option::Option, - __child: ::std::option::Option, - ) -> ::std::os::raw::c_int; -} -#[doc = " When Py_LIMITED_API is not defined, the type layout of Py_tss_t is\nexposed to allow static allocation in the API clients. Even in this case,\nyou must handle TSS keys through API functions due to compatibility."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _Py_tss_t { - pub _is_initialized: ::std::os::raw::c_int, - pub _key: pthread_key_t, -} -#[test] -fn bindgen_test_layout__Py_tss_t() { - const UNINIT: ::std::mem::MaybeUninit<_Py_tss_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_Py_tss_t>(), - 8usize, - concat!("Size of: ", stringify!(_Py_tss_t)) - ); - assert_eq!( - ::std::mem::align_of::<_Py_tss_t>(), - 4usize, - concat!("Alignment of ", stringify!(_Py_tss_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._is_initialized) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_is_initialized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._key) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_Py_tss_t), - "::", - stringify!(_key) - ) - ); -} -extern "C" { - pub fn PyThread_tss_alloc() -> *mut Py_tss_t; -} -extern "C" { - pub fn PyThread_tss_free(key: *mut Py_tss_t); -} -extern "C" { - #[doc = " The parameter key must not be NULL."] - pub fn PyThread_tss_is_created(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_create(key: *mut Py_tss_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_delete(key: *mut Py_tss_t); -} -extern "C" { - pub fn PyThread_tss_set( - key: *mut Py_tss_t, - value: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyThread_tss_get(key: *mut Py_tss_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub static mut PyContext_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextobject { - _unused: [u8; 0], -} -pub type PyContext = _pycontextobject; -extern "C" { - pub static mut PyContextVar_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontextvarobject { - _unused: [u8; 0], -} -pub type PyContextVar = _pycontextvarobject; -extern "C" { - pub static mut PyContextToken_Type: PyTypeObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _pycontexttokenobject { - _unused: [u8; 0], -} -pub type PyContextToken = _pycontexttokenobject; -extern "C" { - pub fn PyContext_New() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Copy(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyContext_CopyCurrent() -> *mut PyObject; -} -extern "C" { - pub fn PyContext_Enter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyContext_Exit(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create a new context variable.\n\ndefault_value can be NULL."] - pub fn PyContextVar_New( - name: *const ::std::os::raw::c_char, - default_value: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get a value for the variable.\n\nReturns -1 if an error occurred during lookup.\n\nReturns 0 if value either was or was not found.\n\nIf value was found, *value will point to it.\nIf not, it will point to:\n\n- default_value, if not NULL;\n- the default value of \"var\", if not NULL;\n- NULL.\n\n'*value' will be a new ref, if not NULL."] - pub fn PyContextVar_Get( - var: *mut PyObject, - default_value: *mut PyObject, - value: *mut *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Set a new value for the variable.\nReturns NULL if an error occurs."] - pub fn PyContextVar_Set(var: *mut PyObject, value: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Reset a variable to its previous value.\nReturns 0 on success, -1 on error."] - pub fn PyContextVar_Reset(var: *mut PyObject, token: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This method is exposed only for CPython tests. Don not use it."] - pub fn _PyContext_NewHamtForTests() -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _arena { - _unused: [u8; 0], -} -pub type PyArena = _arena; -extern "C" { - #[doc = " PyArena_New() and PyArena_Free() create a new arena and free it,\nrespectively. Once an arena has been created, it can be used\nto allocate memory via PyArena_Malloc(). Pointers to PyObject can\nalso be registered with the arena via PyArena_AddPyObject(), and the\narena will ensure that the PyObjects stay alive at least until\nPyArena_Free() is called. When an arena is freed, all the memory it\nallocated is freed, the arena releases internal references to registered\nPyObject*, and none of its pointers are valid.\nXXX (tim) What does \"none of its pointers are valid\" mean? Does it\nXXX mean that pointers previously obtained via PyArena_Malloc() are\nXXX no longer valid? (That's clearly true, but not sure that's what\nXXX the text is trying to say.)\n\nPyArena_New() returns an arena pointer. On error, it\nreturns a negative number and sets an exception.\nXXX (tim): Not true. On error, PyArena_New() actually returns NULL,\nXXX and looks like it may or may not set an exception (e.g., if the\nXXX internal PyList_New(0) returns NULL, PyArena_New() passes that on\nXXX and an exception is set; OTOH, if the internal\nXXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but\nXXX an exception is not set in that case)."] - pub fn PyArena_New() -> *mut PyArena; -} -extern "C" { - pub fn PyArena_Free(arg1: *mut PyArena); -} -extern "C" { - #[doc = " Mostly like malloc(), return the address of a block of memory spanning\n `size` bytes, or return NULL (without setting an exception) if enough\n new memory can't be obtained. Unlike malloc(0), PyArena_Malloc() with\n size=0 does not guarantee to return a unique pointer (the pointer\n returned may equal one or more other pointers obtained from\n PyArena_Malloc()).\n Note that pointers obtained via PyArena_Malloc() must never be passed to\n the system free() or realloc(), or to any of Python's similar memory-\n management functions. PyArena_Malloc()-obtained pointers remain valid\n until PyArena_Free(ar) is called, at which point all pointers obtained\n from the arena `ar` become invalid simultaneously."] - pub fn PyArena_Malloc(arg1: *mut PyArena, size: usize) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " This routine isn't a proper arena allocation routine. It takes\n a PyObject* and records it so that it can be DECREFed when the\n arena is freed."] - pub fn PyArena_AddPyObject(arg1: *mut PyArena, arg2: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_VaBuildValue_SizeT( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack_SizeT( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -extern "C" { - pub fn PyArg_Parse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParse( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_VaParseTupleAndKeywords( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *const ::std::os::raw::c_char, - arg4: *mut *mut ::std::os::raw::c_char, - arg5: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_ValidateKeywordArguments(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyArg_UnpackTuple( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BuildValue(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _Py_BuildValue_SizeT(arg1: *const ::std::os::raw::c_char, ...) -> *mut PyObject; -} -extern "C" { - pub fn _PyArg_UnpackStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - name: *const ::std::os::raw::c_char, - min: Py_ssize_t, - max: Py_ssize_t, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKeywords( - funcname: *const ::std::os::raw::c_char, - kwargs: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoKwnames( - funcname: *const ::std::os::raw::c_char, - kwnames: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_NoPositional( - funcname: *const ::std::os::raw::c_char, - args: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_BadArgument( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - arg4: *mut PyObject, - ); -} -extern "C" { - pub fn _PyArg_CheckPositional( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: Py_ssize_t, - arg4: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_VaBuildValue( - arg1: *const ::std::os::raw::c_char, - arg2: *mut __va_list_tag, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_VaBuildStack( - small_stack: *mut *mut PyObject, - small_stack_len: Py_ssize_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - p_nargs: *mut Py_ssize_t, - ) -> *mut *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyArg_Parser { - pub format: *const ::std::os::raw::c_char, - pub keywords: *const *const ::std::os::raw::c_char, - pub fname: *const ::std::os::raw::c_char, - pub custom_msg: *const ::std::os::raw::c_char, - #[doc = " number of positional-only arguments"] - pub pos: ::std::os::raw::c_int, - #[doc = " minimal number of arguments"] - pub min: ::std::os::raw::c_int, - #[doc = " maximal number of positional arguments"] - pub max: ::std::os::raw::c_int, - #[doc = " tuple of keyword parameter names"] - pub kwtuple: *mut PyObject, - pub next: *mut _PyArg_Parser, -} -#[test] -fn bindgen_test_layout__PyArg_Parser() { - const UNINIT: ::std::mem::MaybeUninit<_PyArg_Parser> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyArg_Parser>(), - 64usize, - concat!("Size of: ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - ::std::mem::align_of::<_PyArg_Parser>(), - 8usize, - concat!("Alignment of ", stringify!(_PyArg_Parser)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keywords) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(keywords) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fname) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(fname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(custom_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kwtuple) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(kwtuple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(_PyArg_Parser), - "::", - stringify!(next) - ) - ); -} -impl Default for _PyArg_Parser { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn _PyArg_ParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStack( - args: *const *mut PyObject, - nargs: Py_ssize_t, - format: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_ParseStackAndKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwnames: *mut PyObject, - arg1: *mut _PyArg_Parser, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_VaParseTupleAndKeywordsFast( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut _PyArg_Parser, - arg4: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyArg_UnpackKeywords( - args: *const *mut PyObject, - nargs: Py_ssize_t, - kwargs: *mut PyObject, - kwnames: *mut PyObject, - parser: *mut _PyArg_Parser, - minpos: ::std::os::raw::c_int, - maxpos: ::std::os::raw::c_int, - minkw: ::std::os::raw::c_int, - buf: *mut *mut PyObject, - ) -> *const *mut PyObject; -} -extern "C" { - pub fn _PyArg_Fini(); -} -extern "C" { - pub fn PyModule_AddObject( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddIntConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_long, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddStringConstant( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - arg3: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.9"] - pub fn PyModule_AddType( - module: *mut PyObject, - type_: *mut PyTypeObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_SetDocString( - arg1: *mut PyObject, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_AddFunctions( - arg1: *mut PyObject, - arg2: *mut PyMethodDef, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_ExecDef(module: *mut PyObject, def: *mut PyModuleDef) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyModule_Create2(arg1: *mut PyModuleDef, apiver: ::std::os::raw::c_int) - -> *mut PyObject; -} -extern "C" { - pub fn _PyModule_CreateInitialized( - arg1: *mut PyModuleDef, - apiver: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " New in 3.5"] - pub fn PyModule_FromDefAndSpec2( - def: *mut PyModuleDef, - spec: *mut PyObject, - module_api_version: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub static mut _Py_PackageContext: *const ::std::os::raw::c_char; -} -#[doc = " Public interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _node { - _unused: [u8; 0], -} -extern "C" { - pub fn PyNode_Compile( - arg1: *mut _node, - arg2: *const ::std::os::raw::c_char, - ) -> *mut PyCodeObject; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyCompilerFlags { - #[doc = " bitmask of CO_xxx flags relevant to future"] - pub cf_flags: ::std::os::raw::c_int, - #[doc = " minor Python version (PyCF_ONLY_AST)"] - pub cf_feature_version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyCompilerFlags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyCompilerFlags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cf_feature_version) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyCompilerFlags), - "::", - stringify!(cf_feature_version) - ) - ); -} -#[doc = " Future feature support"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct PyFutureFeatures { - #[doc = " flags set by future statements"] - pub ff_features: ::std::os::raw::c_int, - #[doc = " line number of last future statement"] - pub ff_lineno: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_PyFutureFeatures() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(PyFutureFeatures)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_features) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_lineno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(PyFutureFeatures), - "::", - stringify!(ff_lineno) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _mod { - _unused: [u8; 0], -} -extern "C" { - pub fn PyAST_CompileEx( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyAST_CompileObject( - mod_: *mut _mod, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut PyCodeObject; -} -extern "C" { - pub fn PyFuture_FromAST( - mod_: *mut _mod, - filename: *const ::std::os::raw::c_char, - ) -> *mut PyFutureFeatures; -} -extern "C" { - pub fn PyFuture_FromASTObject( - mod_: *mut _mod, - filename: *mut PyObject, - ) -> *mut PyFutureFeatures; -} -extern "C" { - #[doc = " _Py_Mangle is defined in compile.c"] - pub fn _Py_Mangle(p: *mut PyObject, name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffect( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyCompile_OpcodeStackEffectWithJump( - opcode: ::std::os::raw::c_int, - oparg: ::std::os::raw::c_int, - jump: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _PyASTOptimizeState { - pub optimize: ::std::os::raw::c_int, - pub ff_features: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__PyASTOptimizeState() { - const UNINIT: ::std::mem::MaybeUninit<_PyASTOptimizeState> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_PyASTOptimizeState>(), - 8usize, - concat!("Size of: ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - ::std::mem::align_of::<_PyASTOptimizeState>(), - 4usize, - concat!("Alignment of ", stringify!(_PyASTOptimizeState)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).optimize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(optimize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ff_features) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_PyASTOptimizeState), - "::", - stringify!(ff_features) - ) - ); -} -extern "C" { - pub fn _PyAST_Optimize( - arg1: *mut _mod, - arena: *mut PyArena, - state: *mut _PyASTOptimizeState, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOneObject( - fp: *mut FILE, - filename: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoopFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyParser_ASTFromString( - s: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromStringObject( - s: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFile( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_ASTFromFileObject( - fp: *mut FILE, - filename: *mut PyObject, - enc: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ps1: *const ::std::os::raw::c_char, - ps2: *const ::std::os::raw::c_char, - flags: *mut PyCompilerFlags, - errcode: *mut ::std::os::raw::c_int, - arena: *mut PyArena, - ) -> *mut _mod; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseStringFlagsFilename( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyParser_SimpleParseFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: ::std::os::raw::c_int, - arg4: ::std::os::raw::c_int, - ) -> *mut _node; -} -extern "C" { - pub fn PyRun_StringFlags( - arg1: *const ::std::os::raw::c_char, - arg2: ::std::os::raw::c_int, - arg3: *mut PyObject, - arg4: *mut PyObject, - arg5: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileExFlags( - fp: *mut FILE, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - globals: *mut PyObject, - locals: *mut PyObject, - closeit: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringExFlags( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn Py_CompileStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - optimize: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct symtable { - _unused: [u8; 0], -} -extern "C" { - pub fn Py_SymtableString( - str_: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SourceAsString( - cmd: *mut PyObject, - funcname: *const ::std::os::raw::c_char, - what: *const ::std::os::raw::c_char, - cf: *mut PyCompilerFlags, - cmd_copy: *mut *mut PyObject, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_SymtableStringObject( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - ) -> *mut symtable; -} -extern "C" { - pub fn _Py_SymtableStringObjectFlags( - str_: *const ::std::os::raw::c_char, - filename: *mut PyObject, - start: ::std::os::raw::c_int, - flags: *mut PyCompilerFlags, - ) -> *mut symtable; -} -extern "C" { - pub fn PyErr_Print(); -} -extern "C" { - pub fn PyErr_PrintEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn PyErr_Display(arg1: *mut PyObject, arg2: *mut PyObject, arg3: *mut PyObject); -} -extern "C" { - #[doc = " A function flavor is also exported by libpython. It is required when\nlibpython is accessed directly rather than using header files which defines\nmacros below. On Windows, for example, PyAPI_FUNC() uses dllexport to\nexport functions in pythonXX.dll."] - pub fn PyRun_String( - str_: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_AnyFile( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileEx( - fp: *mut FILE, - name: *const ::std::os::raw::c_char, - closeit: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_AnyFileFlags( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - arg3: *mut PyCompilerFlags, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleString(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFile( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_SimpleFileEx( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - c: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveOne( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_InteractiveLoop( - f: *mut FILE, - p: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyRun_File( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileEx( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - c: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyRun_FileFlags( - fp: *mut FILE, - p: *const ::std::os::raw::c_char, - s: ::std::os::raw::c_int, - g: *mut PyObject, - l: *mut PyObject, - flags: *mut PyCompilerFlags, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_Readline( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub static mut PyOS_InputHook: - ::std::option::Option ::std::os::raw::c_int>; -} -extern "C" { - pub static mut PyOS_ReadlineFunctionPointer: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut FILE, - arg2: *mut FILE, - arg3: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char, - >; -} -extern "C" { - pub static mut _PyOS_ReadlineTState: *mut PyThreadState; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_Initialize(); -} -extern "C" { - pub fn Py_InitializeEx(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_Finalize(); -} -extern "C" { - pub fn Py_FinalizeEx() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_IsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Subinterpreter support"] - pub fn Py_NewInterpreter() -> *mut PyThreadState; -} -extern "C" { - pub fn Py_EndInterpreter(arg1: *mut PyThreadState); -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn Py_AtExit(func: ::std::option::Option) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_Exit(arg1: ::std::os::raw::c_int) -> !; -} -extern "C" { - #[doc = " Bootstrap __main__ (defined in Modules/main.c)"] - pub fn Py_Main(argc: ::std::os::raw::c_int, argv: *mut *mut wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_FrozenMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_BytesMain( - argc: ::std::os::raw::c_int, - argv: *mut *mut ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " In pathconfig.c"] - pub fn Py_SetProgramName(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetProgramName() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPythonHome(arg1: *const wchar_t); -} -extern "C" { - pub fn Py_GetPythonHome() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetProgramFullPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetExecPrefix() -> *mut wchar_t; -} -extern "C" { - pub fn Py_GetPath() -> *mut wchar_t; -} -extern "C" { - pub fn Py_SetPath(arg1: *const wchar_t); -} -extern "C" { - #[doc = " In their own files"] - pub fn IDP_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetVersion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetPlatform() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCopyright() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetCompiler() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn Py_GetBuildInfo() -> *const ::std::os::raw::c_char; -} -#[doc = " Signals"] -pub type PyOS_sighandler_t = - ::std::option::Option; -extern "C" { - pub fn PyOS_getsig(arg1: ::std::os::raw::c_int) -> PyOS_sighandler_t; -} -extern "C" { - pub fn PyOS_setsig(arg1: ::std::os::raw::c_int, arg2: PyOS_sighandler_t) -> PyOS_sighandler_t; -} -extern "C" { - #[doc = " Only used by applications that embed the interpreter and need to\n override the standard encoding determination mechanism"] - pub fn Py_SetStandardStreamEncoding( - encoding: *const ::std::os::raw::c_char, - errors: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " PEP 432 Multi-phase initialization API (Private while provisional!)"] - pub fn Py_PreInitialize(src_config: *const PyPreConfig) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromBytesArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut ::std::os::raw::c_char, - ) -> PyStatus; -} -extern "C" { - pub fn Py_PreInitializeFromArgs( - src_config: *const PyPreConfig, - argc: Py_ssize_t, - argv: *mut *mut wchar_t, - ) -> PyStatus; -} -extern "C" { - pub fn _Py_IsCoreInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Initialization and finalization"] - pub fn Py_InitializeFromConfig(config: *const PyConfig) -> PyStatus; -} -extern "C" { - pub fn _Py_InitializeMain() -> PyStatus; -} -extern "C" { - pub fn Py_RunMain() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_ExitStatusException(err: PyStatus) -> !; -} -extern "C" { - #[doc = " Py_PyAtExit is for the atexit module, Py_AtExit is for low-level\n exit functions."] - pub fn _Py_PyAtExit( - func: ::std::option::Option, - arg1: *mut PyObject, - ); -} -extern "C" { - #[doc = " Restore signals that the interpreter has called SIG_IGN on to SIG_DFL."] - pub fn _Py_RestoreSignals(); -} -extern "C" { - pub fn Py_FdIsInteractive( - arg1: *mut FILE, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetProgramFullPath(arg1: *const wchar_t); -} -extern "C" { - pub fn _Py_gitidentifier() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_gitversion() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_IsFinalizing() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Random"] - pub fn _PyOS_URandom( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyOS_URandomNonblock( - buffer: *mut ::std::os::raw::c_void, - size: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Legacy locale support"] - pub fn _Py_CoerceLegacyLocale(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_LegacyLocaleDetected(warn: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_SetLocaleFromEnv(category: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_NewInterpreter(isolated_subinterpreter: ::std::os::raw::c_int) - -> *mut PyThreadState; -} -extern "C" { - #[doc = " PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction\n and PyEval_CallMethod are deprecated. Since they are officially part of the\n stable ABI (PEP 384), they must be kept for backward compatibility.\n PyObject_Call(), PyObject_CallFunction() and PyObject_CallMethod() are\n recommended to call a callable object."] - pub fn PyEval_CallObjectWithKeywords( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetBuiltins() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetGlobals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetLocals() -> *mut PyObject; -} -extern "C" { - pub fn PyEval_GetFrame() -> *mut PyFrameObject; -} -extern "C" { - pub fn Py_AddPendingCall( - func: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_MakePendingCalls() -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Protection against deeply nested recursive calls\n\nIn Python 3.0, this protection has two levels:\n normal anti-recursion protection is triggered when the recursion level\nexceeds the current recursion limit. It raises a RecursionError, and sets\nthe \"overflowed\" flag in the thread state structure. This flag\ntemporarily *disables* the normal protection; this allows cleanup code\nto potentially outgrow the recursion limit while processing the\nRecursionError.\n \"last chance\" anti-recursion protection is triggered when the recursion\nlevel exceeds \"current recursion limit + 50\". By construction, this\nprotection can only be triggered when the \"overflowed\" flag is set. It\nmeans the cleanup code has itself gone into an infinite loop, or the\nRecursionError has been mistakingly ignored. When this protection is\ntriggered, the interpreter aborts with a Fatal Error.\n\nIn addition, the \"overflowed\" flag is automatically reset when the\nrecursion level drops below \"current recursion limit - 50\". This heuristic\nis meant to ensure that the normal anti-recursion protection doesn't get\ndisabled too long.\n\nPlease note: this scheme has its own limitations. See:\nhttp://mail.python.org/pipermail/python-dev/2008-August/082106.html\nfor some observations."] - pub fn Py_SetRecursionLimit(arg1: ::std::os::raw::c_int); -} -extern "C" { - pub fn Py_GetRecursionLimit() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_EnterRecursiveCall(where_: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_LeaveRecursiveCall(); -} -extern "C" { - pub fn PyEval_GetFuncName(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_GetFuncDesc(arg1: *mut PyObject) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyEval_EvalFrame(arg1: *mut PyFrameObject) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalFrameEx(f: *mut PyFrameObject, exc: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Interface for threads.\n\nA module that plans to do a blocking system call (or something else\nthat lasts a long time and doesn't touch Python data) can allow other\nthreads to run as follows:\n\n...preparations here...\nPy_BEGIN_ALLOW_THREADS\n...blocking system call here...\nPy_END_ALLOW_THREADS\n...interpret result here...\n\nThe Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS pair expands to a\n{}-surrounded block.\nTo leave the block in the middle (e.g., with return), you must insert\na line containing Py_BLOCK_THREADS before the return, e.g.\n\nif (...premature_exit...) {\nPy_BLOCK_THREADS\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\n\nAn alternative is:\n\nPy_BLOCK_THREADS\nif (...premature_exit...) {\nPyErr_SetFromErrno(PyExc_OSError);\nreturn NULL;\n}\nPy_UNBLOCK_THREADS\n\nFor convenience, that the value of 'errno' is restored across\nPy_END_ALLOW_THREADS and Py_BLOCK_THREADS.\n\nWARNING: NEVER NEST CALLS TO Py_BEGIN_ALLOW_THREADS AND\nPy_END_ALLOW_THREADS!!!\n\nNote that not yet all candidates have been converted to use this\nmechanism!"] - pub fn PyEval_SaveThread() -> *mut PyThreadState; -} -extern "C" { - pub fn PyEval_RestoreThread(arg1: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ThreadsInitialized() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_InitThreads(); -} -extern "C" { - #[doc = " PyEval_AcquireLock() and PyEval_ReleaseLock() are part of stable ABI.\n They will be removed from this header file in the future version.\n But they will be remained in ABI until Python 4.0."] - pub fn PyEval_AcquireLock(); -} -extern "C" { - pub fn PyEval_ReleaseLock(); -} -extern "C" { - pub fn PyEval_AcquireThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_ReleaseThread(tstate: *mut PyThreadState); -} -extern "C" { - pub fn PyEval_SetProfile(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetProfile( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyEval_SetTrace(arg1: Py_tracefunc, arg2: *mut PyObject); -} -extern "C" { - pub fn _PyEval_SetTrace( - tstate: *mut PyThreadState, - func: Py_tracefunc, - arg: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetCoroutineOriginTrackingDepth() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFirstiter(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFirstiter() -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetAsyncGenFinalizer(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_GetAsyncGenFinalizer() -> *mut PyObject; -} -extern "C" { - #[doc = " Helper to look up a builtin object"] - pub fn _PyEval_GetBuiltinId(arg1: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - #[doc = " Look at the current frame's (if any) code's co_flags, and turn on\nthe corresponding compiler flags in cf->cf_flags. Return 1 if any\nflag was set, else return 0."] - pub fn PyEval_MergeCompilerFlags(cf: *mut PyCompilerFlags) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_EvalFrameDefault( - tstate: *mut PyThreadState, - f: *mut PyFrameObject, - exc: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_SetSwitchInterval(microseconds: ::std::os::raw::c_ulong); -} -extern "C" { - pub fn _PyEval_GetSwitchInterval() -> ::std::os::raw::c_ulong; -} -extern "C" { - pub fn _PyEval_RequestCodeExtraIndex(arg1: freefunc) -> Py_ssize_t; -} -extern "C" { - pub fn _PyEval_SliceIndex(arg1: *mut PyObject, arg2: *mut Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyEval_SliceIndexNotNone( - arg1: *mut PyObject, - arg2: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_GetObject(arg1: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PySys_SetObject( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_SetArgv(arg1: ::std::os::raw::c_int, arg2: *mut *mut wchar_t); -} -extern "C" { - pub fn PySys_SetArgvEx( - arg1: ::std::os::raw::c_int, - arg2: *mut *mut wchar_t, - arg3: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn PySys_SetPath(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_WriteStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_WriteStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStdout(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_FormatStderr(format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn PySys_ResetWarnOptions(); -} -extern "C" { - pub fn PySys_AddWarnOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_AddWarnOptionUnicode(arg1: *mut PyObject); -} -extern "C" { - pub fn PySys_HasWarnOptions() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddXOption(arg1: *const wchar_t); -} -extern "C" { - pub fn PySys_GetXOptions() -> *mut PyObject; -} -extern "C" { - pub fn _PySys_GetObjectId(key: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PySys_SetObjectId( - key: *mut _Py_Identifier, - arg1: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySys_GetSizeOf(arg1: *mut PyObject) -> usize; -} -pub type Py_AuditHookFunction = ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: *mut PyObject, - arg3: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, ->; -extern "C" { - pub fn PySys_Audit( - event: *const ::std::os::raw::c_char, - argFormat: *const ::std::os::raw::c_char, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PySys_AddAuditHook( - arg1: Py_AuditHookFunction, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_FSPath(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyOS_InterruptOccurred() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_InitInterrupts(); -} -extern "C" { - pub fn PyOS_BeforeFork(); -} -extern "C" { - pub fn PyOS_AfterFork_Parent(); -} -extern "C" { - pub fn PyOS_AfterFork_Child(); -} -extern "C" { - #[doc = " Deprecated, please use PyOS_AfterFork_Child() instead"] - pub fn PyOS_AfterFork(); -} -extern "C" { - pub fn _PyOS_IsMainThread() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySignal_AfterFork(); -} -extern "C" { - pub fn PyImport_GetMagicNumber() -> ::std::os::raw::c_long; -} -extern "C" { - pub fn PyImport_GetMagicTag() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn PyImport_ExecCodeModule( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleEx( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleWithPathnames( - name: *const ::std::os::raw::c_char, - co: *mut PyObject, - pathname: *const ::std::os::raw::c_char, - cpathname: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ExecCodeModuleObject( - name: *mut PyObject, - co: *mut PyObject, - pathname: *mut PyObject, - cpathname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModuleDict() -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetModule(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModuleObject(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_AddModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModule(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleNoBlock(name: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevel( - name: *const ::std::os::raw::c_char, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportModuleLevelObject( - name: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - fromlist: *mut PyObject, - level: ::std::os::raw::c_int, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_GetImporter(path: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_Import(name: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ReloadModule(m: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn PyImport_ImportFrozenModuleObject(name: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_ImportFrozenModule( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyImport_AppendInittab( - name: *const ::std::os::raw::c_char, - initfunc: ::std::option::Option *mut PyObject>, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyInit__imp() -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_IsInitialized(arg1: *mut PyInterpreterState) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_GetModuleId(name: *mut _Py_Identifier) -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_SetModule(name: *mut PyObject, module: *mut PyObject) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_SetModuleString( - name: *const ::std::os::raw::c_char, - module: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_AcquireLock(); -} -extern "C" { - pub fn _PyImport_ReleaseLock() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FindExtensionObject(arg1: *mut PyObject, arg2: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - pub fn _PyImport_FixupBuiltin( - mod_: *mut PyObject, - name: *const ::std::os::raw::c_char, - modules: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyImport_FixupExtensionObject( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - arg4: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _inittab { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub initfunc: ::std::option::Option *mut PyObject>, -} -#[test] -fn bindgen_test_layout__inittab() { - const UNINIT: ::std::mem::MaybeUninit<_inittab> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_inittab>(), - 16usize, - concat!("Size of: ", stringify!(_inittab)) - ); - assert_eq!( - ::std::mem::align_of::<_inittab>(), - 8usize, - concat!("Alignment of ", stringify!(_inittab)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initfunc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_inittab), - "::", - stringify!(initfunc) - ) - ); -} -impl Default for _inittab { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub static mut PyImport_Inittab: *mut _inittab; -} -extern "C" { - pub fn PyImport_ExtendInittab(newtab: *mut _inittab) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _frozen { - #[doc = " ASCII encoded string"] - pub name: *const ::std::os::raw::c_char, - pub code: *const ::std::os::raw::c_uchar, - pub size: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout__frozen() { - const UNINIT: ::std::mem::MaybeUninit<_frozen> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_frozen>(), - 24usize, - concat!("Size of: ", stringify!(_frozen)) - ); - assert_eq!( - ::std::mem::align_of::<_frozen>(), - 8usize, - concat!("Alignment of ", stringify!(_frozen)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_frozen), - "::", - stringify!(size) - ) - ); -} -impl Default for _frozen { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Embedding apps may change this pointer to point to their favorite\ncollection of frozen modules:"] - pub static mut PyImport_FrozenModules: *const _frozen; -} -extern "C" { - #[doc = " Call a callable Python object without any arguments"] - pub fn PyObject_CallNoArgs(func: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with arguments given by the\ntuple 'args' and keywords arguments given by the dictionary 'kwargs'.\n\n'args' must not be NULL, use an empty tuple if no arguments are\nneeded. If no named arguments are needed, 'kwargs' can be NULL.\n\nThis is the equivalent of the Python expression:\ncallable(*args, **kwargs)."] - pub fn PyObject_Call( - callable: *mut PyObject, - args: *mut PyObject, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable', with arguments given by the\ntuple 'args'. If no arguments are needed, then 'args' can be NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(*args)."] - pub fn PyObject_CallObject(callable: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object, callable, with a variable number of C\narguments. The C arguments are described using a mkvalue-style format\nstring.\n\nThe format may be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunction( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are described by a mkvalue format string.\n\nThe format can be NULL, indicating that no arguments are provided.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\nobj.name(arg1, arg2, ...)."] - pub fn PyObject_CallMethod( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallFunction_SizeT( - callable: *mut PyObject, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethod_SizeT( - obj: *mut PyObject, - name: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call a callable Python object 'callable' with a variable number of C\narguments. The C arguments are provided as PyObject* values, terminated\nby a NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression:\ncallable(arg1, arg2, ...)."] - pub fn PyObject_CallFunctionObjArgs(callable: *mut PyObject, ...) -> *mut PyObject; -} -extern "C" { - #[doc = " Call the method named 'name' of object 'obj' with a variable number of\nC arguments. The C arguments are provided as PyObject* values, terminated\nby NULL.\n\nReturns the result of the call on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: obj.name(*args)."] - pub fn PyObject_CallMethodObjArgs( - obj: *mut PyObject, - name: *mut PyObject, - ... - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Get the type of an object.\n\nOn success, returns a type object corresponding to the object type of object\n'o'. On failure, returns NULL.\n\nThis is equivalent to the Python expression: type(o)"] - pub fn PyObject_Type(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the size of object 'o'. If the object 'o' provides both sequence and\nmapping protocols, the sequence size is returned.\n\nOn error, -1 is returned.\n\nThis is the equivalent to the Python expression: len(o)"] - pub fn PyObject_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyObject_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the object 'key'. Return NULL\non failure.\n\nThis is the equivalent of the Python expression: o[key]"] - pub fn PyObject_GetItem(o: *mut PyObject, key: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the object 'key' to the value 'v' into 'o'.\n\nRaise an exception and return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyObject_SetItem( - o: *mut PyObject, - key: *mut PyObject, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Remove the mapping for the string 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is equivalent to the Python statement: del o[key]."] - pub fn PyObject_DelItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the mapping for the object 'key' from the object 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[key]."] - pub fn PyObject_DelItem(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (character, single segment)\nbuffer interface and returns a pointer to a read-only memory location\nusable as character based input for subsequent processing.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsCharBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_char, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Checks whether an arbitrary object supports the (character, single segment)\nbuffer interface.\n\nReturns 1 on success, 0 on failure."] - pub fn PyObject_CheckReadBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Same as PyObject_AsCharBuffer() except that this API expects (readable,\nsingle segment) buffer interface and returns a pointer to a read-only memory\nlocation which can contain arbitrary data.\n\n0 is returned on success. buffer and buffer_len are only set in case no\nerror occurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsReadBuffer( - obj: *mut PyObject, - buffer: *mut *const ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object which must support the (writable, single segment)\nbuffer interface and returns a pointer to a writable memory location in\nbuffer of size 'buffer_len'.\n\nReturn 0 on success. buffer and buffer_len are only set in case no error\noccurs. Otherwise, -1 is returned and an exception set."] - pub fn PyObject_AsWriteBuffer( - obj: *mut PyObject, - buffer: *mut *mut ::std::os::raw::c_void, - buffer_len: *mut Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an arbitrary object and returns the result of calling\nobj.__format__(format_spec)."] - pub fn PyObject_Format(obj: *mut PyObject, format_spec: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Takes an object and returns an iterator for it.\nThis is typically a new iterator but if the argument is an iterator, this\nreturns itself."] - pub fn PyObject_GetIter(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyIter_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Takes an iterator object and calls its tp_iternext slot,\nreturning the next value.\n\nIf the iterator is exhausted, this returns NULL without setting an\nexception.\n\nNULL with an exception means an error occurred."] - pub fn PyIter_Next(arg1: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if the object 'o' provides numeric protocols, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyNumber_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the result of adding o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PyNumber_Add(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 - o2."] - pub fn PyNumber_Subtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 and o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 * o2."] - pub fn PyNumber_Multiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @ o2."] - pub fn PyNumber_MatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 // o2."] - pub fn PyNumber_FloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 / o2."] - pub fn PyNumber_TrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 % o2."] - pub fn PyNumber_Remainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function divmod.\n\nReturns NULL on failure.\n\nThis is the equivalent of the Python expression: divmod(o1, o2)."] - pub fn PyNumber_Divmod(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " See the built-in function pow. Returns NULL on failure.\n\nThis is the equivalent of the Python expression: pow(o1, o2, o3),\nwhere o3 is optional."] - pub fn PyNumber_Power(o1: *mut PyObject, o2: *mut PyObject, o3: *mut PyObject) - -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the negation of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: -o."] - pub fn PyNumber_Negative(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the positive of o on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: +o."] - pub fn PyNumber_Positive(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the absolute value of 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: abs(o)."] - pub fn PyNumber_Absolute(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise negation of 'o' on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: ~o."] - pub fn PyNumber_Invert(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 << o2."] - pub fn PyNumber_Lshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 >> o2."] - pub fn PyNumber_Rshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 & o2."] - pub fn PyNumber_And(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2 on success, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 ^ o2."] - pub fn PyNumber_Xor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or on o1 and o2 on success, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 | o2."] - pub fn PyNumber_Or(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns 1 if obj is an index integer (has the nb_index slot of the\ntp_as_number structure filled in), and 0 otherwise."] - pub fn PyIndex_Check(arg1: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a Python int, or NULL with an exception\nraised on failure."] - pub fn PyNumber_Index(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to Py_ssize_t by going through\nPyNumber_Index() first.\n\nIf an overflow error occurs while converting the int to Py_ssize_t, then the\nsecond argument 'exc' is the error-type to return. If it is NULL, then the\noverflow error is cleared and the value is clipped."] - pub fn PyNumber_AsSsize_t(o: *mut PyObject, exc: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Returns the object 'o' converted to an integer object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: int(o)."] - pub fn PyNumber_Long(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the object 'o' converted to a float object on success, or NULL\non failure.\n\nThis is the equivalent of the Python expression: float(o)."] - pub fn PyNumber_Float(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of adding o2 to o1, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PyNumber_InPlaceAdd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of subtracting o2 from o1, possibly in-place or\nNULL on failure.\n\nThis is the equivalent of the Python expression: o1 -= o2."] - pub fn PyNumber_InPlaceSubtract(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of multiplying o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 *= o2."] - pub fn PyNumber_InPlaceMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " This is the equivalent of the Python expression: o1 @= o2."] - pub fn PyNumber_InPlaceMatrixMultiply(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving an integral result, possibly\nin-place, or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceFloorDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of dividing o1 by o2 giving a float result, possibly\nin-place, or null on failure.\n\nThis is the equivalent of the Python expression: o1 /= o2."] - pub fn PyNumber_InPlaceTrueDivide(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the remainder of dividing o1 by o2, possibly in-place, or NULL on\nfailure.\n\nThis is the equivalent of the Python expression: o1 %= o2."] - pub fn PyNumber_InPlaceRemainder(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of raising o1 to the power of o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 **= o2,\nor o1 = pow(o1, o2, o3) if o3 is present."] - pub fn PyNumber_InPlacePower( - o1: *mut PyObject, - o2: *mut PyObject, - o3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of left shifting o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 <<= o2."] - pub fn PyNumber_InPlaceLshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of right shifting o1 by o2, possibly in-place or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 >>= o2."] - pub fn PyNumber_InPlaceRshift(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise and of o1 and o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 &= o2."] - pub fn PyNumber_InPlaceAnd(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the bitwise exclusive or of o1 by o2, possibly in-place, or NULL\non failure.\n\nThis is the equivalent of the Python expression: o1 ^= o2."] - pub fn PyNumber_InPlaceXor(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the result of bitwise or of o1 and o2, possibly in-place,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o1 |= o2."] - pub fn PyNumber_InPlaceOr(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the integer n converted to a string with a base, with a base\nmarker of 0b, 0o or 0x prefixed if applicable.\n\nIf n is not an int object, it is converted with PyNumber_Index first."] - pub fn PyNumber_ToBase(n: *mut PyObject, base: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides sequence protocol, and zero\notherwise.\n\nThis function always succeeds."] - pub fn PySequence_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the size of sequence object o, or -1 on failure."] - pub fn PySequence_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PySequence_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return the concatenation of o1 and o2 on success, and NULL on failure.\n\nThis is the equivalent of the Python expression: o1 + o2."] - pub fn PySequence_Concat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the result of repeating sequence object 'o' 'count' times,\nor NULL on failure.\n\nThis is the equivalent of the Python expression: o * count."] - pub fn PySequence_Repeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the ith element of o, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i]."] - pub fn PySequence_GetItem(o: *mut PyObject, i: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the slice of sequence object o between i1 and i2, or NULL on failure.\n\nThis is the equivalent of the Python expression: o[i1:i2]."] - pub fn PySequence_GetSlice(o: *mut PyObject, i1: Py_ssize_t, i2: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Assign object 'v' to the ith element of the sequence 'o'. Raise an exception\nand return -1 on failure; return 0 on success.\n\nThis is the equivalent of the Python statement o[i] = v."] - pub fn PySequence_SetItem( - o: *mut PyObject, - i: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the 'i'-th element of the sequence 'v'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i]."] - pub fn PySequence_DelItem(o: *mut PyObject, i: Py_ssize_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Assign the sequence object 'v' to the slice in sequence object 'o',\nfrom 'i1' to 'i2'. Returns -1 on failure.\n\nThis is the equivalent of the Python statement: o[i1:i2] = v."] - pub fn PySequence_SetSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - v: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Delete the slice in sequence object 'o' from 'i1' to 'i2'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: del o[i1:i2]."] - pub fn PySequence_DelSlice( - o: *mut PyObject, - i1: Py_ssize_t, - i2: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a tuple on success, and NULL on failure.\n\nThis is equivalent to the Python expression: tuple(o)."] - pub fn PySequence_Tuple(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Returns the sequence 'o' as a list on success, and NULL on failure.\nThis is equivalent to the Python expression: list(o)"] - pub fn PySequence_List(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the sequence 'o' as a list, unless it's already a tuple or list.\n\nUse PySequence_Fast_GET_ITEM to access the members of this list, and\nPySequence_Fast_GET_SIZE to get its length.\n\nReturns NULL on failure. If the object does not support iteration, raises a\nTypeError exception with 'm' as the message text."] - pub fn PySequence_Fast(o: *mut PyObject, m: *const ::std::os::raw::c_char) -> *mut PyObject; -} -extern "C" { - #[doc = " Return the number of occurrences on value on 'o', that is, return\nthe number of keys for which o[key] == value.\n\nOn failure, return -1. This is equivalent to the Python expression:\no.count(value)."] - pub fn PySequence_Count(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if 'ob' is in the sequence 'seq'; 0 if 'ob' is not in the sequence\n'seq'; -1 on error.\n\nUse __contains__ if possible, else _PySequence_IterSearch()."] - pub fn PySequence_Contains(seq: *mut PyObject, ob: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine if the sequence 'o' contains 'value'. If an item in 'o' is equal\nto 'value', return 1, otherwise return 0. On error, return -1.\n\nThis is equivalent to the Python expression: value in o."] - pub fn PySequence_In(o: *mut PyObject, value: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return the first index for which o[i] == value.\nOn error, return -1.\n\nThis is equivalent to the Python expression: o.index(value)."] - pub fn PySequence_Index(o: *mut PyObject, value: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " Append sequence 'o2' to sequence 'o1', in-place when possible. Return the\nresulting object, which could be 'o1', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 += o2."] - pub fn PySequence_InPlaceConcat(o1: *mut PyObject, o2: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Repeat sequence 'o' by 'count', in-place when possible. Return the resulting\nobject, which could be 'o', or NULL on failure.\n\nThis is the equivalent of the Python expression: o1 *= count."] - pub fn PySequence_InPlaceRepeat(o: *mut PyObject, count: Py_ssize_t) -> *mut PyObject; -} -extern "C" { - #[doc = " Return 1 if the object provides mapping protocol, and 0 otherwise.\n\nThis function always succeeds."] - pub fn PyMapping_Check(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Returns the number of keys in mapping object 'o' on success, and -1 on\nfailure. This is equivalent to the Python expression: len(o)."] - pub fn PyMapping_Size(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - pub fn PyMapping_Length(o: *mut PyObject) -> Py_ssize_t; -} -extern "C" { - #[doc = " On success, return 1 if the mapping object 'o' has the key 'key',\nand 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKeyString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Return 1 if the mapping object has the key 'key', and 0 otherwise.\n\nThis is equivalent to the Python expression: key in o.\n\nThis function always succeeds."] - pub fn PyMapping_HasKey(o: *mut PyObject, key: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " On success, return a list or tuple of the keys in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Keys(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the values in mapping object 'o'.\nOn failure, return NULL."] - pub fn PyMapping_Values(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " On success, return a list or tuple of the items in mapping object 'o',\nwhere each item is a tuple containing a key-value pair. On failure, return\nNULL."] - pub fn PyMapping_Items(o: *mut PyObject) -> *mut PyObject; -} -extern "C" { - #[doc = " Return element of 'o' corresponding to the string 'key' or NULL on failure.\n\nThis is the equivalent of the Python expression: o[key]."] - pub fn PyMapping_GetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Map the string 'key' to the value 'v' in the mapping 'o'.\nReturns -1 on failure.\n\nThis is the equivalent of the Python statement: o[key]=v."] - pub fn PyMapping_SetItemString( - o: *mut PyObject, - key: *const ::std::os::raw::c_char, - value: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " isinstance(object, typeorclass)"] - pub fn PyObject_IsInstance( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " issubclass(object, typeorclass)"] - pub fn PyObject_IsSubclass( - object: *mut PyObject, - typeorclass: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Convert keyword arguments from the FASTCALL (stack: C array, kwnames: tuple)\nformat to a Python dictionary (\"kwargs\" dict).\n\nThe type of kwnames keys is not checked. The final function getting\narguments is responsible to check if all keys are strings, for example using\nPyArg_ParseTupleAndKeywords() or PyArg_ValidateKeywordArguments().\n\nDuplicate keys are merged using the last value. If duplicate keys must raise\nan exception, the caller is responsible to implement an explicit keys on\nkwnames."] - pub fn _PyStack_AsDict(values: *const *mut PyObject, kwnames: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub fn _Py_CheckFunctionResult( - tstate: *mut PyThreadState, - callable: *mut PyObject, - result: *mut PyObject, - where_: *const ::std::os::raw::c_char, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call callable using tp_call. Arguments are like PyObject_Vectorcall()\nor PyObject_FastCallDict() (both forms are supported),\nexcept that nargs is plainly the number of arguments without flags."] - pub fn _PyObject_MakeTpCall( - tstate: *mut PyThreadState, - callable: *mut PyObject, - args: *const *mut PyObject, - nargs: Py_ssize_t, - keywords: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Same as PyObject_Vectorcall except that keyword arguments are passed as\ndict, which may be NULL if there are no keyword arguments."] - pub fn PyObject_VectorcallDict( - callable: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwargs: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Call \"callable\" (which must support vectorcall) with positional arguments\n\"tuple\" and keyword arguments \"dict\". \"dict\" may also be NULL"] - pub fn PyVectorcall_Call( - callable: *mut PyObject, - tuple: *mut PyObject, - dict: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyObject_VectorcallMethod( - name: *mut PyObject, - args: *const *mut PyObject, - nargsf: usize, - kwnames: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - #[doc = " Like PyObject_CallMethod(), but expect a _Py_Identifier*\nas the method name."] - pub fn _PyObject_CallMethodId( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodId_SizeT( - obj: *mut PyObject, - name: *mut _Py_Identifier, - format: *const ::std::os::raw::c_char, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_CallMethodIdObjArgs( - obj: *mut PyObject, - name: *mut _Py_Identifier, - ... - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyObject_HasLen(o: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Guess the size of object 'o' using len(o) or o.__length_hint__().\nIf neither of those return a non-negative value, then return the default\nvalue. If one of the calls fails, this function returns -1."] - pub fn PyObject_LengthHint(o: *mut PyObject, arg1: Py_ssize_t) -> Py_ssize_t; -} -extern "C" { - #[doc = " Return 1 if the getbuffer function is available, otherwise return 0."] - pub fn PyObject_CheckBuffer(obj: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " This is a C-API version of the getbuffer function call. It checks\nto make sure object has the required function pointer and issues the\ncall.\n\nReturns -1 and raises an error on failure and returns 0 on success."] - pub fn PyObject_GetBuffer( - obj: *mut PyObject, - view: *mut Py_buffer, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the memory area pointed to by the indices for the buffer given.\nNote that view->ndim is the assumed size of indices."] - pub fn PyBuffer_GetPointer( - view: *mut Py_buffer, - indices: *mut Py_ssize_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Return the implied itemsize of the data-format area from a\nstruct-style description."] - pub fn PyBuffer_SizeFromFormat(format: *const ::std::os::raw::c_char) -> Py_ssize_t; -} -extern "C" { - #[doc = " Implementation in memoryobject.c"] - pub fn PyBuffer_ToContiguous( - buf: *mut ::std::os::raw::c_void, - view: *mut Py_buffer, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyBuffer_FromContiguous( - view: *mut Py_buffer, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - order: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy len bytes of data from the contiguous chunk of memory\npointed to by buf into the buffer exported by obj. Return\n0 on success and return -1 and raise a PyBuffer_Error on\nerror (i.e. the object does not have a buffer interface or\nit is not working).\n\nIf fort is 'F', then if the object is multi-dimensional,\nthen the data will be copied into the array in\nFortran-style (first dimension varies the fastest). If\nfort is 'C', then the data will be copied into the array\nin C-style (last dimension varies the fastest). If fort\nis 'A', then it does not matter and the copy will be made\nin whatever way is more efficient."] - pub fn PyObject_CopyData(dest: *mut PyObject, src: *mut PyObject) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Copy the data from the src buffer to the buffer of destination."] - pub fn PyBuffer_IsContiguous( - view: *const Py_buffer, - fort: ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = "Fill the strides array with byte-strides of a contiguous\n(Fortran-style if fort is 'F' or C-style otherwise)\narray of the given shape with the given number of bytes\nper element."] - pub fn PyBuffer_FillContiguousStrides( - ndims: ::std::os::raw::c_int, - shape: *mut Py_ssize_t, - strides: *mut Py_ssize_t, - itemsize: ::std::os::raw::c_int, - fort: ::std::os::raw::c_char, - ); -} -extern "C" { - #[doc = " Fills in a buffer-info structure correctly for an exporter\nthat can only share a contiguous chunk of memory of\n\"unsigned bytes\" of the given length.\n\nReturns 0 on success and -1 (with raising an error) on error."] - pub fn PyBuffer_FillInfo( - view: *mut Py_buffer, - o: *mut PyObject, - buf: *mut ::std::os::raw::c_void, - len: Py_ssize_t, - readonly: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Releases a Py_buffer obtained from getbuffer ParseTuple's \"s*\"."] - pub fn PyBuffer_Release(view: *mut Py_buffer); -} -extern "C" { - #[doc = " Iterate over seq.\n\nResult depends on the operation:\n\nPY_ITERSEARCH_COUNT: return # of times obj appears in seq; -1 if\nerror.\nPY_ITERSEARCH_INDEX: return 0-based index of first occurrence of\nobj in seq; set ValueError and return -1 if none found;\nalso return -1 on error.\nPY_ITERSEARCH_CONTAINS: return 1 if obj in seq, else 0; -1 on\nerror."] - pub fn _PySequence_IterSearch( - seq: *mut PyObject, - obj: *mut PyObject, - operation: ::std::os::raw::c_int, - ) -> Py_ssize_t; -} -extern "C" { - #[doc = " === Mapping protocol ================================================="] - pub fn _PyObject_RealIsInstance( - inst: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PyObject_RealIsSubclass( - derived: *mut PyObject, - cls: *mut PyObject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _PySequence_BytesToCharpArray( - self_: *mut PyObject, - ) -> *const *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_FreeCharPArray(array: *const *mut ::std::os::raw::c_char); -} -extern "C" { - #[doc = " For internal use by buffer API functions"] - pub fn _Py_add_one_to_index_F( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - pub fn _Py_add_one_to_index_C( - nd: ::std::os::raw::c_int, - index: *mut Py_ssize_t, - shape: *const Py_ssize_t, - ); -} -extern "C" { - #[doc = " Convert Python int to Py_ssize_t. Do nothing if the argument is None."] - pub fn _Py_convert_optional_to_ssize_t( - arg1: *mut PyObject, - arg2: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub static mut PyFilter_Type: PyTypeObject; -} -extern "C" { - pub static mut PyMap_Type: PyTypeObject; -} -extern "C" { - pub static mut PyZip_Type: PyTypeObject; -} -extern "C" { - pub fn PyEval_EvalCode( - arg1: *mut PyObject, - arg2: *mut PyObject, - arg3: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn PyEval_EvalCodeEx( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argc: ::std::os::raw::c_int, - kwds: *const *mut PyObject, - kwdc: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defc: ::std::os::raw::c_int, - kwdefs: *mut PyObject, - closure: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_EvalCodeWithName( - co: *mut PyObject, - globals: *mut PyObject, - locals: *mut PyObject, - args: *const *mut PyObject, - argcount: Py_ssize_t, - kwnames: *const *mut PyObject, - kwargs: *const *mut PyObject, - kwcount: Py_ssize_t, - kwstep: ::std::os::raw::c_int, - defs: *const *mut PyObject, - defcount: Py_ssize_t, - kwdefs: *mut PyObject, - closure: *mut PyObject, - name: *mut PyObject, - qualname: *mut PyObject, - ) -> *mut PyObject; -} -extern "C" { - pub fn _PyEval_CallTracing(func: *mut PyObject, args: *mut PyObject) -> *mut PyObject; -} -extern "C" { - pub static _Py_ctype_table: [::std::os::raw::c_uint; 256usize]; -} -extern "C" { - pub static _Py_ctype_tolower: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub static _Py_ctype_toupper: [::std::os::raw::c_uchar; 256usize]; -} -extern "C" { - pub fn PyOS_string_to_double( - str_: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - overflow_exception: *mut PyObject, - ) -> f64; -} -extern "C" { - #[doc = " The caller is responsible for calling PyMem_Free to free the buffer\nthat's is returned."] - pub fn PyOS_double_to_string( - val: f64, - format_code: ::std::os::raw::c_char, - precision: ::std::os::raw::c_int, - flags: ::std::os::raw::c_int, - type_: *mut ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_string_to_number_with_underscores( - str_: *const ::std::os::raw::c_char, - len: Py_ssize_t, - what: *const ::std::os::raw::c_char, - obj: *mut PyObject, - arg: *mut ::std::os::raw::c_void, - innerfunc: ::std::option::Option< - unsafe extern "C" fn( - arg1: *const ::std::os::raw::c_char, - arg2: Py_ssize_t, - arg3: *mut ::std::os::raw::c_void, - ) -> *mut PyObject, - >, - ) -> *mut PyObject; -} -extern "C" { - pub fn _Py_parse_inf_or_nan( - p: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -extern "C" { - pub fn PyOS_mystrnicmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - arg3: Py_ssize_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn PyOS_mystricmp( - arg1: *const ::std::os::raw::c_char, - arg2: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn Py_DecodeLocale(arg: *const ::std::os::raw::c_char, size: *mut usize) -> *mut wchar_t; -} -extern "C" { - pub fn Py_EncodeLocale( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn _Py_EncodeLocaleRaw( - text: *const wchar_t, - error_pos: *mut usize, - ) -> *mut ::std::os::raw::c_char; -} -pub const _Py_error_handler__Py_ERROR_UNKNOWN: _Py_error_handler = 0; -pub const _Py_error_handler__Py_ERROR_STRICT: _Py_error_handler = 1; -pub const _Py_error_handler__Py_ERROR_SURROGATEESCAPE: _Py_error_handler = 2; -pub const _Py_error_handler__Py_ERROR_REPLACE: _Py_error_handler = 3; -pub const _Py_error_handler__Py_ERROR_IGNORE: _Py_error_handler = 4; -pub const _Py_error_handler__Py_ERROR_BACKSLASHREPLACE: _Py_error_handler = 5; -pub const _Py_error_handler__Py_ERROR_SURROGATEPASS: _Py_error_handler = 6; -pub const _Py_error_handler__Py_ERROR_XMLCHARREFREPLACE: _Py_error_handler = 7; -pub const _Py_error_handler__Py_ERROR_OTHER: _Py_error_handler = 8; -pub type _Py_error_handler = ::std::os::raw::c_uint; -extern "C" { - pub fn _Py_GetErrorHandler(errors: *const ::std::os::raw::c_char) -> _Py_error_handler; -} -extern "C" { - pub fn _Py_DecodeLocaleEx( - arg: *const ::std::os::raw::c_char, - wstr: *mut *mut wchar_t, - wlen: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_EncodeLocaleEx( - text: *const wchar_t, - str_: *mut *mut ::std::os::raw::c_char, - error_pos: *mut usize, - reason: *mut *const ::std::os::raw::c_char, - current_locale: ::std::os::raw::c_int, - errors: _Py_error_handler, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_device_encoding(arg1: ::std::os::raw::c_int) -> *mut PyObject; -} -extern "C" { - pub fn _Py_fstat(fd: ::std::os::raw::c_int, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_fstat_noraise(fd: ::std::os::raw::c_int, status: *mut stat) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_stat(path: *mut PyObject, status: *mut stat) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_open_noraise( - pathname: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wfopen(path: *const wchar_t, mode: *const wchar_t) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen( - pathname: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn _Py_fopen_obj(path: *mut PyObject, mode: *const ::std::os::raw::c_char) -> *mut FILE; -} -extern "C" { - pub fn _Py_read( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_write_noraise( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - count: usize, - ) -> Py_ssize_t; -} -extern "C" { - pub fn _Py_wreadlink( - path: *const wchar_t, - buf: *mut wchar_t, - buflen: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wrealpath( - path: *const wchar_t, - resolved_path: *mut wchar_t, - resolved_path_len: usize, - ) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_isabs(path: *const wchar_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_abspath(path: *const wchar_t, abspath_p: *mut *mut wchar_t) - -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_wgetcwd(buf: *mut wchar_t, buflen: usize) -> *mut wchar_t; -} -extern "C" { - pub fn _Py_get_inheritable(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_inheritable_async_safe( - fd: ::std::os::raw::c_int, - inheritable: ::std::os::raw::c_int, - atomic_flag_works: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_dup(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_get_blocking(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn _Py_set_blocking( - fd: ::std::os::raw::c_int, - blocking: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Track an allocated memory block in the tracemalloc module.\nReturn 0 on success, return -1 on error (failed to allocate memory to store\nthe trace).\n\nReturn -2 if tracemalloc is disabled.\n\nIf memory block is already tracked, update the existing trace."] - pub fn PyTraceMalloc_Track( - domain: ::std::os::raw::c_uint, - ptr: usize, - size: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Untrack an allocated memory block in the tracemalloc module.\nDo nothing if the block was not tracked.\n\nReturn -2 if tracemalloc is disabled, otherwise return 0."] - pub fn PyTraceMalloc_Untrack( - domain: ::std::os::raw::c_uint, - ptr: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get the traceback where a memory block was allocated.\n\nReturn a tuple of (filename: str, lineno: int) tuples.\n\nReturn None if the tracemalloc module is disabled or if the memory block\nis not tracked by tracemalloc.\n\nRaise an exception and return NULL on error."] - pub fn _PyTraceMalloc_GetTraceback(domain: ::std::os::raw::c_uint, ptr: usize) - -> *mut PyObject; -} -pub type socket_t = ::std::os::raw::c_int; -pub type int8 = ::std::os::raw::c_schar; -pub type uint8 = ::std::os::raw::c_uchar; -pub type int16 = ::std::os::raw::c_short; -pub type uint16 = ::std::os::raw::c_ushort; -pub type int32 = ::std::os::raw::c_int; -pub type uint32 = ::std::os::raw::c_uint; -pub type uint64 = ::std::os::raw::c_ulonglong; -pub type int64 = ::std::os::raw::c_longlong; -extern "C" { - #[doc = " If init_local is defined, always declare it exported.\nFIXME: This doesn't really belong here - but where? It must be in a file\nthat is included everywhere init_local is defined."] - pub fn init_local(); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tuple_int_string_t { - pub integer: ::std::os::raw::c_int, - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_tuple_int_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tuple_int_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tuple_int_string_t), - "::", - stringify!(string) - ) - ); -} -impl Default for tuple_int_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " obsolete type; please use either buffer_t or bytes_t instead"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct byte_string_t { - pub len: usize, - pub str_: *mut uint8, -} -#[test] -fn bindgen_test_layout_byte_string_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(byte_string_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(byte_string_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).str_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(byte_string_t), - "::", - stringify!(str_) - ) - ); -} -impl Default for byte_string_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct buffer_t { - pub data: *mut uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_buffer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(buffer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(buffer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(buffer_t), - "::", - stringify!(len) - ) - ); -} -impl Default for buffer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bytes_t { - pub data: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_bytes_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bytes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bytes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bytes_t), - "::", - stringify!(len) - ) - ); -} -impl Default for bytes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atomic_counter_t { - pub c: uint32, -} -#[test] -fn bindgen_test_layout_atomic_counter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(atomic_counter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(atomic_counter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atomic_counter_t), - "::", - stringify!(c) - ) - ); -} -#[doc = " \n"] -pub type logical_address_t = uint64; -#[doc = " \n"] -pub type physical_address_t = uint64; -#[doc = " \n"] -pub type generic_address_t = uint64; -#[doc = " \n"] -pub type linear_address_t = uint64; -#[doc = " "] -pub type lang_void = ::std::os::raw::c_void; -#[doc = " "] -pub type conf_object_t = conf_object; -pub const data_or_instr_t_Sim_DI_Instruction: data_or_instr_t = 0; -pub const data_or_instr_t_Sim_DI_Data: data_or_instr_t = 1; -#[doc = " \n"] -pub type data_or_instr_t = ::std::os::raw::c_uint; -pub const access_t_Sim_Access_Read: access_t = 1; -pub const access_t_Sim_Access_Write: access_t = 2; -pub const access_t_Sim_Access_Execute: access_t = 4; -#[doc = " All combinations are allowed (logical or)\n\naccess_t\n\n"] -pub type access_t = ::std::os::raw::c_uint; -pub const processor_mode_t_Sim_CPU_Mode_User: processor_mode_t = 0; -pub const processor_mode_t_Sim_CPU_Mode_Supervisor: processor_mode_t = 1; -pub const processor_mode_t_Sim_CPU_Mode_Hypervisor: processor_mode_t = 2; -#[doc = " \nprocessor_mode_t\n\nprocessor_mode_t\n\n\nThe processor_mode_t data type is used to specify if a\nCPU is running in user mode or in a privileged mode (often called\nsupervisor mode). For processor architectures with several\nprivilege levels, the non-user levels are all identified as\nSim_CPU_Mode_Supervisor.\n\n\n\n\n"] -pub type processor_mode_t = ::std::os::raw::c_uint; -pub const cpu_endian_t_Sim_Endian_Little: cpu_endian_t = 0; -pub const cpu_endian_t_Sim_Endian_Big: cpu_endian_t = 1; -pub type cpu_endian_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct physical_block_t { - pub valid: ::std::os::raw::c_int, - pub address: physical_address_t, - pub block_start: physical_address_t, - pub block_end: physical_address_t, -} -#[test] -fn bindgen_test_layout_physical_block_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(physical_block_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(physical_block_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(physical_block_t), - "::", - stringify!(block_end) - ) - ); -} -pub const breakpoint_kind_t_Sim_Break_Physical: breakpoint_kind_t = 0; -pub const breakpoint_kind_t_Sim_Break_Virtual: breakpoint_kind_t = 1; -#[doc = " x86 only"] -pub const breakpoint_kind_t_Sim_Break_Linear: breakpoint_kind_t = 2; -#[doc = " \nbreakpoint_kind_t\n\n"] -pub type breakpoint_kind_t = ::std::os::raw::c_uint; -#[doc = " breakpoint_id_t"] -pub type breakpoint_id_t = ::std::os::raw::c_int; -pub type breakpoint_handle_t = usize; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_info_t { - pub handle: breakpoint_handle_t, - pub read_write_execute: access_t, - pub start: generic_address_t, - pub end: generic_address_t, -} -#[test] -fn bindgen_test_layout_breakpoint_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_write_execute) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(read_write_execute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_info_t), - "::", - stringify!(end) - ) - ); -} -impl Default for breakpoint_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_set_t { - pub num_breakpoints: ::std::os::raw::c_int, - pub breakpoints: *mut breakpoint_info_t, -} -#[test] -fn bindgen_test_layout_breakpoint_set_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_set_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(num_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_set_t), - "::", - stringify!(breakpoints) - ) - ); -} -impl Default for breakpoint_set_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const addr_space_t_Sim_Addr_Space_Conf: addr_space_t = 0; -pub const addr_space_t_Sim_Addr_Space_IO: addr_space_t = 1; -pub const addr_space_t_Sim_Addr_Space_Memory: addr_space_t = 2; -#[doc = " addr_space_t"] -pub type addr_space_t = ::std::os::raw::c_uint; -pub const read_or_write_t_Sim_RW_Read: read_or_write_t = 0; -pub const read_or_write_t_Sim_RW_Write: read_or_write_t = 1; -#[doc = " \nread_or_write_t\nread_or_write_t\n\nread_or_write_t\n\n\nWhether a memory access is a read (from memory) or a write\n(to memory).\n\n\n\n\n"] -pub type read_or_write_t = ::std::os::raw::c_uint; -pub const endianness_t_Sim_Endian_Target: endianness_t = 0; -pub const endianness_t_Sim_Endian_Host_From_BE: endianness_t = 1; -pub const endianness_t_Sim_Endian_Host_From_LE: endianness_t = 2; -#[doc = " \nendianness_t\nendianness_t\n\nendianness_t\n\n\nSpecifies the endianness to use for certain memory operations. When\nSim_Endian_Target is used, the data from memory is\ncopied without any endian conversion.\nSim_Endian_Host_From_BE and\nSim_Endian_Host_From_LE copies data between a\nbig-endian, or little-endian, memory and a host buffer.\n\n\n\n\n"] -pub type endianness_t = ::std::os::raw::c_uint; -pub const swap_mode_Sim_Swap_None: swap_mode = 0; -pub const swap_mode_Sim_Swap_Bus: swap_mode = 1; -pub const swap_mode_Sim_Swap_Bus_Trans: swap_mode = 2; -pub const swap_mode_Sim_Swap_Trans: swap_mode = 3; -#[doc = " "] -pub type swap_mode = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::swap_mode as swap_mode_t; -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_info { - pub base: physical_address_t, - pub start: physical_address_t, - pub length: physical_address_t, - pub function: ::std::os::raw::c_int, - pub priority: int16, - pub align_size: ::std::os::raw::c_int, - pub reverse_endian: swap_mode_t, -} -#[test] -fn bindgen_test_layout_map_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(map_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).priority) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(priority) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).align_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(align_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_endian) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(map_info), - "::", - stringify!(reverse_endian) - ) - ); -} -impl Default for map_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_info_t\nswap_mode_t\nmap_info_t\n\nmap_info_t, swap_mode_t\n\nmap_type_t\n\n\n\n\n\nThe map_info_t structure members have the following meaning:\n
    \n
  • \nbase: The base address of the device mapping in the memory space.\n
  • \n
  • \nstart: The address inside the device memory space where the mapping\nstarts.
  • \n
  • length: The length of the mapped memory, in bytes.
  • \n
  • function: Used to map the same object several times\nwith different functionality. Corresponds to the function argument used\nwhen mapping devices into a memory space.
  • \n
  • If the map target does not support large accesses, then\nalign_size can be set to the maximum allowed size. Accesses\nspanning align boundaries will be split into several smaller\ntransactions. The align size must be a power of two, or zero (which\nmeans \"use the default value\": 8 for devices and 8192 for memory).
  • \n
  • Mappings with an align size of 2, 4, or 8 may set the\nreverse_endian field to a non zero value. This can be used to\nmodel bridges that perform byte swapping on a specific bus width.
  • \n
\n\nIf both base and length are 0 the map will become a\ndefault_target.\n\n
\n
\n
\n\n"] -pub type map_info_t = map_info; -pub const map_type_t_Sim_Map_Ram: map_type_t = 0; -pub const map_type_t_Sim_Map_Rom: map_type_t = 1; -pub const map_type_t_Sim_Map_IO: map_type_t = 2; -pub const map_type_t_Sim_Map_Port: map_type_t = 3; -#[doc = " pseudo - do not use"] -pub const map_type_t_Sim_Map_Translate: map_type_t = 256; -pub const map_type_t_Sim_Map_Translate_To_Space: map_type_t = 257; -pub const map_type_t_Sim_Map_Translate_To_Ram: map_type_t = 258; -pub const map_type_t_Sim_Map_Translate_To_Rom: map_type_t = 259; -#[doc = " "] -pub type map_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct page { - _unused: [u8; 0], -} -#[doc = " page_t"] -pub type page_t = page; -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_list { - pub map_type: map_type_t, - pub object: *mut conf_object_t, - pub port: *const ::std::os::raw::c_char, - pub interface_ptr: *const ::std::os::raw::c_void, - pub target_interface: *const ::std::os::raw::c_void, - pub breakpoint_interface: *const ::std::os::raw::c_void, - pub breakpoint_query_interface: *const ::std::os::raw::c_void, - pub bridge_interface: *const ::std::os::raw::c_void, - pub target_object: *mut conf_object_t, - pub target_port: *const ::std::os::raw::c_char, - pub bridge: *mut conf_object_t, - pub map_info: map_info_t, - #[doc = " not constant, use with caution"] - pub map_size: physical_address_t, - #[doc = " internal flag - should always be 0 !"] - pub deleted: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_map_list() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(map_list)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_list)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interface_ptr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(interface_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_interface) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_interface) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_query_interface) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(breakpoint_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge_interface) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target_port) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(target_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bridge) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_info) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_size) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(map_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(map_list), - "::", - stringify!(deleted) - ) - ); -} -impl Default for map_list { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nmap_list_t\nmap_type_t\nmap_list_t\n\nmap_list_t, map_type_t\n\nmap_type_tmap_info_t\n\n\n\n\n\n\nThis data structure is used to pass information about the set of\nmappings a particular address in an address space contains.\n\n\n\n"] -pub type map_list_t = map_list; -#[doc = " Type provided for backwards compatibility."] -pub type pseudo_exceptions_t = ::std::os::raw::c_int; -pub const exception_type_t_Sim_PE_Cancelled: exception_type_t = 1022; -pub const exception_type_t_Sim_PE_Async_Required: exception_type_t = 1023; -pub const exception_type_t_Sim_PE_Deferred: exception_type_t = 1024; -pub const exception_type_t_Sim_PE_No_Exception: exception_type_t = 1025; -pub const exception_type_t_Sim_PE_Silent_Break: exception_type_t = 1026; -pub const exception_type_t_Sim_PE_Stop_Request: exception_type_t = 1027; -pub const exception_type_t_Sim_PE_Inquiry_Outside_Memory: exception_type_t = 1028; -pub const exception_type_t_Sim_PE_Inquiry_Unhandled: exception_type_t = 1029; -pub const exception_type_t_Sim_PE_Execute_Outside_Memory: exception_type_t = 1030; -pub const exception_type_t_Sim_PE_IO_Not_Taken: exception_type_t = 1031; -pub const exception_type_t_Sim_PE_IO_Error: exception_type_t = 1032; -pub const exception_type_t_Sim_PE_Stall_Cpu: exception_type_t = 1033; -pub const exception_type_t_Sim_PE_Instruction_Finished: exception_type_t = 1034; -pub const exception_type_t_Sim_PE_Default_Semantics: exception_type_t = 1035; -pub const exception_type_t_Sim_PE_Ignore_Semantics: exception_type_t = 1036; -pub const exception_type_t_Sim_PE_Last: exception_type_t = 1037; -pub type exception_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_describe_pseudo_exception(ex: pseudo_exceptions_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_describe_pseudo_exception(ex: exception_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_translation_changed(obj: *mut conf_object_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct granted_mem { - _unused: [u8; 0], -} -#[doc = " Opaque type"] -pub type granted_mem_t = granted_mem; -#[doc = " "] -pub type direct_memory_handle_t = *mut granted_mem_t; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_t { - pub data: *mut uint8, - pub permission: access_t, - pub inhibit: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_t), - "::", - stringify!(inhibit) - ) - ); -} -impl Default for direct_memory_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type direct_memory_ack_id_t = uint64; -#[doc = " \ndirect_memory_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_t { - pub target: *mut conf_object_t, - pub offs: uint64, - #[doc = " conflicting breakpoints"] - pub breakpoints: access_t, - #[doc = " conflicting tracers"] - pub tracers: access_t, - #[doc = " handle valid for access"] - pub access: access_t, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(offs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracers) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(tracers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_t), - "::", - stringify!(access) - ) - ); -} -impl Default for direct_memory_lookup_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ndirect_memory_tags_t\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_t { - pub data: *mut uint8, - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_t), - "::", - stringify!(len) - ) - ); -} -impl Default for direct_memory_tags_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_version() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_base() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_version_major() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_vmxmon_version() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_copyright() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_register_copyright(str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_license(); -} -extern "C" { - pub fn SIM_license_file(format: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_deprecate( - depr_build_id: ::std::os::raw::c_int, - warn_msg: *const ::std::os::raw::c_char, - ref_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn OLD_copyright(); -} -#[doc = " "] -pub type api_function_t = ::std::option::Option; -extern "C" { - pub fn SIM_get_api_function(function: *const ::std::os::raw::c_char) -> api_function_t; -} -#[doc = " Please do not access the members of this struct directly;\nuse the accessor functions defined in this file.\nInvariants:\n- .s[.len] == '\\0'\n- If .size == 0, then .len == 0 and .s points to a static null byte\n- If .size > 0, then 0 <= .len < .size\nand .s points to an allocation of .size bytes."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct strbuf_t { - #[doc = " string, always 0-terminated"] - pub s: *mut ::std::os::raw::c_char, - #[doc = " size of allocated buffer"] - pub size: ::std::os::raw::c_uint, - #[doc = " current length"] - pub len: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_strbuf_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(strbuf_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(strbuf_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(strbuf_t), - "::", - stringify!(len) - ) - ); -} -impl Default for strbuf_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn sb_new(s: *const ::std::os::raw::c_char) -> strbuf_t; -} -extern "C" { - pub fn sb_newf(format: *const ::std::os::raw::c_char, ...) -> strbuf_t; -} -extern "C" { - pub fn sb_free(sb: *mut strbuf_t); -} -extern "C" { - pub fn sb_detach(sb: *mut strbuf_t) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn sb_realloc(sb: *mut strbuf_t, minlen: ::std::os::raw::c_uint); -} -extern "C" { - pub fn sb_write(sb: *const strbuf_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn sb_readline(sb: *mut strbuf_t, f: *mut FILE) -> bool; -} -extern "C" { - pub fn sb_vaddfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_addfmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_vfmt( - sb: *mut strbuf_t, - format: *const ::std::os::raw::c_char, - va: *mut __va_list_tag, - ); -} -extern "C" { - pub fn sb_fmt(sb: *mut strbuf_t, format: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn sb_addesc(sb: *mut strbuf_t, c: ::std::os::raw::c_char, delim: ::std::os::raw::c_char); -} -extern "C" { - pub fn assert_error( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn null_arg_error( - func: *const ::std::os::raw::c_char, - arg: *const ::std::os::raw::c_char, - ) -> !; -} -extern "C" { - pub fn fatal_error(fmt: *const ::std::os::raw::c_char, ...) -> !; -} -extern "C" { - pub fn mm_free(ptr: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn mm_malloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_malloc_low( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_zalloc( - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_realloc( - ptr: *mut ::std::os::raw::c_void, - size: usize, - typesize: usize, - type_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn mm_strdup( - str_: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtmem(); -} -#[doc = " \nattr_value_t\nattr_value_t\n\nattr_value_t\n\nThe attr_value_t is the type used for all values in the\nconfiguration system. It is a tagged union.\n\nThe following table shows the different types of values, the type of their\npayload in C, and the corresponding Python types:\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Kind C payload Python type
Invalid - raises exception
Stringconst char * str or unicode
Integer int64 or uint64 int or long
Boolean bool bool
Floatingdouble float
Objectconf_object_t * simics.conf_object_t
Listarray of attr_value_t list
Dictarray of pairs of attr_value_t dict
Dataarray of bytes tuple of small integers
Nil - None
\n
\n\nThe members inside attr_value_t should not be accessed\ndirectly. Instead, use the corresponding functions for each type:\n\n\n\n\n\n\n\n\n\n\n
Constructor SIM_make_attr_TYPE
DestructorSIM_attr_free
Type predicate SIM_attr_is_TYPE
AccessSIM_attr_TYPE
\n\nValues of type List and Dict can be modified using\nSIM_attr_TYPE_set_item and\nSIM_attr_TYPE_resize.\n\nNone of these functions are available or needed in Python. The\nattr_value_t values are translated to the ordinary Python\nvalues as shown in the table above.\n\nSome values may have data in separate heap allocations. These are normally\nmanaged by the respective constructor and destructor methods, but careless\ncopying of values may introduce aliasing errors. Use\nSIM_attr_copy to duplicate values. Again, this is of no concern\nin Python.\n\n
\n\nSIM_make_attr_int64, SIM_attr_is_integer,\nSIM_attr_integer, SIM_attr_free,\nSIM_attr_list_resize, SIM_attr_list_set_item,\nSIM_attr_dict_resize, SIM_attr_dict_set_item,\nSIM_attr_copy\n\n
\n
"] -pub type attr_value_t = attr_value; -pub const attr_kind_t_Sim_Val_Invalid: attr_kind_t = 0; -pub const attr_kind_t_Sim_Val_String: attr_kind_t = 1; -pub const attr_kind_t_Sim_Val_Integer: attr_kind_t = 2; -pub const attr_kind_t_Sim_Val_Floating: attr_kind_t = 3; -pub const attr_kind_t_Sim_Val_List: attr_kind_t = 4; -pub const attr_kind_t_Sim_Val_Data: attr_kind_t = 5; -pub const attr_kind_t_Sim_Val_Nil: attr_kind_t = 6; -pub const attr_kind_t_Sim_Val_Object: attr_kind_t = 7; -pub const attr_kind_t_Sim_Val_Dict: attr_kind_t = 8; -pub const attr_kind_t_Sim_Val_Boolean: attr_kind_t = 9; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Py_Object: attr_kind_t = 10; -#[doc = " Internal use only"] -pub const attr_kind_t_Sim_Val_Unresolved_Object: attr_kind_t = 11; -pub type attr_kind_t = ::std::os::raw::c_uint; -pub type attr_dict_pair_t = attr_dict_pair; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_value { - pub private_kind: attr_kind_t, - pub private_size: ::std::os::raw::c_uint, - pub private_u: attr_value__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union attr_value__bindgen_ty_1 { - #[doc = " Sim_Val_String"] - pub string: *mut ::std::os::raw::c_char, - #[doc = " Sim_Val_Integer"] - pub integer: int64, - #[doc = " Sim_Val_Boolean"] - pub boolean: bool, - #[doc = " Sim_Val_Floating"] - pub floating: f64, - #[doc = " [size]"] - pub list: *mut attr_value, - #[doc = " [size]"] - pub dict: *mut attr_dict_pair, - #[doc = " [size]"] - pub data: *mut uint8, - #[doc = " Sim_Val_Object"] - pub object: *mut conf_object, - #[doc = " A Python object, currently only pre_conf_object"] - pub py_object: *mut _object, - #[doc = " Sim_Val_Unresolved_Object (internal use only)"] - pub uobject: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_attr_value__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).integer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(integer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).floating) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(floating) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dict) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(dict) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(py_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uobject) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value__bindgen_ty_1), - "::", - stringify!(uobject) - ) - ); -} -impl Default for attr_value__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_attr_value() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attr_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_value)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_kind) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_kind) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_size) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).private_u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attr_value), - "::", - stringify!(private_u) - ) - ); -} -impl Default for attr_value { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct attr_dict_pair { - pub key: attr_value, - pub value: attr_value, -} -#[test] -fn bindgen_test_layout_attr_dict_pair() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(attr_dict_pair)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attr_dict_pair)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(attr_dict_pair), - "::", - stringify!(value) - ) - ); -} -impl Default for attr_dict_pair { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " attr_value_t accessors and constructors"] - pub fn VT_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ) -> !; -} -extern "C" { - pub fn VT_report_bad_attr_type( - function: *const ::std::os::raw::c_char, - wanted: attr_kind_t, - actual: attr_value_t, - ); -} -extern "C" { - pub fn SIM_make_attr_list_vararg( - length: ::std::os::raw::c_uint, - va: *mut __va_list_tag, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_list(length: ::std::os::raw::c_uint, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_list(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_string(str_: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_make_attr_data(size: usize, data: *const ::std::os::raw::c_void) -> attr_value_t; -} -extern "C" { - pub fn SIM_alloc_attr_dict(length: ::std::os::raw::c_uint) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_list_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - elem: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_list_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_dict_set_item( - attr: *mut attr_value_t, - index: ::std::os::raw::c_uint, - key: attr_value_t, - value: attr_value_t, - ); -} -extern "C" { - pub fn SIM_attr_dict_resize(attr: *mut attr_value_t, newsize: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_attr_copy(val: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_scanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) - -> bool; -} -extern "C" { - pub fn SIM_ascanf(list: *mut attr_value_t, fmt: *const ::std::os::raw::c_char, ...) -> bool; -} -extern "C" { - pub fn VT_make_attr(fmt: *const ::std::os::raw::c_char, ...) -> attr_value_t; -} -extern "C" { - pub fn SIM_attr_free(value: *mut attr_value_t); -} -extern "C" { - pub fn SIM_free_attribute(value: attr_value_t); -} -extern "C" { - pub fn VT_attr_values_equal(a1: attr_value_t, a2: attr_value_t) -> bool; -} -pub const Sim_Trn_Instr: _bindgen_ty_16 = 1; -pub const Sim_Trn_Write: _bindgen_ty_16 = 2; -#[doc = " Not a memory transaction. Signifies that\nthis is not an exchange of data between CPU\nand memory."] -pub const Sim_Trn_Control: _bindgen_ty_16 = 4; -#[doc = " no defined semantics really, may go away"] -pub const Sim_Trn_Prefetch: _bindgen_ty_16 = 8; -#[doc = " Bits in memory transaction types"] -pub type _bindgen_ty_16 = ::std::os::raw::c_uint; -pub const mem_op_type_t_Sim_Trans_Load: mem_op_type_t = 0; -pub const mem_op_type_t_Sim_Trans_Store: mem_op_type_t = 2; -pub const mem_op_type_t_Sim_Trans_Instr_Fetch: mem_op_type_t = 1; -pub const mem_op_type_t_Sim_Trans_Prefetch: mem_op_type_t = 12; -pub const mem_op_type_t_Sim_Trans_Cache: mem_op_type_t = 4; -#[doc = " \nmem_op_type_t\nmem_op_type_t\n\nmem_op_type_t\n\n\n\n\n\n\nThis enum is used to identify the type of a memory operation. The\nfunction SIM_get_mem_op_type() returns the type of a\ngeneric_transaction_t, and SIM_set_mem_op_type()\nis used to set it.\n\n\nSIM_get_mem_op_type, SIM_set_mem_op_type,\nSIM_get_mem_op_type_name\ngeneric_transaction_t,\n\n\n\n\n"] -pub type mem_op_type_t = ::std::os::raw::c_uint; -#[doc = " catch uninitialized"] -pub const ini_type_t_Sim_Initiator_Illegal: ini_type_t = 0; -pub const ini_type_t_Sim_Initiator_CPU: ini_type_t = 4096; -pub const ini_type_t_Sim_Initiator_CPU_V9: ini_type_t = 4352; -pub const ini_type_t_Sim_Initiator_CPU_X86: ini_type_t = 4608; -pub const ini_type_t_Sim_Initiator_CPU_PPC: ini_type_t = 4864; -pub const ini_type_t_Sim_Initiator_CPU_Alpha: ini_type_t = 5120; -pub const ini_type_t_Sim_Initiator_CPU_MIPS: ini_type_t = 5632; -pub const ini_type_t_Sim_Initiator_CPU_ARM: ini_type_t = 5888; -pub const ini_type_t_Sim_Initiator_CPU_V8: ini_type_t = 6144; -pub const ini_type_t_Sim_Initiator_CPU_H8: ini_type_t = 6400; -pub const ini_type_t_Sim_Initiator_CPU_SH: ini_type_t = 6656; -pub const ini_type_t_Sim_Initiator_Device: ini_type_t = 8192; -pub const ini_type_t_Sim_Initiator_PCI_Device: ini_type_t = 8208; -#[doc = " The transaction is a cache\ntransaction as defined by\ng-cache"] -pub const ini_type_t_Sim_Initiator_Cache: ini_type_t = 12288; -#[doc = " initiator == NULL"] -pub const ini_type_t_Sim_Initiator_Other: ini_type_t = 16384; -#[doc = " 0x5000 - 0x5fff are for user-\nwritten objects that need to\ntag mem-ops."] -pub const ini_type_t_Sim_Initiator_User_Defined: ini_type_t = 20480; -#[doc = " "] -pub type ini_type_t = ::std::os::raw::c_uint; -#[doc = " want memhier or timing model\nto see future accesses"] -pub const block_flag_t_Sim_Block_Memhier: block_flag_t = 1; -#[doc = " want future MMU visibility"] -pub const block_flag_t_Sim_Block_MMU: block_flag_t = 2; -#[doc = " want future MMU visibility\nfor accesses that skip the\nIOSTC lookup"] -pub const block_flag_t_Sim_Block_MMU_IOSTC: block_flag_t = 4; -#[doc = " need breakpoint check"] -pub const block_flag_t_Sim_Block_Breakpoint: block_flag_t = 8; -#[doc = " is not memory"] -pub const block_flag_t_Sim_Block_Notmem: block_flag_t = 16; -#[doc = " memory is byteswapped"] -pub const block_flag_t_Sim_Block_Endian: block_flag_t = 32; -#[doc = " DSTC is disabled for this\naccess"] -pub const block_flag_t_Sim_Block_DSTC_Disabled: block_flag_t = 64; -#[doc = " \nblock_flag_t\nblock_flag_t\n\nblock_flag_t\n\n\n\n\nThis enum are flags for blocking various internal caches (internal).\n\n\n\n\n"] -pub type block_flag_t = ::std::os::raw::c_uint; -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct generic_transaction { - pub logical_address: logical_address_t, - pub physical_address: physical_address_t, - #[doc = " size in bytes"] - pub size: ::std::os::raw::c_uint, - #[doc = " opaque"] - pub type_: mem_op_type_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - #[doc = " what we wish to block\nfrom caching"] - pub block_flags: ::std::os::raw::c_uint, - #[doc = " cpu, device, or other"] - pub ini_type: ini_type_t, - pub ini_ptr: *mut conf_object_t, - #[doc = " set if memhier throws\nexception, otherwise\nSim_PE_No_Exception"] - pub exception: exception_type_t, - #[doc = " user pointer that Simics never\ntouches"] - pub user_ptr: *mut ::std::os::raw::c_void, - #[doc = " data pointer for the\ninitiator"] - pub real_address: *mut uint8, - #[doc = " internal, # of memory space\ntransitions"] - pub space_count: ::std::os::raw::c_int, - pub transaction: *mut transaction, - #[doc = " no longer used"] - pub reserved: *mut page_t, - #[doc = " no longer used"] - pub reserved2: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_generic_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(generic_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(generic_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_flags) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(block_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_type) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ini_ptr) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(ini_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_ptr) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(user_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).real_address) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(real_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_count) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(space_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(transaction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(generic_transaction), - "::", - stringify!(reserved2) - ) - ); -} -impl Default for generic_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl generic_transaction { - #[inline] - pub fn atomic(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } - } - #[inline] - pub fn set_atomic(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn inquiry(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } - } - #[inline] - pub fn set_inquiry(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn non_coherent(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } - } - #[inline] - pub fn set_non_coherent(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn ignore(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } - } - #[inline] - pub fn set_ignore(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn may_stall(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } - } - #[inline] - pub fn set_may_stall(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 1u8, val as u64) - } - } - #[inline] - pub fn reissue(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } - } - #[inline] - pub fn set_reissue(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 1u8, val as u64) - } - } - #[inline] - pub fn block_STC(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } - } - #[inline] - pub fn set_block_STC(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 1u8, val as u64) - } - } - #[inline] - pub fn use_page_cache(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) } - } - #[inline] - pub fn set_use_page_cache(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(7usize, 1u8, val as u64) - } - } - #[inline] - pub fn inverse_endian(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) } - } - #[inline] - pub fn set_inverse_endian(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn page_cross(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u32) } - } - #[inline] - pub fn set_page_cross(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 2u8, val as u64) - } - } - #[inline] - pub fn mem_hier_on_fetch(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) } - } - #[inline] - pub fn set_mem_hier_on_fetch(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - atomic: ::std::os::raw::c_uint, - inquiry: ::std::os::raw::c_uint, - non_coherent: ::std::os::raw::c_uint, - ignore: ::std::os::raw::c_uint, - may_stall: ::std::os::raw::c_uint, - reissue: ::std::os::raw::c_uint, - block_STC: ::std::os::raw::c_uint, - use_page_cache: ::std::os::raw::c_uint, - inverse_endian: ::std::os::raw::c_uint, - page_cross: ::std::os::raw::c_uint, - mem_hier_on_fetch: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let atomic: u32 = unsafe { ::std::mem::transmute(atomic) }; - atomic as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let inquiry: u32 = unsafe { ::std::mem::transmute(inquiry) }; - inquiry as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let non_coherent: u32 = unsafe { ::std::mem::transmute(non_coherent) }; - non_coherent as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let ignore: u32 = unsafe { ::std::mem::transmute(ignore) }; - ignore as u64 - }); - __bindgen_bitfield_unit.set(4usize, 1u8, { - let may_stall: u32 = unsafe { ::std::mem::transmute(may_stall) }; - may_stall as u64 - }); - __bindgen_bitfield_unit.set(5usize, 1u8, { - let reissue: u32 = unsafe { ::std::mem::transmute(reissue) }; - reissue as u64 - }); - __bindgen_bitfield_unit.set(6usize, 1u8, { - let block_STC: u32 = unsafe { ::std::mem::transmute(block_STC) }; - block_STC as u64 - }); - __bindgen_bitfield_unit.set(7usize, 1u8, { - let use_page_cache: u32 = unsafe { ::std::mem::transmute(use_page_cache) }; - use_page_cache as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let inverse_endian: u32 = unsafe { ::std::mem::transmute(inverse_endian) }; - inverse_endian as u64 - }); - __bindgen_bitfield_unit.set(9usize, 2u8, { - let page_cross: u32 = unsafe { ::std::mem::transmute(page_cross) }; - page_cross as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let mem_hier_on_fetch: u32 = unsafe { ::std::mem::transmute(mem_hier_on_fetch) }; - mem_hier_on_fetch as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \ngeneric_transaction_t\ngeneric_transaction_t\n\n\ngeneric_transaction_t\n\n A generic_transaction_t\nrepresents a memory transaction. It should only be accessed via the accessor\nfunctions documented in Device API Functions, Core, Memory\nTransactions.\n\n\n"] -pub type generic_transaction_t = generic_transaction; -extern "C" { - pub fn SIM_c_get_mem_op_value_buf(mop: *const generic_transaction_t, dst: *mut uint8); -} -extern "C" { - pub fn SIM_c_set_mem_op_value_buf(mop: *mut generic_transaction_t, src: *const uint8); -} -extern "C" { - pub fn SIM_get_mem_op_value_buf(mop: *const generic_transaction_t) -> attr_value_t; -} -extern "C" { - pub fn SIM_set_mem_op_value_buf(mop: *mut generic_transaction_t, value: attr_value_t); -} -extern "C" { - pub fn SIM_get_mem_op_type_name(type_: mem_op_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_mem_op_value_le(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_be(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_mem_op_value_cpu(mop: *const generic_transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_set_mem_op_value_le(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_be(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_value_cpu(mop: *mut generic_transaction_t, value: uint64); -} -extern "C" { - pub fn SIM_set_mem_op_ignore(mop: *mut generic_transaction_t, ignore: bool); -} -extern "C" { - pub fn SIM_get_mem_op_ignore(mop: *const generic_transaction_t) -> bool; -} -extern "C" { - pub fn SIM_make_mem_op_write( - addr: physical_address_t, - data: bytes_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -extern "C" { - pub fn SIM_make_mem_op_read( - addr: physical_address_t, - data: buffer_t, - inquiry: bool, - initiator: *mut conf_object_t, - ) -> generic_transaction_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct map_target { - _unused: [u8; 0], -} -#[doc = " "] -pub type map_target_t = map_target; -extern "C" { - pub fn SIM_new_map_target( - obj: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - chained_target: *const map_target_t, - ) -> *mut map_target_t; -} -extern "C" { - pub fn SIM_free_map_target(mt: *mut map_target_t); -} -extern "C" { - pub fn SIM_map_target_object(mt: *const map_target_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_map_target_port(mt: *const map_target_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_map_target_target(mt: *const map_target_t) -> *const map_target_t; -} -extern "C" { - pub fn VT_map_target_access( - mt: *const map_target_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t; -} -extern "C" { - pub fn VT_map_target_dm_lookup( - mt: *const map_target_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: uint64, - access: access_t, - ) -> direct_memory_lookup_t; -} -extern "C" { - pub fn SIM_map_target_flush( - mt: *const map_target_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool; -} -pub const translation_flags_t_Sim_Translation_Dynamic: translation_flags_t = 1; -pub const translation_flags_t_Sim_Translation_Ambiguous: translation_flags_t = 2; -#[doc = " \ntranslation_flags_t\ntranslation_t\ntranslation_t\n\n\ntranslation_t\n\n\n\n\n\n\n\n\nThe translation_t type is used for the implementation\nof the translator and transaction_translator\ninterfaces. It describes the range\nfor which the translation is valid, its target as well as\ntranslation properties.\n\nThe range for which the translation is valid is specified by the\nfields base and size. As a special case,\nif size and base are both 0, then the\ntranslation is valid for the entire address space. To allow optimizations\n(e.g., caching of translations) translators should return as wide ranges\nas possible.\n\nThe target field specifies the object and interface\nport which is mapped into the address range in the form of a map target.\nMap targets can be created using the function\nSIM_new_map_target. Please note that the ownership over\nthe returned map target is not transferred to the interface caller.\nThis means that to avoid memory leaks the reference to the map\ntarget must be kept by the implementing object, and\nSIM_free_map_target function should be later used to\ndeallocate the map target. Possible map targets include IO\nbanks, RAM, ROM, memory spaces, port spaces, bridges, and translators.\nThe base address in the source address space is\nmapped to the target address returned in the start field.\n\nA null value returned in the target field signifies that\nthe translation cannot be done. This can happen if there is nothing mapped\nin the range defined by base and size\n(transactions directed to this region will be terminated\nwith the pseudo exception Sim_PE_IO_Not_Taken) or\nif a translation valid for all requested accesses cannot be performed.\nIn the latter case, the requestor is expected to repeat\nthe interface call with just a single bit set in the access mask,\ne.g. Sim_Access_Read.\n\nIf the returned translation is not static but instead depends on e.g.\na device register, then the translator can set the flags field\nto Sim_Translation_Dynamic. This flag indicates that\nthe translation must not be cached. If this flag is not used, then it\nis the responsibility of the translator to call\neither SIM_map_target_flush (preferably)\nor SIM_translation_changed function when a previously performed\ntranslation is no longer valid.\n\nThe Sim_Translation_Ambiguous flag should not generally\nbe used by models. It is used by Simics objects of\nthe memory-space class to indicate an error in\nthe memory mapping when several destinations are specified for the address.\n\n\n\n\nSIM_map_target_flush,\nSIM_translation_changed\n\n\n"] -pub type translation_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_t { - #[doc = " target of translation"] - pub target: *const map_target_t, - #[doc = " base address of translated range"] - pub base: physical_address_t, - #[doc = " start address in mapped object"] - pub start: physical_address_t, - #[doc = " size of translated range"] - pub size: physical_address_t, - pub flags: translation_flags_t, -} -#[test] -fn bindgen_test_layout_translation_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(translation_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).target) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(target) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(translation_t), - "::", - stringify!(flags) - ) - ); -} -impl Default for translation_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const atom_id_t_Sim_Atom_Id_illegal: atom_id_t = 0; -pub const atom_id_t_Sim_Atom_Id_list_end: atom_id_t = 1; -pub const atom_id_t_Sim_Atom_Id_flags: atom_id_t = 2; -pub const atom_id_t_Sim_Atom_Id_data: atom_id_t = 3; -pub const atom_id_t_Sim_Atom_Id_size: atom_id_t = 4; -pub const atom_id_t_Sim_Atom_Id_fill_value: atom_id_t = 5; -pub const atom_id_t_Sim_Atom_Id_initiator: atom_id_t = 6; -pub const atom_id_t_Sim_Atom_Id_user_data: atom_id_t = 7; -pub const atom_id_t_Sim_Atom_Id_completion: atom_id_t = 8; -pub const atom_id_t_Sim_Atom_Id_owner: atom_id_t = 9; -pub const atom_id_t_Sim_Atom_Id_memop: atom_id_t = 10; -pub const atom_id_t_Sim_Atom_Id_bytemap: atom_id_t = 11; -pub const atom_id_t_Sim_Atom_Id_pcie_type: atom_id_t = 256; -pub const atom_id_t_Sim_Atom_Id_pcie_requester_id: atom_id_t = 257; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_type: atom_id_t = 258; -pub const atom_id_t_Sim_Atom_Id_pcie_msg_route: atom_id_t = 259; -pub const atom_id_t_Sim_Atom_Id_pcie_pasid: atom_id_t = 260; -pub const atom_id_t_Sim_Atom_Id_pcie_at: atom_id_t = 261; -pub const atom_id_t_Sim_Atom_Id_pcie_error_ret: atom_id_t = 262; -pub const atom_id_t_Sim_Atom_Id_pcie_byte_count_ret: atom_id_t = 263; -pub const atom_id_t_Sim_Atom_Id_pcie_device_id: atom_id_t = 264; -pub const atom_id_t_Sim_Atom_Id_arm_privileged: atom_id_t = 512; -pub const atom_id_t_Sim_Atom_Id_arm_nonsecure: atom_id_t = 513; -pub const atom_id_t_Sim_Atom_Id_arm_memory_attributes: atom_id_t = 514; -pub const atom_id_t_Sim_Atom_Id_arm_smmu_attributes: atom_id_t = 515; -pub const atom_id_t_Sim_Atom_Id_arm_nsaid: atom_id_t = 516; -pub const atom_id_t_Sim_Atom_Id_riscv_wg_wid: atom_id_t = 768; -#[doc = " \natom_id_t\natom_id_t\n\n\natom_id_t\n\n Each atom type is associated\nwith a unique id, the atom_id_t. Most atoms types are\npre-defined by Simics Core and have static ids, but there are\nalso dynamically assigned ids which are used for custom atom types.\n\nAtom ids are internal to Simics Core and should never be used explicitly\nby a Simics models. Instead, there are API functions like\ne.g. ATOM_size or ATOM_initiator which should be\nused instead.\n\n"] -pub type atom_id_t = ::std::os::raw::c_uint; -#[doc = " \natom_t\natom_t\n\n\natom_t\n\n The atom_t type is a container\ntype for tagged data associated with a transaction. The kind of data\nstored in the atom is determined by the id field, and a pointer\nto the data or the data itself is stored in the ptr field.\n\nAtoms should always be initialized using provided constructor functions\nlike ATOM_flags or ATOM_size. Usage of\nthe constructors ensures that the data payload is of the correct type\nand that the id is set to the correct value.\n\nAtom lists must be terminated with the special ATOM_LIST_END\nmarker.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct atom_t { - pub id: atom_id_t, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_atom_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(atom_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(atom_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(atom_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for atom_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction { - pub atoms: *mut atom_t, - pub prev: *mut transaction, - pub _cache: *mut transaction_cache, - pub _status: uint64, -} -#[test] -fn bindgen_test_layout_transaction() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atoms) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(atoms) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(prev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._cache) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_cache) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._status) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(transaction), - "::", - stringify!(_status) - ) - ); -} -impl Default for transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \ntransaction_t\ntransaction_t\n\n\ntransaction_t\n\n A transaction_t\nrepresents a memory transaction. The properties of the\ntransaction is stored in the form of an atom list, where each\natom describes a particular aspect of the transaction, like the\nsize of the transaction.\n\nThe field atoms points to the atoms list,\nwhich must be terminated with the constant ATOM_LIST_END.\n\nThe prev field points to an optional parent transaction.\nIf a particular atom is not found in the atoms list, then the\nparent's list of atoms is consulted instead. The prev\npointer is also used when a chained transaction is monitored\nwith SIM_monitor_chained_transaction.\n\nBesides the fields above, the transaction contains some internal\nfields that should be initialized to 0. The internal fields should\nnot be referenced explicitly since they are likely to change\nin future Simics releases.\n\nFor details, please refer to \"Transactions\" chapter in\nthe Model Builder's User Guide.\n\n\n"] -pub type transaction_t = transaction; -#[doc = " \ntransaction_completion_t\ntransaction_completion_t\n\ntransaction_completion_t\n\n\n\nCallback invoked when an asynchronous transaction is completed.\nThe callback is stored in a completion atom belonging\nto the transaction t. Similarly, obj is an\nobject stored in either an owner atom or an\ninitiator atom. The former takes precedence if both are\npresent.\n\nCompletion callbacks are only invoked for transactions monitored\nwith either SIM_monitor_transaction or\nSIM_monitor_chained_transaction, or for transactions\ndeferred with SIM_defer_owned_transaction.\n\nThe completion status for the operation is given in the\nex argument, and is usually equal to\nSim_PE_No_Exception.\n\nThe return value of the callback is the completion status\nfor the transaction t. This status is used to complete\nthe parent transaction if the transaction is being monitored with\nSIM_monitor_chained_transaction. The return value is\nalso returned by SIM_monitor_transaction or\nSIM_monitor_chained_transaction when a transaction is\ncompleted synchronously.\n\nIf the callback returns Sim_PE_Deferred, then\nthe transaction t is left uncompleted. It must then\nbe completed later on by an explicit call to\nSIM_complete_transaction.\n\n\n\n"] -pub type transaction_completion_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t, ->; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct transaction_bytemap { - _unused: [u8; 0], -} -pub type transaction_bytemap_t = transaction_bytemap; -pub const transaction_flags_t_Sim_Transaction_Fetch: transaction_flags_t = 1; -pub const transaction_flags_t_Sim_Transaction_Write: transaction_flags_t = 2; -pub const transaction_flags_t_Sim_Transaction_Control: transaction_flags_t = 4; -pub const transaction_flags_t_Sim_Transaction_Inquiry: transaction_flags_t = 256; -pub const transaction_flags_t_Sim_Transaction_Incoherent: transaction_flags_t = 512; -pub const transaction_flags_t_Sim_Transaction_Atomic: transaction_flags_t = 1024; -#[doc = " \ntransaction_flags_t\ntransaction_flags_t\n\n\ntransaction_flags_t\n\n\n\nThe transaction_flags_t type is bitmask\nused to specify the transaction type. It is a combination\nof the following bits:\n\nSim_Transaction_Fetch indicates that the transaction is\nan instruction fetch.\n\nSim_Transaction_Write is set if the transaction is a write.\n\nSim_Transaction_Control is set if the transaction does not\nactually transfer any data. One example of such transactions is\ncache control operations.\n\nThe Sim_Transaction_Inquiry bit signifies that side\neffects normally triggered by the transaction should be suppressed.\nExamples of side effects include triggering breakpoints and\nclearing \"read-to-clear\" device registers.\n\nWhen neither Sim_Transaction_Fetch\nnor Sim_Transaction_Write is set the transaction is\na read transaction.\n\n\n"] -pub type transaction_flags_t = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Accessors."] - pub fn SIM_transaction_is_fetch(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_write(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_read(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_inquiry(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_is_deferrable(t: *const transaction_t) -> bool; -} -extern "C" { - pub fn SIM_transaction_size(t: *const transaction_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_transaction_initiator(t: *const transaction_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_transaction_flags(t: *const transaction_t) -> transaction_flags_t; -} -extern "C" { - #[doc = " Transaction completion."] - pub fn SIM_complete_transaction(t: *mut transaction_t, ex: exception_type_t); -} -extern "C" { - pub fn SIM_defer_transaction( - obj: *mut conf_object_t, - t: *mut transaction_t, - ) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_defer_owned_transaction(t: *mut transaction_t) -> *mut transaction_t; -} -extern "C" { - pub fn SIM_replace_transaction(t_old: *mut transaction_t, t_new: *mut transaction_t); -} -extern "C" { - pub fn SIM_monitor_transaction(t: *mut transaction_t, ex: exception_type_t) - -> exception_type_t; -} -extern "C" { - pub fn SIM_monitor_chained_transaction( - t: *mut transaction_t, - ex: exception_type_t, - ) -> exception_type_t; -} -extern "C" { - pub fn SIM_transaction_wait(t: *mut transaction_t, ex: exception_type_t) -> exception_type_t; -} -extern "C" { - pub fn SIM_poll_transaction(t: *mut transaction_t) -> exception_type_t; -} -extern "C" { - #[doc = " Transaction data transfer."] - pub fn SIM_set_transaction_bytes(t: *const transaction_t, bytes: bytes_t); -} -extern "C" { - pub fn SIM_set_transaction_value_le(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_value_be(t: *const transaction_t, val: uint64); -} -extern "C" { - pub fn SIM_set_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - bytes: bytes_t, - ); -} -extern "C" { - pub fn SIM_set_transaction_bytes_constant(t: *const transaction_t, value: uint8); -} -extern "C" { - pub fn SIM_get_transaction_bytes(t: *const transaction_t, bytes: buffer_t); -} -extern "C" { - pub fn SIM_get_transaction_bytes_offs( - t: *const transaction_t, - offs: ::std::os::raw::c_uint, - buf: buffer_t, - zerofill_holes: bool, - ); -} -extern "C" { - pub fn SIM_get_transaction_value_le(t: *const transaction_t) -> uint64; -} -extern "C" { - pub fn SIM_get_transaction_value_be(t: *const transaction_t) -> uint64; -} -extern "C" { - #[doc = " Transaction Issue."] - pub fn SIM_issue_transaction( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t; -} -extern "C" { - #[doc = " This declaration fits better into . We had to put it\nhere since our headers intermix type definitions and func declarations."] - pub fn SIM_inspect_address_routing( - mt: *const map_target_t, - t: *mut transaction_t, - addr: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - mt: *const map_target_t, - t: *const transaction_t, - addr: uint64, - base: uint64, - start: uint64, - size: uint64, - access: access_t, - flags: translation_flags_t, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - pub fn SIM_inspect_breakpoints( - mt: *const map_target_t, - t: *mut transaction_t, - start: uint64, - end: uint64, - callback: ::std::option::Option< - unsafe extern "C" fn( - trigger_object: *mut conf_object_t, - bp_set: breakpoint_set_t, - t: *const transaction_t, - addr: uint64, - size: uint64, - data: *mut lang_void, - ) -> bool, - >, - data: *mut lang_void, - ) -> bool; -} -extern "C" { - #[doc = " Transaction Checkpointing."] - pub fn SIM_get_transaction_id(t: *mut transaction_t) -> int64; -} -extern "C" { - pub fn SIM_reconnect_transaction(t: *mut transaction_t, id: int64); -} -extern "C" { - pub fn VT_get_transaction(id: int64) -> *mut transaction_t; -} -extern "C" { - #[doc = " Atom handling."] - pub fn VT_register_atom_class( - name: *const ::std::os::raw::c_char, - pywrap_atom_from_type: *const ::std::os::raw::c_char, - pywrap_type_from_atom: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_get_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_lookup_atom_class_id(name: *const ::std::os::raw::c_char) -> atom_id_t; -} -extern "C" { - pub fn VT_transaction_atom( - t: *const transaction_t, - id: atom_id_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn VT_lookup_transaction_atom(t: *const transaction_t, id: atom_id_t) -> *const atom_t; -} -extern "C" { - pub fn SIM_register_python_atom_type(name: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_completion { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_completion() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_completion)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_completion) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_completion), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_flags { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_flags() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_flags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_flags), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_user_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_user_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_user_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_user_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_memop { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_memop() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_memop)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_memop), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_fill_value { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_fill_value() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_fill_value)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_fill_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_fill_value), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_initiator { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_initiator() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_initiator)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_initiator), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_owner { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_owner() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_owner)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_owner), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_list_end { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_list_end() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_list_end)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_list_end), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_data { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_data() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_data), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_size { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_size() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_size)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_size), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_bytemap { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_bytemap() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_bytemap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_bytemap), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Normal load or store instructions"] -pub const arm_mem_instr_origin_t_Instr_Normal_Arm: arm_mem_instr_origin_t = 0; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Load: arm_mem_instr_origin_t = 1; -#[doc = " Unprivileged memory access instructions."] -pub const arm_mem_instr_origin_t_Instr_Unprivileged_Store: arm_mem_instr_origin_t = 2; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldrex: arm_mem_instr_origin_t = 3; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_strex: arm_mem_instr_origin_t = 4; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_ldxp: arm_mem_instr_origin_t = 5; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const arm_mem_instr_origin_t_Instr_stxp: arm_mem_instr_origin_t = 6; -#[doc = " Address translation instruction"] -pub const arm_mem_instr_origin_t_Instr_At: arm_mem_instr_origin_t = 7; -#[doc = " Atomic read-modify-write instructions"] -pub const arm_mem_instr_origin_t_Instr_Atomic: arm_mem_instr_origin_t = 8; -#[doc = " Cache maintenance instructions"] -pub const arm_mem_instr_origin_t_Instr_Cache_Maintenance: arm_mem_instr_origin_t = 9; -#[doc = " Number of different of enum values, not a value in itself."] -pub const arm_mem_instr_origin_t_Instr_Count: arm_mem_instr_origin_t = 10; -#[doc = " "] -pub type arm_mem_instr_origin_t = ::std::os::raw::c_uint; -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_transaction { - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub rotate: ::std::os::raw::c_int, - pub instr_origin: arm_mem_instr_origin_t, -} -#[test] -fn bindgen_test_layout_arm_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rotate) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(rotate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); -} -impl Default for arm_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \narm_memory_transaction_t\narm_memory_transaction_t\n\narm_memory_transaction_t\n\n\n\n\nThis is the ARM specific memory transaction data structure.\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction. This is the same as the current mode of the\nprocessor except for unprivileged load and store instructions when it is\nalways Sim_CPU_Mode_User.\n\nThe rotate field is non-zero if this transaction is from one of\nthe AArch32 instructions for which an unaligned address is interpreted as an\naligned load with the value rotated so that the addressed byte becomes the\nleast significant byte if neither SCTLR.U nor SCTLR.A\nis set.\n\nThe instr_origin field specifies the type of instruction that\ninitiated this memory transaction.\n\n\n\n\n\n"] -pub type arm_memory_transaction_t = arm_memory_transaction; -extern "C" { - pub fn SIM_arm_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut arm_memory_transaction_t; -} -pub type arm_interface_t = arm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_interface { - pub read_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_mode: ::std::option::Option< - unsafe extern "C" fn( - processor_obj: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - mode: ::std::os::raw::c_int, - value: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(read_register_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_interface), - "::", - stringify!(write_register_mode) - ) - ); -} -pub type arm_coprocessor_interface_t = arm_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_coprocessor_interface { - pub process_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub load_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - value: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - opcode_1: uint32, - CRn: uint32, - CRm: uint32, - opcode_2: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub read_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_register_64_bit: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint64, - opcode_1: uint32, - CRm: uint32, - type_: ::std::os::raw::c_int, - ), - >, - pub store_coprocessor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - CRd: uint32, - N: uint32, - Options: uint32, - type_: ::std::os::raw::c_int, - ) -> uint32, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hard_reset: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_arm_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).process_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(process_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_coprocessor) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(load_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_64_bit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(read_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register_64_bit) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(write_register_64_bit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store_coprocessor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(store_coprocessor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(arm_coprocessor_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic { - pub valid: ::std::os::raw::c_int, - pub address: uint32, -} -#[test] -fn bindgen_test_layout_arm_avic() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_avic)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_avic), - "::", - stringify!(address) - ) - ); -} -#[doc = " \n\nThe ARM AVIC interface makes it possible for an ARM\nprocessor to get the interrupt vector address from an AVIC device\nconnected to the processor core. Both processor and AVIC must\nenable the AVIC interface to support this feature.\n\nThe processor calls get_interrupt_address function to\nget the interrupt vector address. The AVIC returns an\narm_avic_t struct with a valid field and an\naddress field, the address field is only valid when\nthe valid is not 0.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_avic_t = arm_avic; -pub type arm_avic_interface_t = arm_avic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_avic_interface { - pub get_interrupt_address: - ::std::option::Option arm_avic_t>, -} -#[test] -fn bindgen_test_layout_arm_avic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_avic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_avic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interrupt_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_avic_interface), - "::", - stringify!(get_interrupt_address) - ) - ); -} -pub const arm_trustzone_mode_t_Arm_Trustzone_Secure: arm_trustzone_mode_t = 0; -pub const arm_trustzone_mode_t_Arm_Trustzone_Non_Secure: arm_trustzone_mode_t = 1; -#[doc = " \n\nThis interface is implemented by ARM processors that supports the arm ARM\nTrustZone feature. The get_security_mode function returns the\ncurrent state of the processor, whereas mem_op_security_mode\nextracts the mode of a memory operation in progress.\n\nThe get_security_mode functions corresponds to the expression\n(cpsr.mode != Monitor && scr.ns) ? Arm_Trustzone_Non_Secure :\nArm_Trustzone_Secure. The mem_op_security_mode function\nalways returns Arm_Trustzone_Non_Secure when the processor is in\nnon-secure mode, in secure mode it returns the ns bit in the\nfirst-level page table entry for the actual area being accessed.\n\n\n\n\nCell Context for all methods.\n"] -pub type arm_trustzone_mode_t = ::std::os::raw::c_uint; -pub type arm_trustzone_interface_t = arm_trustzone_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_trustzone_interface { - pub get_security_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> arm_trustzone_mode_t, - >, - pub mem_op_security_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memop: *mut generic_transaction_t, - ) -> arm_trustzone_mode_t, - >, -} -#[test] -fn bindgen_test_layout_arm_trustzone_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_trustzone_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_security_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(get_security_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_op_security_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_trustzone_interface), - "::", - stringify!(mem_op_security_mode) - ) - ); -} -pub type arm_external_debug_interface_t = arm_external_debug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_external_debug_interface { - pub handle_semihosting: ::std::option::Option, - pub read_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint64, - >, - pub write_reg: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, v: uint64), - >, -} -#[test] -fn bindgen_test_layout_arm_external_debug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_external_debug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_semihosting) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(handle_semihosting) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_reg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(read_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_external_debug_interface), - "::", - stringify!(write_reg) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_state { - #[doc = " scr_el3.irq"] - pub fmo_set: bool, - pub imo_set: bool, - #[doc = " scr_el3.irq"] - pub irq_set: bool, - #[doc = " scr_el3.fiq"] - pub fiq_set: bool, - pub ns: bool, - pub el: ::std::os::raw::c_int, - pub mpidr: uint32, -} -#[test] -fn bindgen_test_layout_arm_cpu_state() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_state)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arm_cpu_state)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fmo_set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fmo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).imo_set) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(imo_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq_set) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(irq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fiq_set) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(fiq_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ns) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(ns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).el) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(el) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mpidr) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_state), - "::", - stringify!(mpidr) - ) - ); -} -#[doc = " This arm_gic interface is used\naccessing registers in a device implementing the Generic Interrupt\nController architecture..\n\nThe read_register function is called reading the registers in GIC\ndevice.\n\nThe write_register function is called writing the registers in\nGIC device.\n\nThe cpu_state_changed function is called to notify the GIC device\nthat the cpu has changed state. This function is only called when the cpu\nchanges state with an interrupt pending. \n\n\nCell Context for all methods.\n"] -pub type arm_cpu_state_t = arm_cpu_state; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gic_reg_info { - pub op1: ::std::os::raw::c_int, - pub crn: ::std::os::raw::c_int, - pub crm: ::std::os::raw::c_int, - pub op2: ::std::os::raw::c_int, - pub cpu_state: arm_cpu_state_t, -} -#[test] -fn bindgen_test_layout_gic_reg_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gic_reg_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(gic_reg_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crn) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).crm) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(crm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).op2) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(op2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gic_reg_info), - "::", - stringify!(cpu_state) - ) - ); -} -pub type gic_reg_info_t = gic_reg_info; -pub type arm_gic_interface_t = arm_gic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_info: gic_reg_info_t, - inquiry: bool, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg_info: gic_reg_info_t, value: uint64), - >, - pub cpu_state_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_state: arm_cpu_state_t), - >, -} -#[test] -fn bindgen_test_layout_arm_gic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(arm_gic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_state_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_interface), - "::", - stringify!(cpu_state_changed) - ) - ); -} -pub type arm_gic_cpu_state_interface_t = arm_gic_cpu_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_gic_cpu_state_interface { - pub get_cpu_state: - ::std::option::Option arm_cpu_state_t>, -} -#[test] -fn bindgen_test_layout_arm_gic_cpu_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_gic_cpu_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_gic_cpu_state_interface), - "::", - stringify!(get_cpu_state) - ) - ); -} -pub const arm_mem_type_t_Arm_MemType_Normal: arm_mem_type_t = 0; -pub const arm_mem_type_t_Arm_MemType_Device: arm_mem_type_t = 1; -#[doc = " "] -pub type arm_mem_type_t = ::std::os::raw::c_uint; -pub const arm_device_type_t_Arm_DeviceType_nGnRnE: arm_device_type_t = 0; -pub const arm_device_type_t_Arm_DeviceType_nGnRE: arm_device_type_t = 1; -pub const arm_device_type_t_Arm_DeviceType_nGRE: arm_device_type_t = 2; -pub const arm_device_type_t_Arm_DeviceType_GRE: arm_device_type_t = 3; -pub const arm_device_type_t_Arm_DeviceType_Unknown: arm_device_type_t = 4; -#[doc = " "] -pub type arm_device_type_t = ::std::os::raw::c_uint; -#[doc = " Non-cacheable"] -pub const arm_mem_attr_t_Arm_MemAttr_NC: arm_mem_attr_t = 0; -#[doc = " Write-through"] -pub const arm_mem_attr_t_Arm_MemAttr_WT: arm_mem_attr_t = 2; -#[doc = " Write-back"] -pub const arm_mem_attr_t_Arm_MemAttr_WB: arm_mem_attr_t = 3; -pub const arm_mem_attr_t_Arm_MemAttr_Unknown: arm_mem_attr_t = 4; -#[doc = " "] -pub type arm_mem_attr_t = ::std::os::raw::c_uint; -#[doc = " No Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_No: arm_mem_hint_t = 0; -#[doc = " No Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_WA: arm_mem_hint_t = 1; -#[doc = " Read-Allocate, No Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RA: arm_mem_hint_t = 2; -#[doc = " Read-Allocate, Write-Allocate"] -pub const arm_mem_hint_t_Arm_MemHint_RWA: arm_mem_hint_t = 3; -pub const arm_mem_hint_t_Arm_MemHint_Unknown: arm_mem_hint_t = 4; -#[doc = " "] -pub type arm_mem_hint_t = ::std::os::raw::c_uint; -pub const arm_mem_transient_t_Arm_Transient_True: arm_mem_transient_t = 0; -pub const arm_mem_transient_t_Arm_Transient_False: arm_mem_transient_t = 1; -pub const arm_mem_transient_t_Arm_Transient_Unknown: arm_mem_transient_t = 2; -#[doc = " "] -pub type arm_mem_transient_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_memory_attributes_encoding_t { - pub u: arm_memory_attributes_encoding_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_memory_attributes_encoding_t__bindgen_ty_1 { - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: [u8; 5usize], -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t__bindgen_ty_1) - ) - ); -} -impl arm_memory_attributes_encoding_t__bindgen_ty_1 { - #[inline] - pub fn memory_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u64) } - } - #[inline] - pub fn set_memory_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 2u8, val as u64) - } - } - #[inline] - pub fn device_type(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 3u8) as u64) } - } - #[inline] - pub fn set_device_type(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(5usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 3u8) as u64) } - } - #[inline] - pub fn set_inner_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 3u8, val as u64) - } - } - #[inline] - pub fn inner_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 2u8) as u64) } - } - #[inline] - pub fn set_inner_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 2u8, val as u64) - } - } - #[inline] - pub fn outer_cacheability(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_cacheability(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_allocation_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u64) } - } - #[inline] - pub fn set_outer_allocation_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 3u8, val as u64) - } - } - #[inline] - pub fn outer_transcience_hint(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 2u8) as u64) } - } - #[inline] - pub fn set_outer_transcience_hint(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 2u8, val as u64) - } - } - #[inline] - pub fn shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) } - } - #[inline] - pub fn set_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(21usize, 1u8, val as u64) - } - } - #[inline] - pub fn outer_shareable(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) } - } - #[inline] - pub fn set_outer_shareable(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(22usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - memory_type: uint64, - device_type: uint64, - inner_cacheability: uint64, - inner_allocation_hint: uint64, - inner_transcience_hint: uint64, - outer_cacheability: uint64, - outer_allocation_hint: uint64, - outer_transcience_hint: uint64, - shareable: uint64, - outer_shareable: uint64, - ) -> __BindgenBitfieldUnit<[u8; 3usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 2u8, { - let memory_type: u64 = unsafe { ::std::mem::transmute(memory_type) }; - memory_type as u64 - }); - __bindgen_bitfield_unit.set(2usize, 3u8, { - let device_type: u64 = unsafe { ::std::mem::transmute(device_type) }; - device_type as u64 - }); - __bindgen_bitfield_unit.set(5usize, 3u8, { - let inner_cacheability: u64 = unsafe { ::std::mem::transmute(inner_cacheability) }; - inner_cacheability as u64 - }); - __bindgen_bitfield_unit.set(8usize, 3u8, { - let inner_allocation_hint: u64 = - unsafe { ::std::mem::transmute(inner_allocation_hint) }; - inner_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(11usize, 2u8, { - let inner_transcience_hint: u64 = - unsafe { ::std::mem::transmute(inner_transcience_hint) }; - inner_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(13usize, 3u8, { - let outer_cacheability: u64 = unsafe { ::std::mem::transmute(outer_cacheability) }; - outer_cacheability as u64 - }); - __bindgen_bitfield_unit.set(16usize, 3u8, { - let outer_allocation_hint: u64 = - unsafe { ::std::mem::transmute(outer_allocation_hint) }; - outer_allocation_hint as u64 - }); - __bindgen_bitfield_unit.set(19usize, 2u8, { - let outer_transcience_hint: u64 = - unsafe { ::std::mem::transmute(outer_transcience_hint) }; - outer_transcience_hint as u64 - }); - __bindgen_bitfield_unit.set(21usize, 1u8, { - let shareable: u64 = unsafe { ::std::mem::transmute(shareable) }; - shareable as u64 - }); - __bindgen_bitfield_unit.set(22usize, 1u8, { - let outer_shareable: u64 = unsafe { ::std::mem::transmute(outer_shareable) }; - outer_shareable as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_memory_attributes_encoding_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_memory_attributes_encoding_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_memory_attributes_encoding_t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_memory_attributes_encoding_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_memory_attributes_encoding_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub union arm_smmu_attributes_t { - pub u: arm_smmu_attributes_t__bindgen_ty_1, - pub u64_: uint64, -} -#[repr(C)] -#[repr(align(8))] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_smmu_attributes_t__bindgen_ty_1 { - pub _bitfield_align_1: [u32; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 7usize]>, -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_smmu_attributes_t__bindgen_ty_1) - ) - ); -} -impl arm_smmu_attributes_t__bindgen_ty_1 { - #[inline] - pub fn sid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 32u8) as u64) } - } - #[inline] - pub fn set_sid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 32u8, val as u64) - } - } - #[inline] - pub fn ssid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 20u8) as u64) } - } - #[inline] - pub fn set_ssid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(32usize, 20u8, val as u64) - } - } - #[inline] - pub fn secsid(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(52usize, 1u8) as u64) } - } - #[inline] - pub fn set_secsid(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(52usize, 1u8, val as u64) - } - } - #[inline] - pub fn ssidv(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(53usize, 1u8) as u64) } - } - #[inline] - pub fn set_ssidv(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(53usize, 1u8, val as u64) - } - } - #[inline] - pub fn atst(&self) -> uint64 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(54usize, 1u8) as u64) } - } - #[inline] - pub fn set_atst(&mut self, val: uint64) { - unsafe { - let val: u64 = ::std::mem::transmute(val); - self._bitfield_1.set(54usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - sid: uint64, - ssid: uint64, - secsid: uint64, - ssidv: uint64, - atst: uint64, - ) -> __BindgenBitfieldUnit<[u8; 7usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 7usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 32u8, { - let sid: u64 = unsafe { ::std::mem::transmute(sid) }; - sid as u64 - }); - __bindgen_bitfield_unit.set(32usize, 20u8, { - let ssid: u64 = unsafe { ::std::mem::transmute(ssid) }; - ssid as u64 - }); - __bindgen_bitfield_unit.set(52usize, 1u8, { - let secsid: u64 = unsafe { ::std::mem::transmute(secsid) }; - secsid as u64 - }); - __bindgen_bitfield_unit.set(53usize, 1u8, { - let ssidv: u64 = unsafe { ::std::mem::transmute(ssidv) }; - ssidv as u64 - }); - __bindgen_bitfield_unit.set(54usize, 1u8, { - let atst: u64 = unsafe { ::std::mem::transmute(atst) }; - atst as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_arm_smmu_attributes_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_smmu_attributes_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_smmu_attributes_t), - "::", - stringify!(u64_) - ) - ); -} -impl Default for arm_smmu_attributes_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_privileged { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_privileged() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_privileged) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_privileged), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nonsecure { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nonsecure() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nonsecure)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_nonsecure) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nonsecure), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_memory_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_memory_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_memory_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_memory_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_smmu_attributes { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_smmu_attributes() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_smmu_attributes), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_arm_nsaid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_arm_nsaid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_arm_nsaid)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_arm_nsaid), - "::", - stringify!(dummy) - ) - ); -} -pub type arm_cpu_group_exclusive_interface_t = arm_cpu_group_exclusive_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_exclusive_interface { - pub mark_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: physical_address_t, - size: physical_address_t, - ), - >, - pub clear_and_probe_exclusive: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - clear_address: physical_address_t, - clear_size: physical_address_t, - probe_address: physical_address_t, - probe_size: physical_address_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_exclusive_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(arm_cpu_group_exclusive_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(arm_cpu_group_exclusive_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mark_exclusive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(mark_exclusive) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_and_probe_exclusive) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_exclusive_interface), - "::", - stringify!(clear_and_probe_exclusive) - ) - ); -} -pub type arm_cpu_group_event_interface_t = arm_cpu_group_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_event_interface { - pub signal_event: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_event_interface), - "::", - stringify!(signal_event) - ) - ); -} -#[doc = " EL3"] -pub const arm_translation_regime_t_Arm_TR_EL3: arm_translation_regime_t = 0; -#[doc = " EL2 PL2"] -pub const arm_translation_regime_t_Arm_TR_EL2: arm_translation_regime_t = 1; -#[doc = " EL2&0"] -pub const arm_translation_regime_t_Arm_TR_EL20: arm_translation_regime_t = 2; -#[doc = " EL1&0 PL1&0"] -pub const arm_translation_regime_t_Arm_TR_EL10: arm_translation_regime_t = 3; -#[doc = " "] -pub type arm_translation_regime_t = ::std::os::raw::c_uint; -pub type arm_cpu_group_tlb_interface_t = arm_cpu_group_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arm_cpu_group_tlb_interface { - pub invalidate_tlb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - translation_regime: arm_translation_regime_t, - by_virtual_address: bool, - virtual_address: logical_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_arm_cpu_group_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arm_cpu_group_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_tlb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arm_cpu_group_tlb_interface), - "::", - stringify!(invalidate_tlb) - ) - ); -} -pub type i8051_interrupt_interface_t = i8051_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_interrupt_interface { - pub active_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub reti: ::std::option::Option, - pub suppress_irq: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_i8051_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reti) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(reti) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress_irq) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i8051_interrupt_interface), - "::", - stringify!(suppress_irq) - ) - ); -} -pub type i8051_timer_interface_t = i8051_timer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i8051_timer_interface { - pub change_mode: - ::std::option::Option, - pub switch_timer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, caller: uint8, onoff: bool), - >, -} -#[test] -fn bindgen_test_layout_i8051_timer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i8051_timer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(change_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_timer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i8051_timer_interface), - "::", - stringify!(switch_timer) - ) - ); -} -#[doc = " Please do not access the members of this struct directly"] -pub type sobject_t = sobject; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sclass { - _unused: [u8; 0], -} -pub type sclass_t = sclass; -#[doc = " Please do not access the members of this struct directly"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sobject { - pub isa: *mut sclass_t, - pub props: *mut proplist, -} -#[test] -fn bindgen_test_layout_sobject() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sobject)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sobject)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).isa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(isa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).props) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sobject), - "::", - stringify!(props) - ) - ); -} -impl Default for sobject { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const attr_attr_t_Sim_Attr_Required: attr_attr_t = 0; -pub const attr_attr_t_Sim_Attr_Optional: attr_attr_t = 1; -pub const attr_attr_t_Sim_Attr_Session: attr_attr_t = 3; -pub const attr_attr_t_Sim_Attr_Pseudo: attr_attr_t = 4; -pub const attr_attr_t_Sim_Attr_Integer_Indexed: attr_attr_t = 4096; -pub const attr_attr_t_Sim_Attr_String_Indexed: attr_attr_t = 8192; -pub const attr_attr_t_Sim_Attr_List_Indexed: attr_attr_t = 16384; -pub const attr_attr_t_Sim_Attr_Persistent: attr_attr_t = 131072; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Flag_Mask: attr_attr_t = 255; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Shift: attr_attr_t = 8; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_0: attr_attr_t = 0; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_1: attr_attr_t = 256; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Bits: attr_attr_t = 2; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Mask: attr_attr_t = 3; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Init_Phase_Pre1: attr_attr_t = 768; -#[doc = " The members below are for internal use only."] -pub const attr_attr_t_Sim_Attr_Class: attr_attr_t = 32768; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Internal: attr_attr_t = 65536; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Doc: attr_attr_t = 1048576; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_CB_Data: attr_attr_t = 2097152; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Legacy: attr_attr_t = 4194304; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Weak_Ref: attr_attr_t = 8388608; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Read_Only: attr_attr_t = 262144; -#[doc = " To prevent attribute from being visible in documentation,\nuse Sim_Attr_Internal."] -pub const attr_attr_t_Sim_Attr_Write_Only: attr_attr_t = 524288; -pub type attr_attr_t = ::std::os::raw::c_uint; -pub const set_error_t_Sim_Set_Ok: set_error_t = 0; -pub const set_error_t_Sim_Set_Object_Not_Found: set_error_t = 1; -pub const set_error_t_Sim_Set_Interface_Not_Found: set_error_t = 2; -pub const set_error_t_Sim_Set_Illegal_Value: set_error_t = 3; -pub const set_error_t_Sim_Set_Illegal_Type: set_error_t = 4; -pub const set_error_t_Sim_Set_Illegal_Index: set_error_t = 5; -pub const set_error_t_Sim_Set_Attribute_Not_Found: set_error_t = 6; -pub const set_error_t_Sim_Set_Not_Writable: set_error_t = 7; -#[doc = " number of error types"] -pub const set_error_t_Sim_Set_Error_Types: set_error_t = 8; -#[doc = " "] -pub type set_error_t = ::std::os::raw::c_uint; -#[doc = " object is saved at checkpoints"] -pub const class_kind_t_Sim_Class_Kind_Vanilla: class_kind_t = 0; -#[doc = " object is saved as part of a\n session only"] -pub const class_kind_t_Sim_Class_Kind_Session: class_kind_t = 1; -#[doc = " object is never saved"] -pub const class_kind_t_Sim_Class_Kind_Pseudo: class_kind_t = 2; -#[doc = " extension class (see SIM_extend_class)"] -pub const class_kind_t_Sim_Class_Kind_Extension: class_kind_t = 3; -#[doc = " \n"] -pub type class_kind_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct conf_class { - _unused: [u8; 0], -} -pub type conf_class_t = conf_class; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_data { - pub alloc_object: - ::std::option::Option *mut conf_object_t>, - pub init_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> *mut lang_void, - >, - pub finalize_instance: ::std::option::Option, - pub pre_delete_instance: ::std::option::Option, - pub delete_instance: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub description: *const ::std::os::raw::c_char, - pub class_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(class_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc_object) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(alloc_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_object) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(init_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize_instance) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(finalize_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_delete_instance) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(pre_delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_instance) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(delete_instance) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_desc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(class_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_data), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_data { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_data_t = class_data; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct class_info { - pub alloc: - ::std::option::Option *mut conf_object_t>, - pub init: - ::std::option::Option *mut lang_void>, - pub finalize: ::std::option::Option, - pub objects_finalized: ::std::option::Option, - pub deinit: ::std::option::Option, - pub dealloc: ::std::option::Option, - pub description: *const ::std::os::raw::c_char, - pub short_desc: *const ::std::os::raw::c_char, - pub kind: class_kind_t, -} -#[test] -fn bindgen_test_layout_class_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(class_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(class_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alloc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(alloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finalize) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(finalize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).objects_finalized) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(objects_finalized) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deinit) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(deinit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(dealloc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_desc) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(short_desc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(class_info), - "::", - stringify!(kind) - ) - ); -} -impl Default for class_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type class_info_t = class_info; -#[doc = " Opaque struct - do not access members directly!"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct conf_object { - pub sobj: sobject_t, - pub instance_data: *mut ::std::os::raw::c_void, - pub log: *mut log_info, - pub conf: *mut confdata, - pub extension_data: *mut extension_data, - pub thread_domain: *mut thread_domain, - pub reserved: [*mut ::std::os::raw::c_void; 3usize], -} -#[test] -fn bindgen_test_layout_conf_object() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(conf_object)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(conf_object)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sobj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(sobj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instance_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(instance_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(log) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(conf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extension_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(extension_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).thread_domain) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(thread_domain) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(conf_object), - "::", - stringify!(reserved) - ) - ); -} -impl Default for conf_object { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Register new class. Returns NULL on failure."] - pub fn SIM_register_class( - name: *const ::std::os::raw::c_char, - class_data: *const class_data_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_register_class_alias( - alias: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_create_class( - name: *const ::std::os::raw::c_char, - class_info: *const class_info_t, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_extend_class(cls: *mut conf_class_t, ext: *mut conf_class_t); -} -extern "C" { - pub fn SIM_copy_class( - name: *const ::std::os::raw::c_char, - src_cls: *const conf_class_t, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn SIM_get_class_name(class_data: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_set_constructor_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_class_data(cls: *mut conf_class_t, data: *mut lang_void); -} -extern "C" { - pub fn SIM_get_class_data(cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_require_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_name(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_id(obj: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_object_is_configured(obj: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_set_object_configured(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_object_data(obj: *mut conf_object_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_extension_data(obj: *mut conf_object_t, cls: *mut conf_class_t) -> *mut lang_void; -} -extern "C" { - pub fn SIM_port_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_parent(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_object_descendant( - obj: *mut conf_object_t, - relname: *const ::std::os::raw::c_char, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_object_iterator(obj: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_shallow_object_iterator(obj: *mut conf_object_t, expand_arrays: bool) - -> *mut _object; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct object_iter_t { - #[doc = " Opaque fields. Do not access directly."] - pub node: *mut conf_object_t, - pub depth: ::std::os::raw::c_uint, - pub kind: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_object_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(object_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(object_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kind) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(object_iter_t), - "::", - stringify!(kind) - ) - ); -} -impl Default for object_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_shallow_object_iterator(obj: *mut conf_object_t) -> object_iter_t; -} -extern "C" { - pub fn SIM_object_iterator_next(iter: *mut object_iter_t) -> *mut conf_object_t; -} -#[doc = " \n"] -pub type get_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " \n"] -pub type get_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - idx: *mut attr_value_t, - ) -> attr_value_t, ->; -#[doc = " "] -pub type set_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - obj: *mut conf_object_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -#[doc = " \n"] -pub type set_class_attr_t = ::std::option::Option< - unsafe extern "C" fn( - ptr: *mut lang_void, - c: *mut conf_class_t, - val: *mut attr_value_t, - idx: *mut attr_value_t, - ) -> set_error_t, ->; -extern "C" { - #[doc = " Register a typed attribute (with an optionally typed index)."] - pub fn SIM_register_typed_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_attr_t, - user_data_get: *mut lang_void, - set_attr: set_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_typed_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: get_class_attr_t, - user_data_get: *mut lang_void, - set_attr: set_class_attr_t, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - idx_type: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t) -> attr_value_t, - >, - set_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut attr_value_t) -> set_error_t, - >, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_object_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_class_attribute_with_user_data( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - get_attr: ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_class_t, arg2: *mut lang_void) -> attr_value_t, - >, - user_data_get: *mut lang_void, - set_attr: ::std::option::Option< - unsafe extern "C" fn( - arg1: *mut conf_class_t, - arg2: *mut attr_value_t, - arg3: *mut lang_void, - ) -> set_error_t, - >, - user_data_set: *mut lang_void, - attr: attr_attr_t, - type_: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_ensure_partial_attr_order( - cls: *mut conf_class_t, - attr1: *const ::std::os::raw::c_char, - attr2: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_attribute_error(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_c_attribute_error(msg: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn VT_set_cpu_offset(arg: *const ::std::os::raw::c_void, add: bool); -} -pub type interface_t = ::std::os::raw::c_void; -pub type class_interface_t = ::std::os::raw::c_void; -extern "C" { - #[doc = " Return error code on failure (0 == ok)."] - pub fn SIM_register_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_port_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface: *const interface_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_register_compatible_interfaces( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - port_cls: *mut conf_class_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_simple_port( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Get interface from object (returns NULL if interface not\nimplemented by object)."] - pub fn SIM_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_c_get_port_interface( - obj: *const conf_object_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const interface_t; -} -extern "C" { - pub fn SIM_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -extern "C" { - pub fn SIM_c_get_class_port_interface( - cls: *const conf_class_t, - name: *const ::std::os::raw::c_char, - portname: *const ::std::os::raw::c_char, - ) -> *const class_interface_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interface_array_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *const interface_t, -} -#[test] -fn bindgen_test_layout_interface_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interface_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interface_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interface_array_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for interface_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_register_port_array_interface( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - iface_list: *const interface_array_t, - portname: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_marked_for_deletion(obj: *const conf_object_t) -> bool; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_instrumentation_info { - _unused: [u8; 0], -} -pub type instruction_handle_t = cpu_instrumentation_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_memory_info { - _unused: [u8; 0], -} -pub type memory_handle_t = cpu_memory_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_replace_info { - _unused: [u8; 0], -} -pub type decoder_handle_t = cpu_replace_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_info { - _unused: [u8; 0], -} -pub type exception_handle_t = cpu_exception_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_exception_return_info { - _unused: [u8; 0], -} -pub type exception_return_handle_t = cpu_exception_return_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cpu_address_info { - _unused: [u8; 0], -} -pub type address_handle_t = cpu_address_info; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct cached_instruction_data { - _unused: [u8; 0], -} -pub type cached_instruction_handle_t = cached_instruction_data; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct instrumentation_entry { - _unused: [u8; 0], -} -pub type cpu_cb_handle_t = instrumentation_entry; -pub type cpu_stream_handle_t = instrumentation_entry; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_bytes { - pub size: usize, - pub data: *const uint8, -} -#[test] -fn bindgen_test_layout_cpu_bytes() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_bytes)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_bytes)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_bytes), - "::", - stringify!(data) - ) - ); -} -impl Default for cpu_bytes { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type cpu_bytes_t = cpu_bytes; -pub type cpu_instruction_query_interface_t = cpu_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> physical_address_t, - >, - pub get_instruction_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> cpu_bytes_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_bytes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_query_interface), - "::", - stringify!(get_instruction_bytes) - ) - ); -} -pub const page_crossing_info_t_Sim_Page_Crossing_None: page_crossing_info_t = 0; -pub const page_crossing_info_t_Sim_Page_Crossing_First: page_crossing_info_t = 1; -pub const page_crossing_info_t_Sim_Page_Crossing_Second: page_crossing_info_t = 2; -#[doc = " \nStates the type of memory accesses related to page crossings.\n"] -pub type page_crossing_info_t = ::std::os::raw::c_uint; -pub type cpu_memory_query_interface_t = cpu_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_memory_query_interface { - pub logical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> logical_address_t, - >, - pub physical_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> physical_address_t, - >, - pub set_host_ptr: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - p: *mut ::std::os::raw::c_void, - ), - >, - pub get_bytes: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> cpu_bytes_t, - >, - pub set_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - bytes: cpu_bytes_t, - ), - >, - pub atomic: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> bool, - >, - pub arch: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut memory_handle_t) -> ini_type_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> page_crossing_info_t, - >, - pub get_surrounding_bytes: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - granularity_log2: ::std::os::raw::c_uint, - ) -> buffer_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(logical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_host_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_host_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bytes) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(set_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).atomic) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(atomic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arch) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(arch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_surrounding_bytes) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_memory_query_interface), - "::", - stringify!(get_surrounding_bytes) - ) - ); -} -pub type cpu_exception_query_interface_t = cpu_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_exception_query_interface { - pub exception_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> ::std::os::raw::c_int, - >, - pub fault_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(exception_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fault_pc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_exception_query_interface), - "::", - stringify!(fault_pc) - ) - ); -} -#[doc = " cpu_instruction_cb_t\ncpu_instruction_cb_t\n\ncpu_instruction_cb_t\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an instruction has been executed. The cpu is the\nprocessor which executed an instruction. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_instruction_query interface to get more\ninformation about the instruction. The user_data is the user\ndata for the callback.\n\n\n\n\n"] -pub type cpu_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_callback_free_user_data_cb_t\ncpu_callback_free_user_data_cb_t\n\ncpu_callback_free_user_data_cb_t\n\n\n\n\nCallback function registered through the\ncpu_cached_instruction interface to free instruction specific\nuser data when the instruction is not being cached anymore. The\nuser_data is the pointer to the callback data. obj is\nthe connection object and cpu is the processor that the callback\nwas registered for.\n\n\n\n\n"] -pub type cpu_callback_free_user_data_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -#[doc = " \ncpu_memory_cb_t\ncpu_memory_cb_t\n\ncpu_memory_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe or the\ncpu_cached_instruction interfaces to get a callback before or\nafter an memory access is executed. The cpu is the\nprocessor which executed a load/store. The handle is an\nopaque handle associated with the instruction being executed. It can be used\nwith the cpu_memory_query interface to get more\ninformation about the access. The user_data is the user\ndata for the callback.\n\n\n\n\n\n"] -pub type cpu_memory_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - user_data: *mut lang_void, - ), ->; -pub type cpu_cached_instruction_interface_t = cpu_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_interface { - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_memory_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub add_counter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - counter: *mut uint64, - use_atomic_increment: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(cpu_cached_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_interface), - "::", - stringify!(add_counter) - ) - ); -} -pub type cpu_cached_instruction_once_interface_t = cpu_cached_instruction_once_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_instruction_once_interface { - pub register_instruction_before_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, - pub register_instruction_after_once_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - cb: cpu_instruction_cb_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_instruction_once_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_cached_instruction_once_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_once_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_before_once_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_once_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_instruction_once_interface), - "::", - stringify!(register_instruction_after_once_cb) - ) - ); -} -pub type internal_cached_instruction_interface_t = internal_cached_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct internal_cached_instruction_interface { - pub add_counters: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - i_counter: *mut uint64, - t_counter: *mut uint64, - use_atomic_increment: bool, - ), - >, - pub get_service_routine_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - iq_handle: *mut instruction_handle_t, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_internal_cached_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(internal_cached_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_counters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(add_counters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_service_routine_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(internal_cached_instruction_interface), - "::", - stringify!(get_service_routine_name) - ) - ); -} -#[doc = " \ncpu_cached_instruction_cb_t\ncpu_cached_instruction_cb_t\n\ncpu_cached_instruction_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_cached_instruction_cb member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The ci_handle is an opaque handle\nassociated with the instruction being executed, it is used in\nthe cpu_cached_instruction interface to install instruction\nspecific callbacks. The iq_handle is used with the\ncpu_instruction_query interface to get more information about\nthe instruction. The user_data is the user\ndata for the callback.\n\n\n\n"] -pub type cpu_cached_instruction_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_emulation_t_CPU_Emulation_Fall_Through: cpu_emulation_t = 0; -pub const cpu_emulation_t_CPU_Emulation_Control_Flow: cpu_emulation_t = 1; -pub const cpu_emulation_t_CPU_Emulation_Default_Semantics: cpu_emulation_t = 2; -pub const cpu_emulation_t_CPU_Emulation_Stall: cpu_emulation_t = 3; -#[doc = " "] -pub type cpu_emulation_t = ::std::os::raw::c_uint; -#[doc = " \ncpu_emulation_cb_t\ncpu_emulation_cb_t\n\ncpu_emulation_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instruction_decoder interface.\n\nThis callback will be called when an user added instruction is about to\nbe executed in the processor. The cpu is the processor which\nexecutes an instruction. The instruction_user_data is\nthe user-data associated with the instruction.\nThe return type cpu_emulation_t is used to tell Simics how the\nnext instruction should be fetched. For more information, see the\ncpu_instruction_decoder interface.\n\n\n\n\n"] -pub type cpu_emulation_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ) -> cpu_emulation_t, ->; -pub type cpu_instruction_decoder_interface_t = cpu_instruction_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instruction_decoder_interface { - pub register_emulation_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - cb: cpu_emulation_cb_t, - handle: *mut decoder_handle_t, - user_data: *mut lang_void, - free_cb: cpu_callback_free_user_data_cb_t, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_instruction_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_instruction_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instruction_decoder_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_emulation_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instruction_decoder_interface), - "::", - stringify!(register_emulation_cb) - ) - ); -} -#[doc = " \ncpu_instruction_decoder_cb_t\ncpu_instruction_decoder_cb_t\n\ncpu_instruction_decoder_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThis callback will be called when an instruction is about to be cached in\nthe processor model (this is not the same as being in the processor's real\nhardware instruction cache). The cpu is the processor which\nexecuted an instruction. The decoder_handle is an opaque\nhandle associated with the instruction being executed and used in the\ncpu_instruction_decoder interface.\nThe iq_handle is used with the\ncpu_instruction_query interface to get more information on\nthe instruction. The user_data is the user data\nassociated with the callback.\n\n\n\n\n"] -pub type cpu_instruction_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - decoder_handle: *mut decoder_handle_t, - iq_handle: *mut instruction_handle_t, - user_data: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ncpu_instruction_disassemble_cb_t\ncpu_instruction_disassemble_cb_t\n\ncpu_instruction_disassemble_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_instruction_decoder_cb() member function.\n\nThe callback will be called when a replaced instruction is being\ndisassembled.\n\n\n\n\n"] -pub type cpu_instruction_disassemble_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: generic_address_t, - bytes: cpu_bytes_t, - ) -> tuple_int_string_t, ->; -#[doc = " \ncpu_address_cb_t\ncpu_address_cb_t\n\ncpu_address_cb_t\n\n\n\n\nInstrumentation callback function registered through the\ncpu_instrumentation_subscribe interface's\nregister_address_before() member function.\n\nThe callback will be called prior to a processor memory access, allowing\nthe callback to change the logical address for an access.\n\nThe argument obj is the object installing the callback and the\ncpu is the processor generating the logical\naddress. If the access crosses a page boundary the access will be\nsplit into two calls. The part argument tells if the address\nbelongs to the first or the second part. The cpu_address_part_t\ntype has two values: CPU_Address_Part_First and\nCPU_Address_Part_Second. The handle can be used to\nextract more information about he address by using a architecture specific\ninterface. See the x86_address_query for example.\n\n\n\n\n"] -pub type cpu_address_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - address: logical_address_t, - handle: *mut address_handle_t, - user_data: *mut lang_void, - ) -> logical_address_t, ->; -#[doc = " "] -pub type cpu_exception_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_handle_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_exception_return_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - exception_handle: *mut exception_return_handle_t, - user_data: *mut lang_void, - ), ->; -pub const cpu_exception_scope_t_CPU_Exception_All: cpu_exception_scope_t = -1; -#[doc = " "] -pub type cpu_exception_scope_t = ::std::os::raw::c_int; -pub const cpu_control_register_scope_t_CPU_Control_Register_All: cpu_control_register_scope_t = -1; -#[doc = " "] -pub type cpu_control_register_scope_t = ::std::os::raw::c_int; -#[doc = " "] -pub type cpu_mode_change_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_read_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type cpu_control_register_write_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - value: uint64, - user_data: *mut lang_void, - ), ->; -pub const cpu_access_scope_t_CPU_Access_Scope_Explicit: cpu_access_scope_t = 0; -pub const cpu_access_scope_t_CPU_Access_Scope_Implicit: cpu_access_scope_t = 1; -#[doc = " \nUsed to select the access scope for instrumentation of memory\naccesses. CPU_Access_Scope_Explicit selects explicit accesses used by an\ninstruction such as loading or storing a value. CPU_Access_Scope_Implicit\nselects implicit accesses such as table walks and exceptions handling. See\nthe cpu_instrumentation_subscribe for more information.\n"] -pub type cpu_access_scope_t = ::std::os::raw::c_uint; -pub type cpu_instrumentation_subscribe_interface_t = cpu_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_subscribe_interface { - #[doc = " Callback specific methods"] - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_cb_handle_t), - >, - #[doc = " Callback groups methods, operating on several callbacks\nassociated to a connection."] - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, connection: *mut conf_object_t), - >, - #[doc = " Subscribe methods"] - pub register_instruction_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_read_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_write_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - scope: cpu_access_scope_t, - cb: cpu_memory_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_address_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_address_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_cached_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_cached_instruction_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_instruction_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - exception_number: ::std::os::raw::c_int, - cb: cpu_exception_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_exception_return_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_exception_return_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_change_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_mode_change_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_read_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_read_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_control_register_write_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - register_number: ::std::os::raw::c_int, - cb: cpu_control_register_write_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 176usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_before_cb) as usize - ptr as usize - }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_after_cb) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_before_cb) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_read_after_cb) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_read_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_before_cb) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_write_after_cb) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_write_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_address_before_cb) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_address_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_cached_instruction_cb) as usize - ptr as usize - }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_cached_instruction_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_instruction_decoder_cb) as usize - ptr as usize - }, - 112usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_instruction_decoder_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_before_cb) as usize - ptr as usize - }, - 120usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_exception_after_cb) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_before_cb) as usize - ptr as usize - }, - 136usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_exception_return_after_cb) as usize - ptr as usize - }, - 144usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_exception_return_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_change_cb) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_change_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_read_before_cb) as usize - - ptr as usize - }, - 160usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_read_before_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_control_register_write_before_cb) as usize - - ptr as usize - }, - 168usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_subscribe_interface), - "::", - stringify!(register_control_register_write_before_cb) - ) - ); -} -pub const cpu_stream_enum_t_CPU_Stream_Instruction_PA: cpu_stream_enum_t = 0; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA: cpu_stream_enum_t = 1; -pub const cpu_stream_enum_t_CPU_Stream_Instruction_VA_After: cpu_stream_enum_t = 2; -pub const cpu_stream_enum_t_CPU_Stream_Read_PA: cpu_stream_enum_t = 3; -pub const cpu_stream_enum_t_CPU_Stream_Read_VA: cpu_stream_enum_t = 4; -pub const cpu_stream_enum_t_CPU_Stream_Write_PA: cpu_stream_enum_t = 5; -pub const cpu_stream_enum_t_CPU_Stream_Write_VA: cpu_stream_enum_t = 6; -pub const cpu_stream_enum_t_CPU_Stream_Read_Bytes: cpu_stream_enum_t = 7; -pub const cpu_stream_enum_t_CPU_Stream_Written_Bytes: cpu_stream_enum_t = 8; -pub const cpu_stream_enum_t_CPU_Stream_Address_VA: cpu_stream_enum_t = 9; -pub const cpu_stream_enum_t_CPU_Stream_Object: cpu_stream_enum_t = 10; -pub const cpu_stream_enum_t_CPU_Stream_Opcode: cpu_stream_enum_t = 17; -pub const cpu_stream_enum_t_CPU_Stream_Local: cpu_stream_enum_t = 32; -#[doc = " last, enum can used as bit number"] -pub const cpu_stream_enum_t_CPU_Stream_User_Data: cpu_stream_enum_t = 63; -#[doc = " ADD INTERFACE cpu_instrumentation_subscribe"] -pub type cpu_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " Contains bits created by using bit numbers from cpu_stream_enum_t"] -pub type cpu_stream_bits_t = uint64; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_stream_data_t { - #[doc = " stored as CPU_STREAM_MAKE_TYPE(type, data)"] - pub tag: uint64, - #[doc = " tag-specific-data"] - pub data: uint64, -} -#[test] -fn bindgen_test_layout_cpu_stream_data_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_stream_data_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_stream_data_t), - "::", - stringify!(data) - ) - ); -} -pub type cpu_cached_stream_interface_t = cpu_cached_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_cached_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ci_handle: *mut cached_instruction_handle_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - user_data: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_cpu_cached_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_cached_stream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_cached_stream_interface), - "::", - stringify!(add_stream) - ) - ); -} -pub type cpu_instrumentation_stream_interface_t = cpu_instrumentation_stream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_instrumentation_stream_interface { - pub add_stream: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - bits: cpu_stream_bits_t, - data: *mut *mut cpu_stream_data_t, - scope: cpu_access_scope_t, - ) -> *mut cpu_stream_handle_t, - >, - pub remove_stream: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cpu_stream_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cpu_instrumentation_stream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cpu_instrumentation_stream_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_stream) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(add_stream) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_stream) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_instrumentation_stream_interface), - "::", - stringify!(remove_stream) - ) - ); -} -#[doc = " \npre_decoder_cb_t\npre_decoder_cb_t\n\npre_decoder_cb_t\n\n\n\n\nThis callback is used by the pre_decoder_interface_t to\nobserve and modify the instruction byte stream.\n\nThe obj is the connection object which owns the callback, or\nNULL, if no connection is used. cpu is the cpu which decodes the\ninstructions. instruction_start_address is the address of the\nfirst byte in the instruction that is being decoded. For x86 this is the\nlinerar address. opcode_bytes is a pointer to the first opcode\nbyte in the instruction. The valid_bytes tells how many bytes\nthat can read from the first byte.\n\nIf the decoded instruction crosses a page boundary this callback is invoked\ntwice, first with the bytes on the first page and then with additional bytes\nlocated on the next page. The instruction_position tells where in\nthe instruction opcode the next bytes are added from the second page, and\nhence will be greater 0 if this occurs.\n\nThe position_physical_address reflects the physical address of\nthe instruction_position.\n\nThe function should return true if the memory was modified, otherwise false.\n\n\n\n\n"] -pub type pre_decoder_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - instruction_start_address: generic_address_t, - position_physical_address: physical_address_t, - opcode_bytes: *mut uint8, - valid_bytes: ::std::os::raw::c_uint, - instruction_position: ::std::os::raw::c_uint, - user_data: *mut lang_void, - ) -> bool, ->; -pub type pre_decoder_interface_t = pre_decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pre_decoder_interface { - pub register_pre_decoder_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: pre_decoder_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_pre_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pre_decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_pre_decoder_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pre_decoder_interface), - "::", - stringify!(register_pre_decoder_cb) - ) - ); -} -pub type mips_exception_query_interface_t = mips_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_exception_query_interface { - pub return_pc: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> logical_address_t, - >, -} -#[test] -fn bindgen_test_layout_mips_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).return_pc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_exception_query_interface), - "::", - stringify!(return_pc) - ) - ); -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 7usize], -} -#[test] -fn bindgen_test_layout_mips_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for mips_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl mips_memory_transaction { - #[inline] - pub fn cache_coherency(&self) -> ::std::os::raw::c_uint { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) } - } - #[inline] - pub fn set_cache_coherency(&mut self, val: ::std::os::raw::c_uint) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 3u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - cache_coherency: ::std::os::raw::c_uint, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 3u8, { - let cache_coherency: u32 = unsafe { ::std::mem::transmute(cache_coherency) }; - cache_coherency as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n"] -pub type mips_memory_transaction_t = mips_memory_transaction; -extern "C" { - pub fn SIM_mips_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut mips_memory_transaction_t; -} -pub type mips_interface_t = mips_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_mips_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(mips_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(mips_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type mips_coprocessor_interface_t = mips_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - reg: uint32, - sel: uint32, - ) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - value: uint64, - reg: uint32, - sel: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_mips_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type fmn_station_control_interface_t = fmn_station_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, thread_id: uint32, bucket: uint8), - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - vector: uint8, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fmn_station_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_interface), - "::", - stringify!(sync) - ) - ); -} -pub type fmn_station_control_v2_interface_t = fmn_station_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct fmn_station_control_v2_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub load_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> uint64, - >, - pub wait: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - thread_id: uint32, - rt_value: uint64, - ) -> ::std::os::raw::c_int, - >, - pub sync: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_fmn_station_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(fmn_station_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(fmn_station_control_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(send_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_message) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(load_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(wait) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(fmn_station_control_v2_interface), - "::", - stringify!(sync) - ) - ); -} -pub type mips_cache_instruction_interface_t = mips_cache_instruction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_cache_instruction_interface { - pub cache_instruction: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - cpu: *mut conf_object_t, - op: uint32, - vaddr: logical_address_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mips_cache_instruction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mips_cache_instruction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(mips_cache_instruction_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_instruction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_cache_instruction_interface), - "::", - stringify!(cache_instruction) - ) - ); -} -pub type mips_ite_interface_t = mips_ite_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_ite_interface { - pub set_dtag_lo: - ::std::option::Option, - pub get_dtag_lo: ::std::option::Option uint32>, - pub get_errctl: ::std::option::Option uint32>, - pub block_tc: ::std::option::Option, - pub gated_exception: ::std::option::Option, - pub current_tc_num: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub unblock_tc: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tc_num: ::std::os::raw::c_int), - >, - pub is_big_endian: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_mips_ite_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(mips_ite_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_ite_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtag_lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(set_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dtag_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_dtag_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_errctl) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(get_errctl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_tc) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(block_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gated_exception) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(gated_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_tc_num) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(current_tc_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unblock_tc) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(unblock_tc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_big_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(mips_ite_interface), - "::", - stringify!(is_big_endian) - ) - ); -} -pub type mips_eic_interface_t = mips_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mips_eic_interface { - pub cpu_pending_irqs: - ::std::option::Option, - pub requested_ipl: - ::std::option::Option uint32>, - pub requested_offset: - ::std::option::Option uint32>, - pub requested_vect_num: - ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_mips_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(mips_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mips_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_pending_irqs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(cpu_pending_irqs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_ipl) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_ipl) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).requested_vect_num) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(requested_vect_num) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(mips_eic_interface), - "::", - stringify!(handled) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_nios_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for nios_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type nios_memory_transaction_t = nios_memory_transaction; -pub type nios_interface_t = nios_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_interface { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_nios_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(nios_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(nios_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type nios_eic_interface_t = nios_eic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_eic_interface { - pub handler: - ::std::option::Option logical_address_t>, - pub level: ::std::option::Option uint32>, - pub reg_set: ::std::option::Option uint32>, - pub nmi: ::std::option::Option bool>, - pub handled: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_eic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(nios_eic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_eic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_set) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(reg_set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handled) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_eic_interface), - "::", - stringify!(handled) - ) - ); -} -pub type nios_cache_interface_t = nios_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_cache_interface { - pub flushd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub flushp: ::std::option::Option, - pub initd: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initda: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub initi: ::std::option::Option< - unsafe extern "C" fn(self_: *mut conf_object_t, addr: logical_address_t), - >, - pub sync: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_nios_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(nios_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushda) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flushp) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(flushp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initd) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initda) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initda) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initi) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(initi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sync) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(nios_cache_interface), - "::", - stringify!(sync) - ) - ); -} -pub type nios_custom_interface_t = nios_custom_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nios_custom_interface { - pub custom: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - n: uint32, - a: uint32, - b: uint32, - c: uint32, - rA: uint32, - rB: uint32, - readra: bool, - readrb: bool, - writerc: bool, - ) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_nios_custom_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(nios_custom_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nios_custom_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).custom) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nios_custom_interface), - "::", - stringify!(custom) - ) - ); -} -#[doc = " Access from a mfspr/mtspr instruction"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const gen_spr_access_type_t_Sim_Gen_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Instruction_Access: gen_spr_access_type_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Attribute_Access: gen_spr_access_type_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_access_type_t_Sim_PPC_Spr_Int_Register_Access: gen_spr_access_type_t = 2; -#[doc = " "] -pub type gen_spr_access_type_t = ::std::os::raw::c_uint; -#[doc = " SPR access was OK"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " SPR access should trigger illegal insn exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " SPR access should trigger privilege exc"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " SPR access suspends the processor"] -pub const gen_spr_ret_t_Sim_Gen_Spr_Processor_Sleeps: gen_spr_ret_t = 3; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Ok: gen_spr_ret_t = 0; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Illegal: gen_spr_ret_t = 1; -#[doc = " For compatibility with former PPC-only implementation"] -pub const gen_spr_ret_t_Sim_PPC_Spr_Privilege: gen_spr_ret_t = 2; -#[doc = " "] -pub type gen_spr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type gen_spr_user_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type gen_spr_user_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - user_data: *mut lang_void, - ) -> gen_spr_ret_t, ->; -#[doc = " "] -pub type simtime_t = int64; -#[doc = " "] -pub type cycles_t = simtime_t; -#[doc = " "] -pub type nano_secs_t = int64; -extern "C" { - pub fn SIM_cycle_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_time(obj: *mut conf_object_t) -> f64; -} -extern "C" { - pub fn SIM_stall_cycle(obj: *mut conf_object_t, cycles: cycles_t); -} -extern "C" { - pub fn SIM_stall(obj: *mut conf_object_t, seconds: f64); -} -extern "C" { - pub fn SIM_stalled_until(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_stall_count(obj: *mut conf_object_t) -> cycles_t; -} -extern "C" { - pub fn SIM_object_clock(obj: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_picosecond_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_set_object_clock(obj: *mut conf_object_t, clock: *mut conf_object_t); -} -extern "C" { - pub fn VT_object_ps_clock(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_cycles_to_quantum_end(obj: *mut conf_object_t) -> cycles_t; -} -pub const cache_control_operation_t_Cache_Control_Nop: cache_control_operation_t = 0; -pub const cache_control_operation_t_Cache_Control_Fetch_Line: cache_control_operation_t = 1; -pub const cache_control_operation_t_Cache_Control_Invalidate_Line: cache_control_operation_t = 2; -pub const cache_control_operation_t_Cache_Control_Copyback_Line: cache_control_operation_t = 3; -pub const cache_control_operation_t_Cache_Control_Invalidate_Cache: cache_control_operation_t = 4; -pub type cache_control_operation_t = ::std::os::raw::c_uint; -pub type cache_control_interface_t = cache_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cache_control_interface { - #[doc = " Returns the number of cycles until the operation is complete."] - pub cache_control: ::std::option::Option< - unsafe extern "C" fn( - cache: *mut conf_object_t, - op: cache_control_operation_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_cache_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cache_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cache_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cache_control) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cache_control_interface), - "::", - stringify!(cache_control) - ) - ); -} -pub const ppc_mc_exc_t_Sim_PPC_Generic_MC: ppc_mc_exc_t = 0; -pub const ppc_mc_exc_t_Sim_PPC_MC_TEA: ppc_mc_exc_t = 1; -pub const ppc_mc_exc_t_Sim_PPC_MC_MCP: ppc_mc_exc_t = 2; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Address_Parity: ppc_mc_exc_t = 3; -pub const ppc_mc_exc_t_Sim_PPC_Bus_Data_Parity: ppc_mc_exc_t = 4; -pub const ppc_mc_exc_t_Sim_PPC_Instruction_Cache_Parity: ppc_mc_exc_t = 5; -pub const ppc_mc_exc_t_Sim_PPC_Data_Cache_Parity: ppc_mc_exc_t = 6; -pub const ppc_mc_exc_t_Sim_PPC_L2_Data_Parity: ppc_mc_exc_t = 7; -pub const ppc_mc_exc_t_Sim_PPC_L3_Data_Parity: ppc_mc_exc_t = 8; -pub const ppc_mc_exc_t_Sim_PPC_L3_Address_Parity: ppc_mc_exc_t = 9; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Parity: ppc_mc_exc_t = 10; -pub const ppc_mc_exc_t_Sim_PPC970_Data_Cache_Tag_Parity: ppc_mc_exc_t = 11; -pub const ppc_mc_exc_t_Sim_PPC970_D_ERAT_Parity: ppc_mc_exc_t = 12; -pub const ppc_mc_exc_t_Sim_PPC970_TLB_Parity: ppc_mc_exc_t = 13; -pub const ppc_mc_exc_t_Sim_PPC970_SLB_Parity: ppc_mc_exc_t = 14; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Load_ECC_Parity: ppc_mc_exc_t = 15; -pub const ppc_mc_exc_t_Sim_PPC970_L2_Page_Table_ECC_Parity: ppc_mc_exc_t = 16; -pub const ppc_mc_exc_t_Sim_PPC970_Uncacheable_Load_Parity: ppc_mc_exc_t = 17; -pub const ppc_mc_exc_t_Sim_PPC970_MC_External: ppc_mc_exc_t = 18; -#[doc = " ppc_mc_exc_t"] -pub type ppc_mc_exc_t = ::std::os::raw::c_uint; -#[doc = " Normal load or store instructions"] -pub const ppc_mem_instr_origin_t_Normal_Load_Store: ppc_mem_instr_origin_t = 0; -#[doc = " No data touched by the load/store will be placed in cache"] -pub const ppc_mem_instr_origin_t_Caching_Inhibited: ppc_mem_instr_origin_t = 1; -#[doc = " load/store multiple"] -pub const ppc_mem_instr_origin_t_Instr_Multiple: ppc_mem_instr_origin_t = 2; -#[doc = " load/store string"] -pub const ppc_mem_instr_origin_t_Instr_String: ppc_mem_instr_origin_t = 3; -#[doc = " Altivec load/store element"] -pub const ppc_mem_instr_origin_t_Instr_Altivec_Element: ppc_mem_instr_origin_t = 4; -#[doc = " data cache block touch"] -pub const ppc_mem_instr_origin_t_Instr_dcbt: ppc_mem_instr_origin_t = 5; -#[doc = " data cache block store"] -pub const ppc_mem_instr_origin_t_Instr_dcbst: ppc_mem_instr_origin_t = 6; -#[doc = " data cache block touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dcbtst: ppc_mem_instr_origin_t = 7; -#[doc = " data cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_dcbi: ppc_mem_instr_origin_t = 8; -#[doc = " data cache block flush"] -pub const ppc_mem_instr_origin_t_Instr_dcbf: ppc_mem_instr_origin_t = 9; -#[doc = " data cache block flush local"] -pub const ppc_mem_instr_origin_t_Instr_dcbfl: ppc_mem_instr_origin_t = 10; -#[doc = " data cache block allocate"] -pub const ppc_mem_instr_origin_t_Instr_dcba: ppc_mem_instr_origin_t = 11; -#[doc = " data cache block to zero"] -pub const ppc_mem_instr_origin_t_Instr_dcbz: ppc_mem_instr_origin_t = 12; -#[doc = " instruction cache block invalidate"] -pub const ppc_mem_instr_origin_t_Instr_icbi: ppc_mem_instr_origin_t = 13; -#[doc = " data stream touch"] -pub const ppc_mem_instr_origin_t_Instr_dst: ppc_mem_instr_origin_t = 14; -#[doc = " data stream touch transient"] -pub const ppc_mem_instr_origin_t_Instr_dstt: ppc_mem_instr_origin_t = 15; -#[doc = " data stream touch for store"] -pub const ppc_mem_instr_origin_t_Instr_dstst: ppc_mem_instr_origin_t = 16; -#[doc = " data stream touch for store transient"] -pub const ppc_mem_instr_origin_t_Instr_dststt: ppc_mem_instr_origin_t = 17; -#[doc = " data cache block lock clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l1: ppc_mem_instr_origin_t = 18; -#[doc = " data cache block lock clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_l2: ppc_mem_instr_origin_t = 19; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l1: ppc_mem_instr_origin_t = 20; -#[doc = " data cache block touch and lock set (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_l2: ppc_mem_instr_origin_t = 21; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l1: ppc_mem_instr_origin_t = 22; -#[doc = " data cache block touch for store and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_l2: ppc_mem_instr_origin_t = 23; -#[doc = " instruction cache block clear (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l1: ppc_mem_instr_origin_t = 24; -#[doc = " instruction cache block clear (L2)"] -pub const ppc_mem_instr_origin_t_Instr_icblc_l2: ppc_mem_instr_origin_t = 25; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l1: ppc_mem_instr_origin_t = 26; -#[doc = " instruction cache block touch and lock\nset (L1)"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_l2: ppc_mem_instr_origin_t = 27; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lwarx: ppc_mem_instr_origin_t = 28; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stwcx: ppc_mem_instr_origin_t = 29; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ldarx: ppc_mem_instr_origin_t = 30; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stdcx: ppc_mem_instr_origin_t = 31; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_lq: ppc_mem_instr_origin_t = 32; -#[doc = " Other loads/stores or cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_stq: ppc_mem_instr_origin_t = 33; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_sync: ppc_mem_instr_origin_t = 34; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eieio: ppc_mem_instr_origin_t = 35; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_ecowx: ppc_mem_instr_origin_t = 36; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_eciwx: ppc_mem_instr_origin_t = 37; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbie: ppc_mem_instr_origin_t = 38; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_tlbsync: ppc_mem_instr_origin_t = 39; -#[doc = " Other cache affecting instructions"] -pub const ppc_mem_instr_origin_t_Instr_isync: ppc_mem_instr_origin_t = 40; -#[doc = " Load Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_lfdp: ppc_mem_instr_origin_t = 41; -#[doc = " Store Floating point Double Pair"] -pub const ppc_mem_instr_origin_t_Instr_stfdp: ppc_mem_instr_origin_t = 42; -pub const ppc_mem_instr_origin_t_Instr_spe: ppc_mem_instr_origin_t = 43; -#[doc = " Obsolete - use Instr_dcba."] -pub const ppc_mem_instr_origin_t_Instr_dcbal: ppc_mem_instr_origin_t = 44; -#[doc = " data cache block lock clear"] -pub const ppc_mem_instr_origin_t_Instr_dcblc_pc: ppc_mem_instr_origin_t = 45; -#[doc = " data cache block touch and lock set"] -pub const ppc_mem_instr_origin_t_Instr_dcbtls_pc: ppc_mem_instr_origin_t = 46; -#[doc = " data cache block touch for store and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_dcbtstls_pc: ppc_mem_instr_origin_t = 47; -#[doc = " instruction cache block clear"] -pub const ppc_mem_instr_origin_t_Instr_icblc_pc: ppc_mem_instr_origin_t = 48; -#[doc = " instruction cache block touch and lock\nset"] -pub const ppc_mem_instr_origin_t_Instr_icbtls_pc: ppc_mem_instr_origin_t = 49; -#[doc = " Load/store from FPU unit"] -pub const ppc_mem_instr_origin_t_Instr_Fpu: ppc_mem_instr_origin_t = 50; -#[doc = " "] -pub type ppc_mem_instr_origin_t = ::std::os::raw::c_uint; -pub const ppc_decoration_type_t_Decoration_None: ppc_decoration_type_t = 0; -pub const ppc_decoration_type_t_Decoration_Notify: ppc_decoration_type_t = 1; -pub const ppc_decoration_type_t_Decoration_Load: ppc_decoration_type_t = 2; -pub const ppc_decoration_type_t_Decoration_Store: ppc_decoration_type_t = 3; -#[doc = " "] -pub type ppc_decoration_type_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_decoration_t { - pub type_: ppc_decoration_type_t, - pub data: uint64, -} -#[test] -fn bindgen_test_layout_ppc_decoration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_decoration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_decoration_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ppc_decoration_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: processor_mode_t, - pub instr_origin: ppc_mem_instr_origin_t, - pub ea_origin: logical_address_t, - pub wimg: uint8, - pub alignment: uint8, - #[doc = " cache operations may flag this to cause prefetches to be no-ops"] - pub inhibit_exception: uint8, - #[doc = " External PID"] - pub external_pid: uint8, - #[doc = " Decorated storage"] - pub decoration: ppc_decoration_t, -} -#[test] -fn bindgen_test_layout_ppc_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instr_origin) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(instr_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_origin) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(ea_origin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wimg) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(wimg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alignment) as usize - ptr as usize }, - 121usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inhibit_exception) as usize - ptr as usize }, - 122usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(inhibit_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).external_pid) as usize - ptr as usize }, - 123usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(external_pid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decoration) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(ppc_memory_transaction), - "::", - stringify!(decoration) - ) - ); -} -impl Default for ppc_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n"] -pub type ppc_memory_transaction_t = ppc_memory_transaction; -extern "C" { - pub fn SIM_ppc_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut ppc_memory_transaction_t; -} -#[doc = " Not sleeping at all, this is the normal mode"] -pub const ppc_sleep_state_t_PPC_Sleep_Awake: ppc_sleep_state_t = 0; -#[doc = " Old version of power saving, the only level"] -pub const ppc_sleep_state_t_PPC_Sleep_MSR: ppc_sleep_state_t = 1; -#[doc = " Lowest level of power saving in new version"] -pub const ppc_sleep_state_t_PPC_Sleep_Doze: ppc_sleep_state_t = 2; -pub const ppc_sleep_state_t_PPC_Sleep_Nap: ppc_sleep_state_t = 3; -pub const ppc_sleep_state_t_PPC_Sleep_Sleep: ppc_sleep_state_t = 4; -#[doc = " Highest level"] -pub const ppc_sleep_state_t_PPC_Sleep_Rvwinkle: ppc_sleep_state_t = 5; -#[doc = " Wait instruction"] -pub const ppc_sleep_state_t_PPC_Sleep_Wait: ppc_sleep_state_t = 6; -#[doc = " Wait reservation"] -pub const ppc_sleep_state_t_PPC_Sleep_Waitrsv: ppc_sleep_state_t = 7; -pub type ppc_sleep_state_t = ::std::os::raw::c_uint; -#[doc = " "] -pub type ppc_spr_user_setter_func_t = gen_spr_user_setter_func_t; -#[doc = " "] -pub type ppc_spr_user_getter_func_t = gen_spr_user_getter_func_t; -#[doc = " "] -pub use self::gen_spr_access_type_t as ppc_spr_access_type_t; -#[doc = " "] -pub use self::gen_spr_ret_t as ppc_spr_ret_t; -pub type ppc_interface_t = ppc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ppc_interface { - pub clear_atomic_reservation_bit: - ::std::option::Option, - pub raise_machine_check_exception: - ::std::option::Option, - #[doc = " Timebase"] - pub get_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_timebase_enabled: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, enabled: ::std::os::raw::c_uint), - >, - #[doc = " Power mode"] - pub get_sleep_state: - ::std::option::Option ppc_sleep_state_t>, - pub set_sleep_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: ppc_sleep_state_t), - >, -} -#[test] -fn bindgen_test_layout_ppc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ppc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ppc_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).clear_atomic_reservation_bit) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(clear_atomic_reservation_bit) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).raise_machine_check_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(raise_machine_check_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_timebase_enabled) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_timebase_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_timebase_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_sleep_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(get_sleep_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sleep_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ppc_interface), - "::", - stringify!(set_sleep_state) - ) - ); -} -pub type spr_interface_t = spr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct spr_interface { - pub register_user_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - getter: gen_spr_user_getter_func_t, - user_getter_data: *mut lang_void, - setter: gen_spr_user_setter_func_t, - user_setter_data: *mut lang_void, - privilege_checks: ::std::os::raw::c_int, - ), - >, - pub unregister_user_handlers: - ::std::option::Option, - pub set_target_value: - ::std::option::Option, - pub stash_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64, value: uint64), - >, - pub fetch_value: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, spr_number: int64) -> uint64, - >, - pub default_getter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub default_setter: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: gen_spr_access_type_t, - ) -> gen_spr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_name: *const ::std::os::raw::c_char, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_spr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(spr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(spr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_user_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(register_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_user_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(unregister_user_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_target_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(set_target_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stash_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(stash_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fetch_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(fetch_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_getter) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_getter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).default_setter) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(default_setter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(spr_interface), - "::", - stringify!(get_number) - ) - ); -} -pub type pmr_interface_t = pmr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pmr_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - instruction_read: bool, - ) -> uint64, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pmr_number: ::std::os::raw::c_int, - value: uint64, - instruction_write: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_pmr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pmr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pmr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pmr_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct controllable_cache_t { - pub obj: *mut conf_object_t, - pub ifc: *const cache_control_interface_t, -} -#[test] -fn bindgen_test_layout_controllable_cache_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(controllable_cache_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(controllable_cache_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(controllable_cache_t), - "::", - stringify!(ifc) - ) - ); -} -impl Default for controllable_cache_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const riscv_cpu_mode_t_Riscv_Mode_User: riscv_cpu_mode_t = 0; -pub const riscv_cpu_mode_t_Riscv_Mode_Supervisor: riscv_cpu_mode_t = 1; -pub const riscv_cpu_mode_t_Riscv_Mode_Reserved: riscv_cpu_mode_t = 2; -pub const riscv_cpu_mode_t_Riscv_Mode_Machine: riscv_cpu_mode_t = 3; -#[doc = " "] -pub type riscv_cpu_mode_t = ::std::os::raw::c_uint; -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, - pub mode: riscv_cpu_mode_t, -} -#[test] -fn bindgen_test_layout_riscv_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(riscv_memory_transaction), - "::", - stringify!(mode) - ) - ); -} -impl Default for riscv_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \nriscv_memory_transaction_t\nriscv_memory_transaction_t\n\nriscv_memory_transaction_t\n\n\n\n\nThis is the RISC-V specific memory transaction data structure.\n\nThe s field contains generic information about memory operations\n(see generic_transaction_t).\n\nThe generic data is stored in the s field.\n\nThe mode field specifies the processor mode the MMU should assume\nwhen processing the transaction.\n\n\n\n\n\n"] -pub type riscv_memory_transaction_t = riscv_memory_transaction; -pub type riscv_coprocessor_interface_t = riscv_coprocessor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_coprocessor_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64) -> uint64, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, number: uint64, value: uint64), - >, -} -#[test] -fn bindgen_test_layout_riscv_coprocessor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_coprocessor_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_coprocessor_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const riscv_imsic_file_id_t_Riscv_Imsic_Machine_File: riscv_imsic_file_id_t = -1; -pub const riscv_imsic_file_id_t_Riscv_Imsic_Supervisor_File: riscv_imsic_file_id_t = 0; -#[doc = " \nriscv_imsic_file_id_t\nriscv_imsic_file_id_t\n\nriscv_imsic_file_id_t\n\n\n\n\nType used with the internal interface riscv_imsic_interface_t.\n\n\n\n\n\n"] -pub type riscv_imsic_file_id_t = ::std::os::raw::c_int; -pub type riscv_imsic_interface_t = riscv_imsic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_imsic_interface { - #[doc = " GEILEN"] - pub num_guest_files: - ::std::option::Option uint32>, - #[doc = " id is either one of the standard files, machine or supervisor,\n or one of the guest files (vgein)."] - pub read_irq_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - offset: uint32, - ) -> uint64, - >, - pub read_and_write_irq_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - offset: uint32, - new_value: uint64, - mask: uint64, - ) -> uint64, - >, - pub read_xtopei: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: riscv_imsic_file_id_t) -> uint64, - >, - pub read_and_write_xtopei: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: riscv_imsic_file_id_t, - value: uint64, - mask: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_riscv_imsic_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(riscv_imsic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_imsic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_guest_files) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(num_guest_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_irq_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_irq_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_and_write_irq_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_and_write_irq_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_xtopei) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_xtopei) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_and_write_xtopei) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(riscv_imsic_interface), - "::", - stringify!(read_and_write_xtopei) - ) - ); -} -pub const riscv_vectoring_mode_t_Riscv_Non_Vectoring: riscv_vectoring_mode_t = 0; -pub const riscv_vectoring_mode_t_Riscv_Selective_Hardware_Vectoring: riscv_vectoring_mode_t = 1; -#[doc = " ADD INTERFACE riscv_imsic_interface"] -pub type riscv_vectoring_mode_t = ::std::os::raw::c_uint; -pub type riscv_clic_interrupt_interface_t = riscv_clic_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interrupt_interface { - pub set_active_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - level: uint64, - vect_mode: riscv_vectoring_mode_t, - cpu_mode: riscv_cpu_mode_t, - ), - >, - pub clear_interrupt: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_active_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(set_active_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interrupt_interface), - "::", - stringify!(clear_interrupt) - ) - ); -} -pub type riscv_clic_interface_t = riscv_clic_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct riscv_clic_interface { - pub acknowledge_interrupt: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_riscv_clic_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(riscv_clic_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(riscv_clic_interface), - "::", - stringify!(acknowledge_interrupt) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_riscv_wg_wid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_riscv_wg_wid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_riscv_wg_wid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_riscv_wg_wid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_riscv_wg_wid), - "::", - stringify!(dummy) - ) - ); -} -pub type sh_interrupt_interface_t = sh_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sh_interrupt_interface { - pub change_pending: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - intevt: uint32, - mod_imask_flag: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_sh_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sh_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).change_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sh_interrupt_interface), - "::", - stringify!(change_pending) - ) - ); -} -#[doc = " "] -pub type cbdata_t = cbdata; -#[doc = " "] -pub type cbdata_register_t = cbdata_t; -#[doc = " "] -pub type cbdata_call_t = cbdata_t; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata_type_t { - pub name: *const ::std::os::raw::c_char, - pub dealloc: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cbdata_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dealloc) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata_type_t), - "::", - stringify!(dealloc) - ) - ); -} -impl Default for cbdata_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cbdata { - pub type_: *const cbdata_type_t, - pub data: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_cbdata() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cbdata)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cbdata)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cbdata), - "::", - stringify!(data) - ) - ); -} -impl Default for cbdata { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_make_python_cbdata(cbd: cbdata_t) -> *mut _object; -} -extern "C" { - pub fn VT_make_cbdata_from_python(pyobj: *mut _object) -> cbdata_t; -} -pub type sparc_v8_interface_t = sparc_v8_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_interface { - pub read_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub write_window_register: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - window: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint64, - ), - >, - pub power_down: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sparc_v8_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_window_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(read_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_window_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(write_window_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_down) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_interface), - "::", - stringify!(power_down) - ) - ); -} -pub type sparc_v8_ecc_fault_injection_interface_t = sparc_v8_ecc_fault_injection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sparc_v8_ecc_fault_injection_interface { - pub inject_instr_access_exception: - ::std::option::Option, - pub inject_data_access_exception: - ::std::option::Option, - pub inject_reg_access_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sparc_v8_ecc_fault_injection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(sparc_v8_ecc_fault_injection_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_instr_access_exception) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_instr_access_exception) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).inject_data_access_exception) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_data_access_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_reg_access_error) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(sparc_v8_ecc_fault_injection_interface), - "::", - stringify!(inject_reg_access_error) - ) - ); -} -pub const x86_access_type_X86_Other: x86_access_type = 0; -pub const x86_access_type_X86_Vanilla: x86_access_type = 1; -pub const x86_access_type_X86_Instruction: x86_access_type = 2; -pub const x86_access_type_X86_Clflush: x86_access_type = 3; -pub const x86_access_type_X86_Fpu_Env: x86_access_type = 4; -pub const x86_access_type_X86_Fpu_State: x86_access_type = 5; -pub const x86_access_type_X86_Idt: x86_access_type = 6; -pub const x86_access_type_X86_Gdt: x86_access_type = 7; -pub const x86_access_type_X86_Ldt: x86_access_type = 8; -pub const x86_access_type_X86_Task_Segment: x86_access_type = 9; -pub const x86_access_type_X86_Task_Switch: x86_access_type = 10; -pub const x86_access_type_X86_Far_Call_Parameter: x86_access_type = 11; -pub const x86_access_type_X86_Stack: x86_access_type = 12; -pub const x86_access_type_X86_Pml4: x86_access_type = 13; -pub const x86_access_type_X86_Pdp: x86_access_type = 14; -pub const x86_access_type_X86_Pd: x86_access_type = 15; -pub const x86_access_type_X86_Pt: x86_access_type = 16; -pub const x86_access_type_X86_Sse: x86_access_type = 17; -pub const x86_access_type_X86_Fpu: x86_access_type = 18; -pub const x86_access_type_X86_Access_Simple: x86_access_type = 19; -pub const x86_access_type_X86_Microcode_Update: x86_access_type = 20; -pub const x86_access_type_X86_Non_Temporal: x86_access_type = 21; -pub const x86_access_type_X86_Prefetch_3DNow: x86_access_type = 22; -pub const x86_access_type_X86_Prefetchw_3DNow: x86_access_type = 23; -pub const x86_access_type_X86_Prefetch_T0: x86_access_type = 24; -pub const x86_access_type_X86_Prefetch_T1: x86_access_type = 25; -pub const x86_access_type_X86_Prefetch_T2: x86_access_type = 26; -pub const x86_access_type_X86_Prefetch_NTA: x86_access_type = 27; -pub const x86_access_type_X86_Loadall: x86_access_type = 28; -pub const x86_access_type_X86_Atomic_Info: x86_access_type = 29; -pub const x86_access_type_X86_Cmpxchg16b: x86_access_type = 30; -pub const x86_access_type_X86_Smm_State: x86_access_type = 31; -pub const x86_access_type_X86_Vmcs: x86_access_type = 32; -pub const x86_access_type_X86_Vmx_IO_Bitmap: x86_access_type = 33; -pub const x86_access_type_X86_Vmx_Vapic: x86_access_type = 34; -pub const x86_access_type_X86_Vmx_Msr: x86_access_type = 35; -pub const x86_access_type_X86_Vmx_Msr_Bitmaps: x86_access_type = 36; -pub const x86_access_type_X86_Pml4e: x86_access_type = 37; -pub const x86_access_type_X86_Pdpte: x86_access_type = 38; -pub const x86_access_type_X86_Pde: x86_access_type = 39; -pub const x86_access_type_X86_Pte: x86_access_type = 40; -pub const x86_access_type_X86_Invept_Descriptor: x86_access_type = 41; -pub const x86_access_type_X86_Shadow_Stack: x86_access_type = 42; -pub const x86_access_type_X86_Invvpid_Descriptor: x86_access_type = 43; -pub const x86_access_type_X86_Processor_Trace: x86_access_type = 44; -pub const x86_access_type_X86_Pml5: x86_access_type = 45; -pub const x86_access_type_X86_Pml5e: x86_access_type = 46; -pub const x86_access_type_X86_Pdp_Pae: x86_access_type = 47; -pub const x86_access_type_X86_Vmx_EPTP_List: x86_access_type = 48; -pub const x86_access_type_X86_Vmx_VE_Info: x86_access_type = 49; -pub const x86_access_type_X86_Sppt: x86_access_type = 50; -pub const x86_access_type_X86_Pml_Log: x86_access_type = 51; -pub const x86_access_type_X86_Pebs: x86_access_type = 52; -pub const x86_access_type_X86_Vmx_Pasid_Translation: x86_access_type = 53; -pub const x86_access_type_X86_Stack_Explicit: x86_access_type = 54; -pub const x86_access_type_X86_Mtt_Metadata: x86_access_type = 55; -pub const x86_access_type_X86_Prefetch_Other: x86_access_type = 56; -pub const x86_access_type_X86_Access_Type_Last: x86_access_type = 57; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub type x86_access_type = ::std::os::raw::c_uint; -#[doc = " \nSee online help for expanded output of this type:\napi-help x86_access_type_t\n"] -pub use self::x86_access_type as x86_access_type_t; -pub type x86_access_type_interface_t = x86_access_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_access_type_interface { - pub get_enum_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_short_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - at: x86_access_type_t, - ) -> *const ::std::os::raw::c_char, - >, - pub implicit: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, at: x86_access_type_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_x86_access_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_access_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enum_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_enum_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_short_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_short_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(get_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).implicit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_access_type_interface), - "::", - stringify!(implicit) - ) - ); -} -pub const x86_memory_type_t_X86_None: x86_memory_type_t = 0; -#[doc = " UC"] -pub const x86_memory_type_t_X86_Strong_Uncacheable: x86_memory_type_t = 1; -#[doc = " UC-"] -pub const x86_memory_type_t_X86_Uncacheable: x86_memory_type_t = 2; -#[doc = " WC"] -pub const x86_memory_type_t_X86_Write_Combining: x86_memory_type_t = 3; -#[doc = " WT"] -pub const x86_memory_type_t_X86_Write_Through: x86_memory_type_t = 4; -#[doc = " WB"] -pub const x86_memory_type_t_X86_Write_Back: x86_memory_type_t = 5; -#[doc = " WP"] -pub const x86_memory_type_t_X86_Write_Protected: x86_memory_type_t = 6; -#[doc = " "] -pub type x86_memory_type_t = ::std::os::raw::c_uint; -pub const x86_sync_instruction_type_t_X86_SFence: x86_sync_instruction_type_t = 1; -pub const x86_sync_instruction_type_t_X86_LFence: x86_sync_instruction_type_t = 2; -pub const x86_sync_instruction_type_t_X86_MFence: x86_sync_instruction_type_t = 3; -#[doc = " "] -pub type x86_sync_instruction_type_t = ::std::os::raw::c_uint; -pub const x86_register_id_t_X86_Reg_Id_Rax: x86_register_id_t = 0; -pub const x86_register_id_t_X86_Reg_Id_Rcx: x86_register_id_t = 1; -pub const x86_register_id_t_X86_Reg_Id_Rdx: x86_register_id_t = 2; -pub const x86_register_id_t_X86_Reg_Id_Rbx: x86_register_id_t = 3; -pub const x86_register_id_t_X86_Reg_Id_Rsp: x86_register_id_t = 4; -pub const x86_register_id_t_X86_Reg_Id_Rbp: x86_register_id_t = 5; -pub const x86_register_id_t_X86_Reg_Id_Rsi: x86_register_id_t = 6; -pub const x86_register_id_t_X86_Reg_Id_Rdi: x86_register_id_t = 7; -pub const x86_register_id_t_X86_Reg_Id_R8: x86_register_id_t = 8; -pub const x86_register_id_t_X86_Reg_Id_R9: x86_register_id_t = 9; -pub const x86_register_id_t_X86_Reg_Id_R10: x86_register_id_t = 10; -pub const x86_register_id_t_X86_Reg_Id_R11: x86_register_id_t = 11; -pub const x86_register_id_t_X86_Reg_Id_R12: x86_register_id_t = 12; -pub const x86_register_id_t_X86_Reg_Id_R13: x86_register_id_t = 13; -pub const x86_register_id_t_X86_Reg_Id_R14: x86_register_id_t = 14; -pub const x86_register_id_t_X86_Reg_Id_R15: x86_register_id_t = 15; -pub const x86_register_id_t_X86_Reg_Id_Xmm0: x86_register_id_t = 16; -pub const x86_register_id_t_X86_Reg_Id_Xmm1: x86_register_id_t = 17; -pub const x86_register_id_t_X86_Reg_Id_Xmm2: x86_register_id_t = 18; -pub const x86_register_id_t_X86_Reg_Id_Xmm3: x86_register_id_t = 19; -pub const x86_register_id_t_X86_Reg_Id_Xmm4: x86_register_id_t = 20; -pub const x86_register_id_t_X86_Reg_Id_Xmm5: x86_register_id_t = 21; -pub const x86_register_id_t_X86_Reg_Id_Xmm6: x86_register_id_t = 22; -pub const x86_register_id_t_X86_Reg_Id_Xmm7: x86_register_id_t = 23; -pub const x86_register_id_t_X86_Reg_Id_Xmm8: x86_register_id_t = 24; -pub const x86_register_id_t_X86_Reg_Id_Xmm9: x86_register_id_t = 25; -pub const x86_register_id_t_X86_Reg_Id_Xmm10: x86_register_id_t = 26; -pub const x86_register_id_t_X86_Reg_Id_Xmm11: x86_register_id_t = 27; -pub const x86_register_id_t_X86_Reg_Id_Xmm12: x86_register_id_t = 28; -pub const x86_register_id_t_X86_Reg_Id_Xmm13: x86_register_id_t = 29; -pub const x86_register_id_t_X86_Reg_Id_Xmm14: x86_register_id_t = 30; -pub const x86_register_id_t_X86_Reg_Id_Xmm15: x86_register_id_t = 31; -pub const x86_register_id_t_X86_Reg_Id_Mm0: x86_register_id_t = 32; -pub const x86_register_id_t_X86_Reg_Id_Mm1: x86_register_id_t = 33; -pub const x86_register_id_t_X86_Reg_Id_Mm2: x86_register_id_t = 34; -pub const x86_register_id_t_X86_Reg_Id_Mm3: x86_register_id_t = 35; -pub const x86_register_id_t_X86_Reg_Id_Mm4: x86_register_id_t = 36; -pub const x86_register_id_t_X86_Reg_Id_Mm5: x86_register_id_t = 37; -pub const x86_register_id_t_X86_Reg_Id_Mm6: x86_register_id_t = 38; -pub const x86_register_id_t_X86_Reg_Id_Mm7: x86_register_id_t = 39; -#[doc = " this is RIP"] -pub const x86_register_id_t_X86_Reg_Id_PC: x86_register_id_t = 40; -#[doc = " integer condition code flags"] -pub const x86_register_id_t_X86_Reg_Id_CF: x86_register_id_t = 41; -#[doc = " DST field used to cache PF flag"] -pub const x86_register_id_t_X86_Reg_Id_DST: x86_register_id_t = 42; -pub const x86_register_id_t_X86_Reg_Id_AF: x86_register_id_t = 43; -pub const x86_register_id_t_X86_Reg_Id_ZF: x86_register_id_t = 44; -pub const x86_register_id_t_X86_Reg_Id_SF: x86_register_id_t = 45; -pub const x86_register_id_t_X86_Reg_Id_OF: x86_register_id_t = 46; -pub const x86_register_id_t_X86_Reg_Id_DF: x86_register_id_t = 47; -#[doc = " the whole 32 bits eflags"] -pub const x86_register_id_t_X86_Reg_Id_EFLAGS: x86_register_id_t = 48; -#[doc = " floating point cc flags"] -pub const x86_register_id_t_X86_Reg_Id_C0: x86_register_id_t = 49; -pub const x86_register_id_t_X86_Reg_Id_C1: x86_register_id_t = 50; -pub const x86_register_id_t_X86_Reg_Id_C2: x86_register_id_t = 51; -pub const x86_register_id_t_X86_Reg_Id_C3: x86_register_id_t = 52; -#[doc = " floating point stack top"] -pub const x86_register_id_t_X86_Reg_Id_Top: x86_register_id_t = 53; -#[doc = " dummy number that can be used"] -pub const x86_register_id_t_X86_Reg_Id_Not_Used: x86_register_id_t = 54; -#[doc = " keep this one last"] -pub const x86_register_id_t_X86_Reg_Id_Local_Max: x86_register_id_t = 55; -#[doc = " x86_register_id_t\n"] -pub type x86_register_id_t = ::std::os::raw::c_uint; -pub const x86_memory_or_io_t_X86_Memory: x86_memory_or_io_t = 0; -pub const x86_memory_or_io_t_X86_IO: x86_memory_or_io_t = 1; -#[doc = " "] -pub type x86_memory_or_io_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_transaction { - #[doc = " Superclass"] - pub s: generic_transaction_t, - pub linear_address: linear_address_t, - pub guest_physical_address: physical_address_t, - #[doc = " segment number"] - pub segnum: uint16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub mode: processor_mode_t, - pub access_type: x86_access_type_t, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub effective_type: x86_memory_type_t, - #[doc = " used for -stall"] - pub sequence_number: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_x86_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_address) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(guest_physical_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segnum) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(segnum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mode) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).effective_type) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(effective_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sequence_number) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_transaction), - "::", - stringify!(sequence_number) - ) - ); -} -impl Default for x86_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -impl x86_memory_transaction { - #[inline] - pub fn access_linear(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } - } - #[inline] - pub fn set_access_linear(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 1u8, val as u64) - } - } - #[inline] - pub fn io(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } - } - #[inline] - pub fn set_io(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(1usize, 1u8, val as u64) - } - } - #[inline] - pub fn fault_as_if_write(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) } - } - #[inline] - pub fn set_fault_as_if_write(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(2usize, 1u8, val as u64) - } - } - #[inline] - pub fn guest_phys_valid(&self) -> uint16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) } - } - #[inline] - pub fn set_guest_phys_valid(&mut self, val: uint16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 1u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - access_linear: uint16, - io: uint16, - fault_as_if_write: uint16, - guest_phys_valid: uint16, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 1u8, { - let access_linear: u16 = unsafe { ::std::mem::transmute(access_linear) }; - access_linear as u64 - }); - __bindgen_bitfield_unit.set(1usize, 1u8, { - let io: u16 = unsafe { ::std::mem::transmute(io) }; - io as u64 - }); - __bindgen_bitfield_unit.set(2usize, 1u8, { - let fault_as_if_write: u16 = unsafe { ::std::mem::transmute(fault_as_if_write) }; - fault_as_if_write as u64 - }); - __bindgen_bitfield_unit.set(3usize, 1u8, { - let guest_phys_valid: u16 = unsafe { ::std::mem::transmute(guest_phys_valid) }; - guest_phys_valid as u64 - }); - __bindgen_bitfield_unit - } -} -#[doc = " \n\n"] -pub type x86_memory_transaction_t = x86_memory_transaction; -extern "C" { - #[doc = " JDOCU INSERT-UNTIL x86_memory_transaction_t"] - pub fn SIM_x86_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut x86_memory_transaction_t; -} -#[doc = " old alias for compatibility, deprecated"] -pub type p2_memory_transaction_t = x86_memory_transaction; -#[doc = " \nThe x86 tlb interface is used for communication between an x86 cpu\nand its TLB. The TLB is implemented as a separate class for greater\nflexibility. The TLB object does no memory operations itself.\n\ntagged_physical_address_t\n\n\nAll functions in the interface get the object implementing\nthe interface as their first parameter.\n\nflush_all is called when all TLB entries should be\nflushed. If keep_global_entries is set, then TLB entries\nwith their global bit set should not be flushed.\n\nflush_page is invoked when pages containing laddr are\nto be removed from the TLB.\n\nlookup is used by the CPU when a memory access misses the\nSTC. It must return true (non-zero) if and only if the memory\noperation specified by mem_tr hits the TLB and does not\nraise an exception. The mode, linear_address are valid when\nthe method is invoked. The other fields passed through mem_tr\nare undefined. If the method returns true, the\ns.physical_address, pat_type, and mtrr_type\nfields of mem_tr must be updated by lookup.\n\nAn access that misses in lookup but does not raise a fault\nis inserted into the TLB with add. The page_size\nencoding is 0 for 4 kb pages, 1 for 2 Mb pages, and 2 for 4 Mb\npages.\n\nitlb_lookup is a simplified version of lookup used\nonly for instruction TLB lookups. If the lookup is successful\nvalid and paddr should be set, otherwise valid\nshould be cleared.\n\nset_pae_mode is invoked when the cpu changes the\nPAE enable bit.\n\nIt class implementing the interface must make sure that only\naddresses mapped in the TLB are present in the STCs.\n\nThis interface may be changed or replaced with an architecture\nindependent interface in future versions of Simics.\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_physical_address_t { - pub valid: ::std::os::raw::c_int, - pub paddr: physical_address_t, -} -#[test] -fn bindgen_test_layout_tagged_physical_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_physical_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).paddr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_physical_address_t), - "::", - stringify!(paddr) - ) - ); -} -pub type x86_tlb_interface_t = x86_tlb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> ::std::os::raw::c_int, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mode: processor_mode_t, - read_or_write: read_or_write_t, - data_or_instr: data_or_instr_t, - global_page: ::std::os::raw::c_int, - pat_type: x86_memory_type_t, - mtrr_type: x86_memory_type_t, - laddr: linear_address_t, - paddr: physical_address_t, - page_size: ::std::os::raw::c_int, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub set_pae_mode: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_tlb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pae_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_interface), - "::", - stringify!(set_pae_mode) - ) - ); -} -#[doc = " ADD INTERFACE x86_tlb_interface"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_t { - pub supervisor_access: access_t, - pub user_access: access_t, - pub global_page: bool, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supervisor_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(supervisor_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_access) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(user_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).global_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(global_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_tlb_v2_interface_t = x86_tlb_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v2_interface { - pub flush_all: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, keep_global_entries: ::std::os::raw::c_int), - >, - pub flush_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, laddr: linear_address_t), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_t, - ), - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_all) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_page) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(flush_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v2_interface), - "::", - stringify!(itlb_lookup) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_attrs_v3_t { - pub pte_attrs: uint64, - pub pat_type: x86_memory_type_t, - pub mtrr_type: x86_memory_type_t, - pub page_size_k: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_x86_tlb_attrs_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_attrs_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pte_attrs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pte_attrs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pat_type) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(pat_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtrr_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(mtrr_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_size_k) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_attrs_v3_t), - "::", - stringify!(page_size_k) - ) - ); -} -impl Default for x86_tlb_attrs_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_entry_v3_t { - pub linear_page_start: linear_address_t, - pub physical_page_start: physical_address_t, - pub attrs: x86_tlb_attrs_v3_t, -} -#[test] -fn bindgen_test_layout_x86_tlb_entry_v3_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_entry_v3_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_page_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(linear_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_page_start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(physical_page_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_entry_v3_t), - "::", - stringify!(attrs) - ) - ); -} -impl Default for x86_tlb_entry_v3_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Page: x86_tlb_inv_t = 0; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space: x86_tlb_inv_t = 4; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_Address_Space_NonGlobal: x86_tlb_inv_t = 1; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All: x86_tlb_inv_t = 2; -pub const x86_tlb_inv_t_X86_Tlb_Invalidate_All_NonGlobal: x86_tlb_inv_t = 3; -#[doc = " "] -pub type x86_tlb_inv_t = ::std::os::raw::c_uint; -pub type x86_tlb_v3_interface_t = x86_tlb_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_tlb_v3_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - paddr: physical_address_t, - attrs: x86_tlb_attrs_v3_t, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - mem_tr: *mut x86_memory_transaction_t, - ) -> *const x86_tlb_entry_v3_t, - >, - pub itlb_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - hint: uint64, - laddr: linear_address_t, - mode: processor_mode_t, - ) -> tagged_physical_address_t, - >, - pub invalidate_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, hint: uint64, laddr: linear_address_t), - >, - pub invalidate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: uint32, - hint: uint64, - la: linear_address_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_tlb_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_tlb_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).itlb_lookup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(itlb_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_page) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_tlb_v3_interface), - "::", - stringify!(invalidate) - ) - ); -} -pub const x86_pin_t_Pin_Init: x86_pin_t = 0; -pub const x86_pin_t_Pin_Smi: x86_pin_t = 1; -pub const x86_pin_t_Pin_Nmi: x86_pin_t = 2; -pub const x86_pin_t_Pin_Ignne: x86_pin_t = 3; -pub const x86_pin_t_Pin_Mcerr: x86_pin_t = 4; -pub const x86_pin_t_Pin_Cmci: x86_pin_t = 5; -#[doc = " "] -pub type x86_pin_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tagged_linear_address_t { - pub valid: bool, - pub addr: linear_address_t, -} -#[test] -fn bindgen_test_layout_tagged_linear_address_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tagged_linear_address_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tagged_linear_address_t), - "::", - stringify!(addr) - ) - ); -} -pub type x86_interface_t = x86_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_interface { - pub set_pin_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pin: x86_pin_t, - status: ::std::os::raw::c_int, - ), - >, - pub start_up: - ::std::option::Option, - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - data: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub uninterrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - ), - >, - pub has_pending_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub has_waiting_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub logical_to_linear: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - segment: ::std::os::raw::c_int, - addr: logical_address_t, - ) -> tagged_linear_address_t, - >, - pub linear_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - d_or_i: data_or_instr_t, - addr: linear_address_t, - ) -> physical_address_t, - >, - pub enter_acpi_c2_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(x86_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pin_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(set_pin_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_up) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(start_up) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).uninterrupt) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(uninterrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_pending_interrupt) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_pending_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_waiting_interrupt) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(has_waiting_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_linear) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(logical_to_linear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_to_physical) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(linear_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter_acpi_c2_state) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_interface), - "::", - stringify!(enter_acpi_c2_state) - ) - ); -} -#[doc = " ADD INTERFACE x86_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_ret_t { - pub taken: ::std::os::raw::c_int, - pub out_a: uint64, - pub out_b: uint64, - pub out_c: uint64, - pub out_d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(taken) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_a) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_b) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_c) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out_d) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cpuid_ret_t), - "::", - stringify!(out_d) - ) - ); -} -pub type x86_cpuid_interface_t = x86_cpuid_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_interface { - pub cpuid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - in_eax: uint32, - in_ebx: uint32, - in_ecx: uint32, - in_edx: uint32, - ) -> cpuid_ret_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_interface), - "::", - stringify!(cpuid) - ) - ); -} -#[doc = " ADD INTERFACE x86_cpuid_interface"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpuid_value_t { - pub a: uint64, - pub b: uint64, - pub c: uint64, - pub d: uint64, -} -#[test] -fn bindgen_test_layout_cpuid_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(cpuid_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpuid_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(a) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(b) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(c) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cpuid_value_t), - "::", - stringify!(d) - ) - ); -} -pub type x86_cpuid_query_interface_t = x86_cpuid_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cpuid_query_interface { - pub cpuid_query: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - leaf: uint32, - subleaf: uint32, - ) -> cpuid_value_t, - >, -} -#[test] -fn bindgen_test_layout_x86_cpuid_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cpuid_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpuid_query) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cpuid_query_interface), - "::", - stringify!(cpuid_query) - ) - ); -} -pub const local_apic_interrupt_t_Apic_CMCI: local_apic_interrupt_t = 752; -pub const local_apic_interrupt_t_Apic_Performance_Counter: local_apic_interrupt_t = 832; -pub const local_apic_interrupt_t_Apic_Thermal_Sensor: local_apic_interrupt_t = 816; -#[doc = " "] -pub type local_apic_interrupt_t = ::std::os::raw::c_uint; -pub type apic_cpu_interface_t = apic_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_cpu_interface { - pub tpr_r: ::std::option::Option uint64>, - pub tpr_w: ::std::option::Option, - pub local_int: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, int_type: local_apic_interrupt_t), - >, - pub power_on: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bsp: bool, apic_id: ::std::os::raw::c_int), - >, - pub init: ::std::option::Option, - pub enabled_r: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_apic_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_r) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_r) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tpr_w) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(tpr_w) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_int) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(local_int) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).power_on) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(power_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled_r) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(apic_cpu_interface), - "::", - stringify!(enabled_r) - ) - ); -} -pub type a20_interface_t = a20_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct a20_interface { - pub set_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub get_a20_line: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_a20_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(a20_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(a20_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_a20_line) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(set_a20_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_a20_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(a20_interface), - "::", - stringify!(get_a20_line) - ) - ); -} -#[doc = " Access from a rdmsr/wrmsr instruction"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Instruction_Access: x86_msr_access_type_t = 0; -#[doc = " Access through attribute"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Attribute_Access: x86_msr_access_type_t = 1; -#[doc = " Access through int_register interface"] -pub const x86_msr_access_type_t_Sim_X86_Msr_Int_Register_Access: x86_msr_access_type_t = 2; -#[doc = " Access during VMX entry/exit"] -pub const x86_msr_access_type_t_Sim_X86_Msr_VMX_Access: x86_msr_access_type_t = 3; -#[doc = " Architectural access without side effects within the CPU model, only\nreads or writes the register value. However, if it is sent to the\nplatform as a non-inquiry access, that may cause side effects."] -pub const x86_msr_access_type_t_Sim_X86_Msr_Architectural_Access: x86_msr_access_type_t = 4; -#[doc = " "] -pub type x86_msr_access_type_t = ::std::os::raw::c_uint; -#[doc = " Access was OK"] -pub const x86_msr_ret_t_Sim_X86_Msr_Ok: x86_msr_ret_t = 0; -#[doc = " Raise #GP fault"] -pub const x86_msr_ret_t_Sim_X86_Msr_GP_Fault: x86_msr_ret_t = 1; -#[doc = " Pass on to next handler"] -pub const x86_msr_ret_t_Sim_X86_Msr_Not_Handled: x86_msr_ret_t = 2; -#[doc = " "] -pub type x86_msr_ret_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_getter_ret_t { - pub status: x86_msr_ret_t, - pub value: uint64, -} -#[test] -fn bindgen_test_layout_x86_msr_getter_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_getter_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_getter_ret_t), - "::", - stringify!(value) - ) - ); -} -impl Default for x86_msr_getter_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type x86_msr_getter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_getter_ret_t, ->; -#[doc = " "] -pub type x86_msr_setter_func_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - spr_number: int64, - value: uint64, - type_: x86_msr_access_type_t, - user_data: *mut lang_void, - ) -> x86_msr_ret_t, ->; -pub type x86_msr_interface_t = x86_msr_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_msr_interface { - pub register_handlers: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - getter: x86_msr_getter_func_t, - getter_data: *mut lang_void, - setter: x86_msr_setter_func_t, - setter_data: *mut lang_void, - name: *const ::std::os::raw::c_char, - ), - >, - pub unregister_handlers: - ::std::option::Option, - pub get: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - type_: x86_msr_access_type_t, - ) -> x86_msr_getter_ret_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - value: uint64, - type_: x86_msr_access_type_t, - ) -> x86_msr_ret_t, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - number: int64, - ) -> *const ::std::os::raw::c_char, - >, - pub get_number: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> int64, - >, - pub get_all_valid_numbers: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_x86_msr_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(x86_msr_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_msr_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_handlers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(register_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_handlers) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(unregister_handlers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_valid_numbers) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_msr_interface), - "::", - stringify!(get_all_valid_numbers) - ) - ); -} -pub type x86_cache_flush_interface_t = x86_cache_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cache_flush_interface { - pub flush: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t, writeback: bool), - >, -} -#[test] -fn bindgen_test_layout_x86_cache_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cache_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cache_flush_interface), - "::", - stringify!(flush) - ) - ); -} -#[doc = " Attribute format:\ntype bit 0..3\ns bit 4\ndpl bit 5..6\np bit 7\navl bit 12\nl bit 13\ndb bit 14\ng bit 15\ninvalid bit 16"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_reg_state_t { - pub gpr: [uint64; 16usize], - pub seg_sel: [uint16; 6usize], - pub tr_sel: uint16, - pub ldtr_sel: uint16, - pub seg_base: [uint64; 6usize], - pub tr_base: uint64, - pub ldtr_base: uint64, - pub seg_attr: [uint32; 6usize], - pub tr_attr: uint32, - pub ldtr_attr: uint32, - pub seg_limit: [uint32; 6usize], - pub tr_limit: uint32, - pub ldtr_limit: uint32, - pub cr0: uint64, - pub cr2: uint64, - pub cr3: uint64, - pub cr4: uint64, - pub cr8: uint64, - pub ia32_efer: uint64, - pub rip: uint64, - pub rflags: uint64, - pub dr: [uint64; 4usize], - pub dr6: uint64, - pub dr7: uint64, - pub smbase: uint32, - pub idtr_limit: uint16, - pub gdtr_limit: uint16, - pub idtr_base: uint64, - pub gdtr_base: uint64, - pub activity_hlt: bool, - pub io_instr_restart: bool, - pub block_nmi: bool, - pub vmx_mode: uint8, - pub ept_is_on: bool, - pub reserved: [bool; 3usize], - pub io_rip: uint64, - pub io_lin_addr: uint64, - pub io_instr_info: uint32, - pub reserved2: uint32, - #[doc = " MPX state"] - pub bndcfgs: uint64, - #[doc = " valid only if EPT is on"] - pub eptp: uint64, - pub pdpte: [uint64; 4usize], - pub ssp: uint64, - pub reserved3: [uint64; 6usize], -} -#[test] -fn bindgen_test_layout_smm_reg_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(smm_reg_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_sel) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_sel) as usize - ptr as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_sel) as usize - ptr as usize }, - 142usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_base) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_base) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_base) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_attr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_attr) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_attr) as usize - ptr as usize }, - 236usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seg_limit) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(seg_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tr_limit) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(tr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ldtr_limit) as usize - ptr as usize }, - 268usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ldtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr0) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr0) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr2) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr3) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr4) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cr8) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(cr8) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ia32_efer) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ia32_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rip) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rflags) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr6) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr6) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dr7) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(dr7) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smbase) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(smbase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_limit) as usize - ptr as usize }, - 388usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_limit) as usize - ptr as usize }, - 390usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_limit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).idtr_base) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(idtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gdtr_base) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(gdtr_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity_hlt) as usize - ptr as usize }, - 408usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(activity_hlt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_restart) as usize - ptr as usize }, - 409usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_restart) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_nmi) as usize - ptr as usize }, - 410usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(block_nmi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vmx_mode) as usize - ptr as usize }, - 411usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(vmx_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ept_is_on) as usize - ptr as usize }, - 412usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ept_is_on) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, - 413usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_rip) as usize - ptr as usize }, - 416usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_lin_addr) as usize - ptr as usize }, - 424usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_lin_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_instr_info) as usize - ptr as usize }, - 432usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(io_instr_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved2) as usize - ptr as usize }, - 436usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bndcfgs) as usize - ptr as usize }, - 440usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(bndcfgs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eptp) as usize - ptr as usize }, - 448usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(eptp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pdpte) as usize - ptr as usize }, - 456usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ssp) as usize - ptr as usize }, - 488usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(ssp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reserved3) as usize - ptr as usize }, - 496usize, - concat!( - "Offset of field: ", - stringify!(smm_reg_state_t), - "::", - stringify!(reserved3) - ) - ); -} -pub type x86_smm_state_interface_t = x86_smm_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_state_interface { - pub get_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *mut smm_reg_state_t), - >, - pub set_state: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, state: *const smm_reg_state_t), - >, - pub smram_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - ) -> uint64, - >, - pub smram_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - smram_offs: ::std::os::raw::c_uint, - len: ::std::os::raw::c_uint, - val: uint64, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(get_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).smram_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_state_interface), - "::", - stringify!(smram_write) - ) - ); -} -pub type x86_smm_interface_t = x86_smm_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_smm_interface { - pub save_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, - pub restore_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_x86_smm_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_smm_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_smm_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).restore_state) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_smm_interface), - "::", - stringify!(restore_state) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_xmode_info_t { - pub efer_lma: bool, - pub cs_l: bool, - pub cs_d: bool, - pub ss_b: bool, -} -#[test] -fn bindgen_test_layout_x86_xmode_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(x86_xmode_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).efer_lma) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(efer_lma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_l) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_l) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cs_d) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(cs_d) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_b) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(x86_xmode_info_t), - "::", - stringify!(ss_b) - ) - ); -} -#[doc = " x86_seg_reg_t describes a segment register and its hidden fields. If valid\nis false, the segment is unusable and attempts to use it will trigger a\nfault in non-64-bit mode. The meaning of each bit in attr is as follows:\ntype bit 0..3\nS bit 4\nDPL bit 5..6\nP bit 7\nL bit 13\nD/B bit 14\nG bit 15"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_seg_reg_t { - pub valid: bool, - pub sel: uint16, - pub base: uint64, - pub attr: uint32, - pub limit: uint32, -} -#[test] -fn bindgen_test_layout_x86_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sel) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(x86_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_system_seg_reg_t { - pub base: uint64, - pub limit: uint16, -} -#[test] -fn bindgen_test_layout_x86_system_seg_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_system_seg_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).limit) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_system_seg_reg_t), - "::", - stringify!(limit) - ) - ); -} -pub const x86_system_seg_t_X86_Gdtr: x86_system_seg_t = 0; -pub const x86_system_seg_t_X86_Idtr: x86_system_seg_t = 1; -pub type x86_system_seg_t = ::std::os::raw::c_uint; -pub const x86_cr_t_X86_Cr0: x86_cr_t = 0; -pub const x86_cr_t_X86_Cr2: x86_cr_t = 2; -pub const x86_cr_t_X86_Cr3: x86_cr_t = 3; -pub const x86_cr_t_X86_Cr4: x86_cr_t = 4; -pub const x86_cr_t_X86_Cr8: x86_cr_t = 8; -pub type x86_cr_t = ::std::os::raw::c_uint; -pub const x86_dr_t_X86_Dr0: x86_dr_t = 0; -pub const x86_dr_t_X86_Dr1: x86_dr_t = 1; -pub const x86_dr_t_X86_Dr2: x86_dr_t = 2; -pub const x86_dr_t_X86_Dr3: x86_dr_t = 3; -pub const x86_dr_t_X86_Dr6: x86_dr_t = 6; -pub const x86_dr_t_X86_Dr7: x86_dr_t = 7; -pub type x86_dr_t = ::std::os::raw::c_uint; -pub const x86_xcr_t_X86_Xcr0: x86_xcr_t = 0; -pub type x86_xcr_t = ::std::os::raw::c_uint; -pub const x86_activity_t_X86_Activity_Normal: x86_activity_t = 0; -pub const x86_activity_t_X86_Activity_Hlt: x86_activity_t = 1; -pub const x86_activity_t_X86_Activity_Shutdown: x86_activity_t = 2; -pub const x86_activity_t_X86_Activity_Wait_For_SIPI: x86_activity_t = 3; -pub const x86_activity_t_X86_Activity_Cx_State: x86_activity_t = 4; -pub const x86_activity_t_X86_Activity_MWait: x86_activity_t = 5; -pub const x86_activity_t_X86_Activity_Senter_Sleep_State: x86_activity_t = 6; -pub type x86_activity_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ymm_reg_t { - pub llo64: uint64, - pub lhi64: uint64, - pub hlo64: uint64, - pub hhi64: uint64, -} -#[test] -fn bindgen_test_layout_ymm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ymm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ymm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).llo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(llo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lhi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(lhi64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hlo64) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hlo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hhi64) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ymm_reg_t), - "::", - stringify!(hhi64) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xmm_reg_t { - pub lo64: uint64, - pub hi64: uint64, -} -#[test] -fn bindgen_test_layout_xmm_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xmm_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xmm_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo64) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(lo64) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi64) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xmm_reg_t), - "::", - stringify!(hi64) - ) - ); -} -pub const x86_exec_mode_t_X86_Exec_Mode_Real: x86_exec_mode_t = 0; -pub const x86_exec_mode_t_X86_Exec_Mode_V86: x86_exec_mode_t = 1; -pub const x86_exec_mode_t_X86_Exec_Mode_Prot: x86_exec_mode_t = 2; -pub const x86_exec_mode_t_X86_Exec_Mode_Compat: x86_exec_mode_t = 3; -pub const x86_exec_mode_t_X86_Exec_Mode_64: x86_exec_mode_t = 4; -#[doc = " "] -pub type x86_exec_mode_t = ::std::os::raw::c_uint; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_16: x86_detailed_exec_mode_t = 0; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Real_32: x86_detailed_exec_mode_t = 1; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_V86: x86_detailed_exec_mode_t = 2; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_16: x86_detailed_exec_mode_t = - 3; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_32: x86_detailed_exec_mode_t = - 4; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Protected_64: x86_detailed_exec_mode_t = - 5; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_16: - x86_detailed_exec_mode_t = 6; -pub const x86_detailed_exec_mode_t_X86_Detailed_Exec_Mode_Compatibility_32: - x86_detailed_exec_mode_t = 7; -#[doc = " "] -pub type x86_detailed_exec_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_monitor_info_t { - pub armed: bool, - pub address: uint64, - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_monitor_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_monitor_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).armed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(armed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_monitor_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_mwait_info_t { - pub extensions: uint64, - pub hints: uint64, -} -#[test] -fn bindgen_test_layout_x86_mwait_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_mwait_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).extensions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(extensions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hints) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_mwait_info_t), - "::", - stringify!(hints) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pending_debug_exc_t { - pub pending: bool, - pub pending_dr6: uint64, -} -#[test] -fn bindgen_test_layout_x86_pending_debug_exc_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pending_debug_exc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pending_dr6) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pending_debug_exc_t), - "::", - stringify!(pending_dr6) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_reg_t { - pub low: uint64, - pub high: uint16, -} -#[test] -fn bindgen_test_layout_x86_fpu_reg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_reg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).low) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(low) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).high) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_reg_t), - "::", - stringify!(high) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_fpu_env_t { - pub cw: uint16, - pub sw: uint16, - pub tag: uint16, - pub opc: uint16, - pub last_instr_ptr: uint64, - pub last_operand_ptr: uint64, - pub last_instr_sel: uint16, - pub last_operand_sel: uint16, - pub pad: uint32, -} -#[test] -fn bindgen_test_layout_x86_fpu_env_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_fpu_env_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cw) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(cw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sw) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(sw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tag) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(tag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opc) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(opc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_ptr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_ptr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_instr_sel) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_instr_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).last_operand_sel) as usize - ptr as usize }, - 26usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(last_operand_sel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(x86_fpu_env_t), - "::", - stringify!(pad) - ) - ); -} -pub const x86_seg_t_X86_Seg_ES: x86_seg_t = 0; -pub const x86_seg_t_X86_Seg_CS: x86_seg_t = 1; -pub const x86_seg_t_X86_Seg_SS: x86_seg_t = 2; -pub const x86_seg_t_X86_Seg_DS: x86_seg_t = 3; -pub const x86_seg_t_X86_Seg_FS: x86_seg_t = 4; -pub const x86_seg_t_X86_Seg_GS: x86_seg_t = 5; -pub const x86_seg_t_X86_Seg_LDTR: x86_seg_t = 6; -pub const x86_seg_t_X86_Seg_TR: x86_seg_t = 7; -pub const x86_seg_t_X86_Seg_None: x86_seg_t = 8; -#[doc = " "] -pub type x86_seg_t = ::std::os::raw::c_uint; -pub const x86_intstate_t_X86_Intstate_Not_Blocking: x86_intstate_t = 0; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Sti: x86_intstate_t = 1; -pub const x86_intstate_t_X86_Intstate_Blocking_INT_Mov_Ss: x86_intstate_t = 2; -pub const x86_intstate_t_X86_Intstate_Blocking_INIT: x86_intstate_t = 4; -pub const x86_intstate_t_X86_Intstate_Blocking_SMI: x86_intstate_t = 8; -pub const x86_intstate_t_X86_Intstate_Blocking_NMI: x86_intstate_t = 16; -pub type x86_intstate_t = ::std::os::raw::c_uint; -pub type x86_reg_access_interface_t = x86_reg_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_reg_access_interface { - pub get_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> uint64, - >, - pub set_gpr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint, val: uint64), - >, - pub get_rip: ::std::option::Option uint64>, - pub set_rip: ::std::option::Option, - pub get_rflags: ::std::option::Option uint64>, - pub set_rflags: - ::std::option::Option, - #[doc = " Possibly faster method for setting only cf,pf,af,zf,sf,of"] - pub set_status_flags: - ::std::option::Option, - #[doc = " Regular segment registers"] - pub get_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t) -> x86_seg_reg_t, - >, - pub set_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_seg_t, seg: x86_seg_reg_t), - >, - #[doc = " IDTR and GDTR"] - pub get_system_seg: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_system_seg_t) -> x86_system_seg_reg_t, - >, - pub set_system_seg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - n: x86_system_seg_t, - seg: x86_system_seg_reg_t, - ), - >, - #[doc = " Control registers"] - pub get_cr: - ::std::option::Option uint64>, - pub set_cr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_cr_t, val: uint64), - >, - pub get_efer: ::std::option::Option uint64>, - pub set_efer: - ::std::option::Option, - pub get_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t) -> uint64, - >, - pub set_xcr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_xcr_t, val: uint64), - >, - #[doc = " x87 FPU"] - pub get_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> x86_fpu_reg_t, - >, - pub set_freg: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - freg: x86_fpu_reg_t, - ), - >, - pub get_fpu_env: - ::std::option::Option x86_fpu_env_t>, - pub set_fpu_env: - ::std::option::Option, - #[doc = " SIMD"] - pub get_xmm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> xmm_reg_t, - >, - pub set_xmm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: xmm_reg_t, - ), - >, - pub get_ymm: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, index: ::std::os::raw::c_uint) -> ymm_reg_t, - >, - pub set_ymm: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - index: ::std::os::raw::c_uint, - val: ymm_reg_t, - ), - >, - pub get_mxcsr: ::std::option::Option uint32>, - pub set_mxcsr: - ::std::option::Option, - #[doc = " Debug registers"] - pub get_dr: - ::std::option::Option uint64>, - pub set_dr: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, n: x86_dr_t, val: uint64), - >, - #[doc = " SMM"] - pub get_in_smm: ::std::option::Option bool>, - pub set_in_smm: ::std::option::Option, - pub get_smm_base: - ::std::option::Option uint64>, - pub set_smm_base: - ::std::option::Option, - #[doc = " Monitor/Mwait"] - pub get_monitor_info: - ::std::option::Option x86_monitor_info_t>, - pub set_monitor_info: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_monitor_info_t), - >, - pub get_mwait_info: - ::std::option::Option x86_mwait_info_t>, - pub set_mwait_info: - ::std::option::Option, - #[doc = " Non-register state"] - pub get_activity_state: - ::std::option::Option x86_activity_t>, - pub set_activity_state: - ::std::option::Option, - pub get_interruptibility_state: - ::std::option::Option x86_intstate_t>, - pub set_interruptibility_state: - ::std::option::Option, - #[doc = " A debug exception is pending if triggered by the last instruction,\nbut not yet taken."] - pub get_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> x86_pending_debug_exc_t, - >, - pub set_pending_debug_exc: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, val: x86_pending_debug_exc_t), - >, - #[doc = " Derived state for fast/easy access"] - pub get_xmode_info: - ::std::option::Option x86_xmode_info_t>, - pub get_exec_mode: - ::std::option::Option x86_exec_mode_t>, - #[doc = " This is configuration info. No need for a set method."] - pub get_mxcsr_mask: - ::std::option::Option uint32>, - #[doc = " Extension state dirty bit modification (for XSAVE)"] - pub get_ext_state_dirty_bits: - ::std::option::Option uint64>, - pub or_ext_state_dirty_bits: - ::std::option::Option, - pub and_ext_state_dirty_bits: - ::std::option::Option, - #[doc = " PDPTE registers used in PAE paging mode"] - pub get_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int) -> uint64, - >, - pub set_pdpte: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, num: ::std::os::raw::c_int, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_x86_reg_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 408usize, - concat!("Size of: ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_reg_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_gpr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_gpr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_gpr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rip) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rip) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rflags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rflags) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_rflags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_status_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_status_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_seg) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_seg) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_system_seg) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_system_seg) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_system_seg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cr) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cr) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_cr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_efer) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_efer) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_efer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xcr) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xcr) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xcr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_freg) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_freg) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_freg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_fpu_env) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_fpu_env) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_fpu_env) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmm) as usize - ptr as usize }, - 168usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_xmm) as usize - ptr as usize }, - 176usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_xmm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ymm) as usize - ptr as usize }, - 184usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ymm) as usize - ptr as usize }, - 192usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_ymm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr) as usize - ptr as usize }, - 200usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mxcsr) as usize - ptr as usize }, - 208usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mxcsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dr) as usize - ptr as usize }, - 216usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dr) as usize - ptr as usize }, - 224usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_dr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_in_smm) as usize - ptr as usize }, - 232usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_in_smm) as usize - ptr as usize }, - 240usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_in_smm) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_smm_base) as usize - ptr as usize }, - 248usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_smm_base) as usize - ptr as usize }, - 256usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_smm_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_monitor_info) as usize - ptr as usize }, - 264usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_monitor_info) as usize - ptr as usize }, - 272usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_monitor_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mwait_info) as usize - ptr as usize }, - 280usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mwait_info) as usize - ptr as usize }, - 288usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_mwait_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_activity_state) as usize - ptr as usize }, - 296usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_activity_state) as usize - ptr as usize }, - 304usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_activity_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_interruptibility_state) as usize - ptr as usize }, - 312usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_interruptibility_state) as usize - ptr as usize }, - 320usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_interruptibility_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pending_debug_exc) as usize - ptr as usize }, - 328usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pending_debug_exc) as usize - ptr as usize }, - 336usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pending_debug_exc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_xmode_info) as usize - ptr as usize }, - 344usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_xmode_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exec_mode) as usize - ptr as usize }, - 352usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_exec_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mxcsr_mask) as usize - ptr as usize }, - 360usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_mxcsr_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ext_state_dirty_bits) as usize - ptr as usize }, - 368usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).or_ext_state_dirty_bits) as usize - ptr as usize }, - 376usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(or_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).and_ext_state_dirty_bits) as usize - ptr as usize }, - 384usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(and_ext_state_dirty_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pdpte) as usize - ptr as usize }, - 392usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(get_pdpte) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pdpte) as usize - ptr as usize }, - 400usize, - concat!( - "Offset of field: ", - stringify!(x86_reg_access_interface), - "::", - stringify!(set_pdpte) - ) - ); -} -pub type x86_exception_interface_t = x86_exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_interface { - pub DE_fault: ::std::option::Option, - pub BR_fault: ::std::option::Option, - pub UD_fault: ::std::option::Option, - pub NM_fault: ::std::option::Option, - pub DF_abort: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, desc: *const ::std::os::raw::c_char), - >, - pub TS_fault: ::std::option::Option, - pub NP_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, sel_vec: uint16, is_vec: bool), - >, - pub SS_fault: ::std::option::Option, - pub GP_fault: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - sel_vec: uint16, - is_vec: bool, - desc: *const ::std::os::raw::c_char, - ), - >, - pub PF_fault: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, laddr: linear_address_t, ecode: uint32), - >, - pub MF_fault: ::std::option::Option, - pub AC_fault: ::std::option::Option, - pub XM_fault: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(x86_exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DE_fault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DE_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).BR_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(BR_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).UD_fault) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(UD_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NM_fault) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NM_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).DF_abort) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(DF_abort) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).TS_fault) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(TS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).NP_fault) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(NP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).SS_fault) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(SS_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GP_fault) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(GP_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).PF_fault) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(PF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).MF_fault) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(MF_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).AC_fault) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(AC_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).XM_fault) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_interface), - "::", - stringify!(XM_fault) - ) - ); -} -pub const x86_exception_source_t_X86_Exc_Hardware: x86_exception_source_t = 0; -pub const x86_exception_source_t_X86_Exc_Software: x86_exception_source_t = 1; -pub const x86_exception_source_t_X86_Exc_External: x86_exception_source_t = 2; -pub const x86_exception_source_t_X86_Exc_Software_Debug: x86_exception_source_t = 3; -pub const x86_exception_source_t_X86_Exc_Software_Priv: x86_exception_source_t = 4; -pub const x86_exception_source_t_X86_Exc_Triple_Fault: x86_exception_source_t = 5; -pub const x86_exception_source_t_X86_Exc_NMI: x86_exception_source_t = 6; -pub const x86_exception_source_t_X86_Exc_Other_Event: x86_exception_source_t = 7; -#[doc = " \nDefines different exception sources for a given exception/interrupt.\n"] -pub type x86_exception_source_t = ::std::os::raw::c_uint; -pub const x86_processor_mode_t_X86_Processor_Mode_Privileged: x86_processor_mode_t = 0; -pub const x86_processor_mode_t_X86_Processor_Mode_User: x86_processor_mode_t = 1; -pub const x86_processor_mode_t_X86_Processor_Mode_Current: x86_processor_mode_t = 2; -#[doc = " "] -pub type x86_processor_mode_t = ::std::os::raw::c_uint; -pub const x86_alignment_t_X86_Alignment_Not_Required: x86_alignment_t = 0; -pub const x86_alignment_t_X86_Alignment_Required: x86_alignment_t = 1; -#[doc = " "] -pub type x86_alignment_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_read_physical_ret_t { - pub value: uint64, - pub exception: exception_type_t, -} -#[test] -fn bindgen_test_layout_x86_read_physical_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_read_physical_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_read_physical_ret_t), - "::", - stringify!(exception) - ) - ); -} -impl Default for x86_read_physical_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type x86_memory_access_interface_t = x86_memory_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_access_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *mut ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - val: uint64, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - offs: logical_address_t, - seg: x86_seg_t, - len: ::std::os::raw::c_uint, - p: *const ::std::os::raw::c_void, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - alignment: x86_alignment_t, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_memory_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_access_interface), - "::", - stringify!(write_logical_buf) - ) - ); -} -pub type x86_memory_operation_interface_t = x86_memory_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_operation_interface { - pub read_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ) -> uint64, - >, - pub read_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub write_logical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - seg: x86_seg_t, - offs: logical_address_t, - size: ::std::os::raw::c_uint, - mode: x86_processor_mode_t, - access_type: x86_access_type_t, - ), - >, - pub read_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> x86_read_physical_ret_t, - >, - pub read_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - dst: *mut uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - val: uint64, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, - pub write_physical_buf: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - src: *const uint8, - address: physical_address_t, - size: ::std::os::raw::c_uint, - access_type: x86_access_type_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_operation_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_logical_buf) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_logical_buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_logical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_physical_buf) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(read_physical_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_physical_buf) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_operation_interface), - "::", - stringify!(write_physical_buf) - ) - ); -} -pub type x86_vmp_control_interface_t = x86_vmp_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_vmp_control_interface { - pub get_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - pub set_block_count: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, cnt: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_x86_vmp_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_vmp_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_block_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(get_block_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_block_count) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_vmp_control_interface), - "::", - stringify!(set_block_count) - ) - ); -} -pub const vmp_feature_t_Vmp_Feature_Ept: vmp_feature_t = 0; -pub const vmp_feature_t_Vmp_Feature_Tpr_Threshold: vmp_feature_t = 1; -pub const vmp_feature_t_Vmp_Feature_Unrestricted_Guest: vmp_feature_t = 2; -pub const vmp_feature_t_Vmp_Feature_Backoff: vmp_feature_t = 3; -pub const vmp_feature_t_Vmp_Feature_Shadow_VMCS: vmp_feature_t = 4; -pub const vmp_feature_t_Vmp_Feature_Nested_EPT: vmp_feature_t = 5; -pub const vmp_feature_t_Vmp_Feature_Direct_Rdtsc: vmp_feature_t = 6; -#[doc = " ADD INTERFACE x86_vmp_control_interface"] -pub type vmp_feature_t = ::std::os::raw::c_uint; -pub const vmp_info_t_Vmp_Info_Cpu_Version: vmp_info_t = 0; -pub const vmp_info_t_Vmp_Info_Vmxmon_Version: vmp_info_t = 1; -pub type vmp_info_t = ::std::os::raw::c_uint; -pub type vmp_interface_t = vmp_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmp_interface { - pub class_has_support: - ::std::option::Option bool>, - pub host_support: ::std::option::Option bool>, - pub compatible_config: - ::std::option::Option bool>, - pub enable: ::std::option::Option bool>, - pub disable: ::std::option::Option, - pub enabled: ::std::option::Option bool>, - pub set_threshold: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, threshold: ::std::os::raw::c_int), - >, - pub get_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t) -> bool, - >, - pub set_feature: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, feature: vmp_feature_t, val: bool) -> bool, - >, - pub get_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, info: vmp_info_t) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_vmp_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(vmp_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vmp_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).class_has_support) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(class_has_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).host_support) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(host_support) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compatible_config) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(compatible_config) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_threshold) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_threshold) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_feature) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_feature) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(set_feature) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(vmp_interface), - "::", - stringify!(get_info) - ) - ); -} -pub const xed_data_type_t_Xed_Iform: xed_data_type_t = 0; -#[doc = " ADD INTERFACE vmp_interface"] -pub type xed_data_type_t = ::std::os::raw::c_uint; -pub type xed_access_interface_t = xed_access_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xed_access_interface { - pub get_last: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - ) -> ::std::os::raw::c_int, - >, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - bytes: bytes_t, - ) -> ::std::os::raw::c_int, - >, - pub to_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: xed_data_type_t, - value: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_xed_access_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(xed_access_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xed_access_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_last) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(get_last) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_string) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(xed_access_interface), - "::", - stringify!(to_string) - ) - ); -} -pub type x86_ept_interface_t = x86_ept_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_ept_interface { - pub guest_physical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - cpu_mode: x86_processor_mode_t, - access: access_t, - ) -> physical_block_t, - >, - pub is_ept_active: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_x86_ept_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_ept_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_ept_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).guest_physical_to_physical) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(guest_physical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_ept_active) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_ept_interface), - "::", - stringify!(is_ept_active) - ) - ); -} -pub type x86_instruction_query_interface_t = x86_instruction_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instruction_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut instruction_handle_t, - ) -> linear_address_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instruction_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_instruction_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instruction_query_interface), - "::", - stringify!(linear_address) - ) - ); -} -pub type x86_memory_query_interface_t = x86_memory_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_memory_query_interface { - pub linear_address: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> linear_address_t, - >, - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut memory_handle_t) -> x86_seg_t, - >, - pub access_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_access_type_t, - >, - pub memory_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: *mut memory_handle_t, - ) -> x86_memory_type_t, - >, -} -#[test] -fn bindgen_test_layout_x86_memory_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_memory_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).linear_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(linear_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(access_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_type) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(x86_memory_query_interface), - "::", - stringify!(memory_type) - ) - ); -} -pub type x86_exception_query_interface_t = x86_exception_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_exception_query_interface { - pub vector: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint8, - >, - pub source: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut exception_handle_t, - ) -> x86_exception_source_t, - >, - pub error_code: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut exception_handle_t) -> uint32, - >, -} -#[test] -fn bindgen_test_layout_x86_exception_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_exception_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(vector) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).error_code) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_exception_query_interface), - "::", - stringify!(error_code) - ) - ); -} -pub type x86_address_query_interface_t = x86_address_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_address_query_interface { - pub segment: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut address_handle_t) -> x86_seg_t, - >, - pub get_page_crossing_info: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - handle: *mut address_handle_t, - ) -> page_crossing_info_t, - >, -} -#[test] -fn bindgen_test_layout_x86_address_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_address_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page_crossing_info) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_address_query_interface), - "::", - stringify!(get_page_crossing_info) - ) - ); -} -#[doc = " "] -pub type x86_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: x86_detailed_exec_mode_t, - user_data: *mut lang_void, - ), ->; -pub type x86_instrumentation_subscribe_interface_t = x86_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_interface { - pub register_mode_switch_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_switch_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_mode_switch_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub type x86_instrumentation_subscribe_v2_interface_t = x86_instrumentation_subscribe_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_instrumentation_subscribe_v2_interface { - pub register_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: x86_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_illegal_instruction_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cpu_instruction_decoder_cb_t, - disass_cb: cpu_instruction_disassemble_cb_t, - data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_x86_instrumentation_subscribe_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_instrumentation_subscribe_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_enter_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_enter_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_mode_leave_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_illegal_instruction_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_instrumentation_subscribe_v2_interface), - "::", - stringify!(register_illegal_instruction_cb) - ) - ); -} -pub const vmx_mode_t_Vmx_Off: vmx_mode_t = 0; -pub const vmx_mode_t_Vmx_Root: vmx_mode_t = 1; -pub const vmx_mode_t_Vmx_Non_Root: vmx_mode_t = 2; -#[doc = " This enum is used to distinguish VMX modes. It is\nused by the vmx_mode_switch_cb_t.\n"] -pub type vmx_mode_t = ::std::os::raw::c_uint; -#[doc = " \nThis callback type is used by the\nvmx_instrumentation_subscribe to implements VMX mode switch\ninstrumentation.\n"] -pub type vmx_mode_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - mode: vmx_mode_t, - vmcs_address: physical_address_t, - user_data: *mut lang_void, - ), ->; -pub type vmx_instrumentation_subscribe_interface_t = vmx_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vmx_instrumentation_subscribe_interface { - pub register_vmx_mode_leave_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_vmx_mode_enter_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: vmx_mode_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_vmx_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vmx_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_leave_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_leave_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_vmx_mode_enter_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vmx_instrumentation_subscribe_interface), - "::", - stringify!(register_vmx_mode_enter_cb) - ) - ); -} -#[doc = " \nThis callback type is used by the\nsmm_instrumentation_subscribe to implement instrumentation.\n"] -pub type smm_switch_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - user_data: *mut lang_void, - ), ->; -pub type smm_instrumentation_subscribe_interface_t = smm_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct smm_instrumentation_subscribe_interface { - pub register_smm_enter_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_enter_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_before_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, - pub register_smm_leave_after_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: smm_switch_cb_t, - user_data: *mut lang_void, - ) -> *mut cpu_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_smm_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(smm_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_enter_before_cb) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_enter_after_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_enter_after_cb) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_smm_leave_before_cb) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_smm_leave_after_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(smm_instrumentation_subscribe_interface), - "::", - stringify!(register_smm_leave_after_cb) - ) - ); -} -pub const x86_stream_enum_t_X86_Stream_Instruction_LA: x86_stream_enum_t = 32; -pub const x86_stream_enum_t_X86_Stream_Instruction_LA_After: x86_stream_enum_t = 33; -pub const x86_stream_enum_t_X86_Stream_Read_Memory: x86_stream_enum_t = 34; -pub const x86_stream_enum_t_X86_Stream_Write_Memory: x86_stream_enum_t = 35; -pub const x86_stream_enum_t_X86_Stream_Last: x86_stream_enum_t = 36; -#[doc = " ADD INTERFACE smm_instrumentation_subscribe"] -pub type x86_stream_enum_t = ::std::os::raw::c_uint; -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_memory_transaction { - #[doc = " generic transaction"] - pub s: generic_transaction_t, -} -#[test] -fn bindgen_test_layout_xtensa_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_memory_transaction), - "::", - stringify!(s) - ) - ); -} -impl Default for xtensa_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " "] -pub type xtensa_memory_transaction_t = xtensa_memory_transaction; -pub type xtensa_tie_lookup_interface_t = xtensa_tie_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_lookup_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - out_width: uint32, - out_data: *const uint32, - in_width: uint32, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_tie_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_lookup_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_export_state_interface_t = xtensa_tie_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_export_state_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, out_data: *const uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_export_state_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_export_state_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_output_queue_interface_t = xtensa_tie_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_output_queue_interface { - pub full: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - reserve_only: bool, - out_data: *const uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_output_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).full) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(full) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_output_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_input_queue_interface_t = xtensa_tie_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_input_queue_interface { - pub empty: ::std::option::Option bool>, - pub data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bit_width: uint32, - is_peek: bool, - in_data: *mut uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(xtensa_tie_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_input_queue_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).empty) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(empty) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_input_queue_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_tie_import_wire_interface_t = xtensa_tie_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_tie_import_wire_interface { - pub data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bit_width: uint32, in_data: *mut uint32), - >, -} -#[test] -fn bindgen_test_layout_xtensa_tie_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_tie_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(xtensa_tie_import_wire_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_tie_import_wire_interface), - "::", - stringify!(data) - ) - ); -} -pub type xtensa_lookup_interface_t = xtensa_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_lookup_interface { - pub register_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - lookup_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_lookup_interface), - "::", - stringify!(register_lookup) - ) - ); -} -pub type xtensa_export_state_interface_t = xtensa_export_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_export_state_interface { - pub register_export_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - export_state_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_export_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_export_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_export_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_export_state_interface), - "::", - stringify!(register_export_state) - ) - ); -} -pub type xtensa_output_queue_interface_t = xtensa_output_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_output_queue_interface { - pub register_output_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - full_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_output_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_output_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_output_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_output_queue_interface), - "::", - stringify!(register_output_queue) - ) - ); -} -pub type xtensa_input_queue_interface_t = xtensa_input_queue_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_input_queue_interface { - pub register_input_queue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - empty_callback: *mut lang_void, - data_callback: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_input_queue_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_input_queue_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_input_queue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_input_queue_interface), - "::", - stringify!(register_input_queue) - ) - ); -} -pub type xtensa_import_wire_interface_t = xtensa_import_wire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct xtensa_import_wire_interface { - pub register_import_wire: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - user_object: *mut lang_void, - import_wire_func: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_xtensa_import_wire_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(xtensa_import_wire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_import_wire) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(xtensa_import_wire_interface), - "::", - stringify!(register_import_wire) - ) - ); -} -extern "C" { - pub fn signed_divide_128_by_64( - dividend_high: int64, - dividend_low: int64, - divisor: int64, - quotient: *mut int64, - remainder: *mut int64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn unsigned_gcd(n: uint64, d: uint64) -> uint64; -} -extern "C" { - pub fn unsigned_multiply_rational( - num1: uint64, - den1: uint64, - num2: uint64, - den2: uint64, - result_num: *mut uint64, - result_den: *mut uint64, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int128 { - pub lo: uint64, - pub hi: int64, -} -#[test] -fn bindgen_test_layout_int128() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(int128)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int128)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hi) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int128), - "::", - stringify!(hi) - ) - ); -} -extern "C" { - pub fn int128_from_double(dst: *mut int128, src: f64) -> bool; -} -extern "C" { - pub fn int128_to_double(src: int128) -> f64; -} -extern "C" { - pub fn int128_div_int64(a: int128, b: int64, q: *mut int128, r: *mut int64) -> bool; -} -extern "C" { - pub fn int128_as_string( - v: int128, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct duration_t { - pub t: int64, -} -#[test] -fn bindgen_test_layout_duration_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(duration_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(duration_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(duration_t), - "::", - stringify!(t) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bigtime_t { - pub val: int128, -} -#[test] -fn bindgen_test_layout_bigtime_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(bigtime_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bigtime_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bigtime_t), - "::", - stringify!(val) - ) - ); -} -extern "C" { - pub fn bigtime_mul(t: bigtime_t, factor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_raw(t: bigtime_t, divisor: int64, exact: *mut bool) -> bigtime_t; -} -extern "C" { - pub fn bigtime_div_floor(t: bigtime_t, divisor: int64) -> bigtime_t; -} -extern "C" { - pub fn bigtime_to_attr(t: bigtime_t) -> attr_value_t; -} -extern "C" { - pub fn bigtime_from_attr(a: attr_value_t) -> bigtime_t; -} -extern "C" { - pub fn bigtime_as_string( - t: bigtime_t, - buf: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_run_unrestricted_python( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_unrestricted( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub const event_class_flag_t_Sim_EC_No_Flags: event_class_flag_t = 0; -#[doc = " event not saved in configurations"] -pub const event_class_flag_t_Sim_EC_Notsaved: event_class_flag_t = 1; -#[doc = " event should run before events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Early: event_class_flag_t = 2; -#[doc = " event should run after events not marked\nwith this flag"] -pub const event_class_flag_t_Sim_EC_Slot_Late: event_class_flag_t = 4; -#[doc = " synchronize machine on event"] -pub const event_class_flag_t_Sim_EC_Machine_Sync: event_class_flag_t = 8; -#[doc = " can execute in parallel with execution"] -pub const event_class_flag_t_Sim_EC_No_Serialize: event_class_flag_t = 16; -pub type event_class_flag_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_class { - #[doc = " identifier, unique within the conf_class (malloced)"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conf class this event class belongs to; posting object must\nbelong to this class."] - pub conf_class: *mut conf_class_t, - pub flags: event_class_flag_t, - #[doc = " function called when event expires"] - pub callback: - ::std::option::Option, - #[doc = " function called when the event is removed without expiry.\nMay be null.\nMust not access the Simics configuration in any way!"] - pub destroy: - ::std::option::Option, - #[doc = " convert event data to an attribute value.\nMay be null if flags has Sim_EC_Notsaved set.\nEvent should not be saved if return value is invalid."] - pub get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - #[doc = " convert attribute value to event data.\nMay be null if flags has Sim_EC_Notsaved set."] - pub set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - #[doc = " human-readable event description. The returned string must be\nmalloced; it will be freed by the caller."] - pub describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - #[doc = " internal - absolute priority for event"] - pub slot: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_event_class() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(event_class)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_class)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conf_class) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(conf_class) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(get_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).describe) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(describe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(event_class), - "::", - stringify!(slot) - ) - ); -} -impl Default for event_class { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type event_class_t = event_class; -extern "C" { - pub fn SIM_register_event( - name: *const ::std::os::raw::c_char, - cl: *mut conf_class_t, - flags: event_class_flag_t, - callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - destroy: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void), - >, - get_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut lang_void) -> attr_value_t, - >, - set_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: attr_value_t) -> *mut lang_void, - >, - describe: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: *mut lang_void, - ) -> *mut ::std::os::raw::c_char, - >, - ) -> *mut event_class_t; -} -extern "C" { - pub fn SIM_event_post_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_post_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_cycle( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t; -} -extern "C" { - pub fn SIM_event_find_next_time( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64; -} -extern "C" { - pub fn VT_get_event_class( - cl: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *mut event_class_t; -} -extern "C" { - pub fn VT_stacked_post( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - user_data: *mut lang_void, - ); -} -pub type pico_secs_t = int64; -#[doc = " "] -pub type pc_step_t = simtime_t; -extern "C" { - pub fn SIM_event_post_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_cancel_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_event_find_next_step( - clock: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t; -} -extern "C" { - pub fn SIM_step_count(obj: *mut conf_object_t) -> pc_step_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct local_time_t { - #[doc = " The clock is an object which implements the cycle interface. The\ntime stamp given in this struct is only valid in the clocks' \"time\nspace\"."] - pub clock: *mut conf_object_t, - pub t: bigtime_t, -} -#[test] -fn bindgen_test_layout_local_time_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(local_time_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(local_time_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clock) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(local_time_t), - "::", - stringify!(t) - ) - ); -} -impl Default for local_time_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn local_time_to_attr(t: local_time_t) -> attr_value_t; -} -extern "C" { - pub fn local_time_from_attr(val: attr_value_t) -> local_time_t; -} -extern "C" { - pub fn local_time_as_string(v: local_time_t, str_: *mut ::std::os::raw::c_char); -} -pub type cycle_interface_t = cycle_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_interface { - pub get_cycle_count: - ::std::option::Option cycles_t>, - pub get_time: ::std::option::Option f64>, - pub cycles_delta: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: f64) -> cycles_t, - >, - pub get_frequency: - ::std::option::Option uint64>, - pub post_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - cycles: cycles_t, - user_data: *mut lang_void, - ), - >, - pub post_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - seconds: f64, - user_data: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_cycle: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub find_next_time: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> f64, - >, - pub events: - ::std::option::Option attr_value_t>, - #[doc = " new picoseconds based functions"] - pub get_time_in_ps: - ::std::option::Option local_time_t>, - pub cycles_delta_from_ps: ::std::option::Option< - unsafe extern "C" fn(clock: *mut conf_object_t, when: local_time_t) -> cycles_t, - >, - pub post_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - picoseconds: duration_t, - user_data: *mut lang_void, - ), - >, - pub find_next_time_in_ps: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> duration_t, - >, -} -#[test] -fn bindgen_test_layout_cycle_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(cycle_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cycle_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_cycle_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_frequency) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_frequency) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_cycle) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_cycle) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_time_in_ps) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(get_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles_delta_from_ps) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(cycles_delta_from_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_time_in_ps) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(post_time_in_ps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_time_in_ps) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(cycle_interface), - "::", - stringify!(find_next_time_in_ps) - ) - ); -} -extern "C" { - pub fn SIM_register_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_register_passive_clock( - cls: *mut conf_class_t, - iface: *const cycle_interface_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_is_restoring_state(obj: *mut conf_object_t) -> bool; -} -extern "C" { - #[doc = " will return 1 while getting persistent attributes only"] - pub fn VT_is_saving_persistent_data() -> bool; -} -extern "C" { - pub fn VT_object_cell(obj: *mut conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_map_generation(obj: *mut conf_object_t) -> uint32; -} -extern "C" { - pub fn VT_is_reversing() -> bool; -} -extern "C" { - pub fn SIM_is_loading_micro_checkpoint(obj: *mut conf_object_t) -> bool; -} -pub const global_notifier_type_t_Sim_Global_Notify_Object_Delete: global_notifier_type_t = 100; -pub const global_notifier_type_t_Sim_Global_Notify_Objects_Finalized: global_notifier_type_t = 101; -pub const global_notifier_type_t_Sim_Global_Notify_Message: global_notifier_type_t = 102; -#[doc = " \nglobal_notifier_type_t\nglobal_notifier_type_t\n\nglobal_notifier_type_t\n\n\n\n\n\n\n\nThis enum is used to identify pre-defined global notifier. The\nSim_Global_Notify_Object_Delete notifier is triggered by Simics\nwhen objects are being deleted. In the callback, objects are still fully\navailable, but SIM_marked_for_deletion can be used to determine\nif an object is being deleted.\n\nThe Sim_Global_Notify_Objects_Finalized notifier is triggered by\nSimics when new objects have been finalized, after their\nobjects_finalized methods have been called.\n\nThe Sim_Global_Notify_Message notifier is used by\nSIM_trigger_global_message.\n\nThe corresponding names used in e.g. list-notifiers\nare as follows:\n
    \n
  • \"global-object-delete\" (Sim_Global_Notify_Object_Delete)
  • \n
  • \"global-objects-finalized\" (Sim_Global_Notify_Objects_Finalized)
  • \n
  • \"global-message\" (Sim_Global_Notify_Message)
  • \n
\n\n
\n\nSIM_add_global_notifier,\nSIM_add_global_notifier_once,\nSIM_delete_global_notifier,\n\n
\n
\n\n"] -pub type global_notifier_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct global_notifier_callback { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type global_notifier_callback_t = global_notifier_callback; -extern "C" { - pub fn SIM_add_global_notifier( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_add_global_notifier_once( - what: global_notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn(subscriber: *mut conf_object_t, data: *mut lang_void), - >, - data: *mut lang_void, - ) -> *mut global_notifier_callback_t; -} -extern "C" { - pub fn SIM_delete_global_notifier(handle: *mut global_notifier_callback_t); -} -pub type hap_type_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_hap_add_type( - hap: *const ::std::os::raw::c_char, - params: *const ::std::os::raw::c_char, - param_desc: *const ::std::os::raw::c_char, - index: *const ::std::os::raw::c_char, - desc: *const ::std::os::raw::c_char, - unused: ::std::os::raw::c_int, - ) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_remove_type(hap: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_hap_get_number(hap: *const ::std::os::raw::c_char) -> hap_type_t; -} -extern "C" { - pub fn SIM_hap_get_name(hap: hap_type_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_hap_is_active(hap: hap_type_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj(hap: hap_type_t, obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_hap_is_active_obj_idx( - hap: hap_type_t, - obj: *mut conf_object_t, - index: int64, - ) -> bool; -} -extern "C" { - pub fn SIM_c_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_c_hap_occurred_always_vararg( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_hap_occurred_always( - hap: hap_type_t, - obj: *mut conf_object_t, - value: int64, - list: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_hap_global_callback_ranges(hap: hap_type_t) -> attr_value_t; -} -#[doc = " Normal informational message"] -pub const log_type_t_Sim_Log_Info: log_type_t = 0; -#[doc = " Simics error"] -pub const log_type_t_Sim_Log_Error: log_type_t = 1; -#[doc = " target program violates the specification"] -pub const log_type_t_Sim_Log_Spec_Violation: log_type_t = 2; -#[doc = " not implemented in Simics"] -pub const log_type_t_Sim_Log_Unimplemented: log_type_t = 3; -#[doc = " Critical error stopping Simics"] -pub const log_type_t_Sim_Log_Critical: log_type_t = 4; -#[doc = " Breakpoint trace messages"] -pub const log_type_t_Sim_Log_Trace: log_type_t = 5; -#[doc = " Do not use"] -pub const log_type_t_Sim_Log_Num_Types: log_type_t = 6; -#[doc = " \n"] -pub type log_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct log_object { - _unused: [u8; 0], -} -pub type log_object_t = log_object; -extern "C" { - pub fn SIM_log_register_groups( - cls: *mut conf_class_t, - names: *const *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: ::std::os::raw::c_int, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_log_message64( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_message( - obj: *mut conf_object_t, - level: ::std::os::raw::c_int, - group_ids: uint64, - log_type: log_type_t, - message: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_critical_error( - short_msg: *const ::std::os::raw::c_char, - long_msg: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_log_error( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_critical( - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_error( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_critical( - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_info( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_spec_violation( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn VT_log_unimplemented( - lvl: ::std::os::raw::c_int, - dev: *mut conf_object_t, - grp: uint64, - str_: *const ::std::os::raw::c_char, - ... - ); -} -extern "C" { - pub fn SIM_log_level(obj: *const conf_object_t) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn SIM_set_log_level(obj: *mut conf_object_t, level: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_register_new_code_block_listener( - func: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - start: *mut ::std::os::raw::c_void, - len: usize, - ), - >, - data: *mut ::std::os::raw::c_void, - ); -} -pub const notifier_type_t_Sim_Notify_Queue_Change: notifier_type_t = 0; -pub const notifier_type_t_Sim_Notify_Cell_Change: notifier_type_t = 1; -pub const notifier_type_t_Sim_Notify_Frequency_Change: notifier_type_t = 2; -pub const notifier_type_t_Sim_Notify_Concurrency_Change: notifier_type_t = 3; -pub const notifier_type_t_Sim_Notify_Object_Delete: notifier_type_t = 4; -pub const notifier_type_t_Sim_Notify_Map_Change: notifier_type_t = 5; -pub const notifier_type_t_Sim_Notify_State_Change: notifier_type_t = 6; -pub const notifier_type_t_Sim_Notify_Freerunning_Mode_Change: notifier_type_t = 7; -pub const notifier_type_t_Sim_Notify_Bank_Register_Value_Change: notifier_type_t = 8; -#[doc = " Note that notifier types can be added either by modifying this enum or\nby using SIM_notifier_type. The latter is typically preferred since it does\nnot change the Simics API."] -pub type notifier_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notifier_type(type_: *const ::std::os::raw::c_char) -> notifier_type_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct notifier_handle { - _unused: [u8; 0], -} -#[doc = " Consumer API"] -pub type notifier_handle_t = notifier_handle; -extern "C" { - pub fn SIM_add_notifier( - obj: *mut conf_object_t, - what: notifier_type_t, - subscriber: *mut conf_object_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - subscriber: *mut conf_object_t, - notifier: *mut conf_object_t, - data: *mut lang_void, - ), - >, - data: *mut lang_void, - ) -> *mut notifier_handle_t; -} -extern "C" { - pub fn SIM_delete_notifier(obj: *mut conf_object_t, handle: *mut notifier_handle_t); -} -extern "C" { - pub fn SIM_has_notifier(obj: *mut conf_object_t, what: notifier_type_t) -> bool; -} -extern "C" { - pub fn SIM_class_has_notifier(cls: *mut conf_class_t, what: notifier_type_t) -> bool; -} -extern "C" { - #[doc = " Producer API"] - pub fn SIM_register_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_register_tracked_notifier( - cls: *mut conf_class_t, - what: notifier_type_t, - desc: *const ::std::os::raw::c_char, - subscribed_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: notifier_type_t, - has_subscribers: bool, - ), - >, - ); -} -extern "C" { - pub fn SIM_notify(obj: *mut conf_object_t, type_: notifier_type_t); -} -extern "C" { - pub fn SIM_describe_notifier( - type_: notifier_type_t, - generic_desc: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_notifier_description(type_: notifier_type_t) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct domain_lock { - _unused: [u8; 0], -} -pub type domain_lock_t = domain_lock; -extern "C" { - pub fn SIM_acquire_object( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_target( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_acquire_cell( - obj: *mut conf_object_t, - function_name: *const ::std::os::raw::c_char, - source_location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn SIM_acquire_object_for_execution(obj: *mut conf_object_t) -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_yield_thread_domains(); -} -extern "C" { - pub fn VT_acquire_object( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_cell( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_acquire_target( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - ) -> *mut domain_lock_t; -} -extern "C" { - pub fn VT_release_object(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_cell(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_release_target(obj: *mut conf_object_t, lock: *mut domain_lock_t); -} -extern "C" { - pub fn VT_assert_object_lock( - obj: *mut conf_object_t, - func: *const ::std::os::raw::c_char, - line: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_assert_cell_context( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_drop_thread_domains() -> *mut domain_lock_t; -} -extern "C" { - pub fn SIM_reacquire_thread_domains(lock: *mut domain_lock_t); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prop_desc_t { - #[doc = " The version of the struct used"] - pub abi_version: ::std::os::raw::c_uint, - #[doc = " for debugging purposes"] - pub name: *const ::std::os::raw::c_char, - pub free_data: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_prop_desc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(prop_desc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prop_desc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abi_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(abi_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prop_desc_t), - "::", - stringify!(free_data) - ) - ); -} -impl Default for prop_desc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type prop_id_t = *const prop_desc_t; -extern "C" { - pub fn VT_set_object_prop( - obj: *mut conf_object_t, - prop: prop_id_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_get_object_prop( - obj: *const conf_object_t, - prop: prop_id_t, - ) -> *mut ::std::os::raw::c_void; -} -pub const sim_exception_SimExc_No_Exception: sim_exception = 0; -pub const sim_exception_SimExc_General: sim_exception = 1; -pub const sim_exception_SimExc_Lookup: sim_exception = 2; -pub const sim_exception_SimExc_Attribute: sim_exception = 3; -pub const sim_exception_SimExc_IOError: sim_exception = 4; -pub const sim_exception_SimExc_Index: sim_exception = 5; -pub const sim_exception_SimExc_Memory: sim_exception = 6; -pub const sim_exception_SimExc_Type: sim_exception = 7; -pub const sim_exception_SimExc_Break: sim_exception = 8; -pub const sim_exception_SimExc_PythonTranslation: sim_exception = 9; -pub const sim_exception_SimExc_License: sim_exception = 10; -pub const sim_exception_SimExc_IllegalValue: sim_exception = 11; -pub const sim_exception_SimExc_InquiryOutsideMemory: sim_exception = 12; -pub const sim_exception_SimExc_InquiryUnhandled: sim_exception = 13; -pub const sim_exception_SimExc_InterfaceNotFound: sim_exception = 14; -pub const sim_exception_SimExc_AttrNotFound: sim_exception = 15; -pub const sim_exception_SimExc_AttrNotReadable: sim_exception = 16; -pub const sim_exception_SimExc_AttrNotWritable: sim_exception = 17; -pub const sim_exception_Sim_Exceptions: sim_exception = 18; -pub type sim_exception = ::std::os::raw::c_uint; -pub use self::sim_exception as sim_exception_t; -extern "C" { - pub fn SIM_clear_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn DBG_get_pending_exception() -> sim_exception_t; -} -extern "C" { - pub fn SIM_last_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_frontend_exception(exc_type: sim_exception_t, str_: *const ::std::os::raw::c_char); -} -pub const sim_version_t_SIM_VERSION_7: sim_version_t = 7000; -pub const sim_version_t_SIM_VERSION_6: sim_version_t = 6000; -pub const sim_version_t_SIM_VERSION_5: sim_version_t = 5000; -pub const sim_version_t_SIM_VERSION_4_8: sim_version_t = 4500; -#[doc = " Build ID for initial major versions. Available in DML and Python."] -pub type sim_version_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct dbuffer { - _unused: [u8; 0], -} -#[doc = " "] -pub type dbuffer_t = dbuffer; -extern "C" { - #[doc = " Get a new buffer"] - pub fn new_dbuffer() -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Release a buffer. The buffer should not be freed in any other\nway."] - pub fn dbuffer_free(dbuffer: *mut dbuffer_t); -} -extern "C" { - #[doc = " Get the length"] - pub fn dbuffer_len(dbuffer: *const dbuffer_t) -> usize; -} -extern "C" { - #[doc = " Add static data. This will make the buffer reference the data\n pointed to directly, without making a copy.\n\n If the 'adopt' flag is true, the control of the data block is\n transferred to the dbuffer. It is assumed to be a MM_MALLOCed\n block that will be MM_FREEd when the dbuffer is freed.\n\n If the 'adopt' flag is false, the dbuffer will not free the\n memory. Instead it is up to the caller to free the memory, but it\n must not do so before the dbuffer is freed. Actually, this\n reference could be copied to other dbuffers, so great care has to\n be taken. This should only be used for buffers that will only be\n read, since it hard to know if a write operation will actually\n write to the buffer or to a copy."] - pub fn dbuffer_append_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_external_data( - dbuffer: *mut dbuffer_t, - data: *mut ::std::os::raw::c_void, - len: usize, - adopt: bool, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Copy from one buffer to another."] - pub fn dbuffer_copy_append(dst: *mut dbuffer_t, src: *mut dbuffer_t, offset: usize, len: usize); -} -extern "C" { - pub fn dbuffer_copy_prepend( - dst: *mut dbuffer_t, - src: *mut dbuffer_t, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " Add a repeating byte value"] - pub fn dbuffer_append_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend_value( - dbuffer: *mut dbuffer_t, - value: ::std::os::raw::c_int, - len: usize, - ) -> *mut uint8; -} -extern "C" { - #[doc = " Add uninitialized memory"] - pub fn dbuffer_append(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_prepend(dbuffer: *mut dbuffer_t, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_insert(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - #[doc = " Make the buffer smaller"] - pub fn dbuffer_remove(dbuffer: *mut dbuffer_t, offset: usize, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_head(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - pub fn dbuffer_remove_tail(dbuffer: *mut dbuffer_t, remove_len: usize); -} -extern "C" { - #[doc = " The pointer returned by dbuffer_read() may point to memory shared\nwith other buffers, and should not be written to."] - pub fn dbuffer_read(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *const uint8; -} -extern "C" { - pub fn dbuffer_read_all(dbuffer: *mut dbuffer_t) -> *const uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_update() is not used by any other\ndbuffer_t and can be freely read from or written to."] - pub fn dbuffer_update(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_update_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " A buffer returned by dbuffer_replace() is not used by any other\ndbuffer_t and may contain junk. This function should only be used\nwhen the whole buffer section will be overwritten with new data."] - pub fn dbuffer_replace(dbuffer: *mut dbuffer_t, offset: usize, len: usize) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_some( - dbuffer: *mut dbuffer_t, - offset: usize, - len: usize, - actual_len: *mut usize, - ) -> *mut uint8; -} -extern "C" { - pub fn dbuffer_replace_all(dbuffer: *mut dbuffer_t) -> *mut uint8; -} -extern "C" { - #[doc = " Make a full copy of another buffer"] - pub fn dbuffer_clone(dbuffer: *mut dbuffer_t) -> *mut dbuffer_t; -} -extern "C" { - #[doc = " Split a buffer in two. The data after 'offset' is left in the old\ndbuffer, and the data before 'offset' is returned in a newly\nallocated dbuffer."] - pub fn dbuffer_split(dbuffer: *mut dbuffer_t, offset: usize) -> *mut dbuffer_t; -} -extern "C" { - pub fn dbuffer_clear(dbuffer: *mut dbuffer_t); -} -extern "C" { - pub fn dbuffer_set(dbuffer: *mut dbuffer_t, val: ::std::os::raw::c_int, len: usize); -} -extern "C" { - pub fn dbuffer_bytes(dbuffer: *mut dbuffer_t) -> bytes_t; -} -#[doc = " "] -pub type frags_t = frags; -#[doc = " "] -pub type frags_it_t = frags_it; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_frag { - pub start: *const uint8, - pub len: usize, -} -#[test] -fn bindgen_test_layout_frags_frag() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(frags_frag)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_frag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_frag), - "::", - stringify!(len) - ) - ); -} -impl Default for frags_frag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type frags_frag_t = frags_frag; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags { - pub len: usize, - pub nfrags: ::std::os::raw::c_uint, - pub fraglist: [frags_frag_t; 8usize], -} -#[test] -fn bindgen_test_layout_frags() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(frags)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nfrags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(nfrags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fraglist) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags), - "::", - stringify!(fraglist) - ) - ); -} -impl Default for frags { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frags_it { - pub frag: *const frags_frag, - pub skip: usize, - pub left: usize, -} -#[test] -fn bindgen_test_layout_frags_it() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(frags_it)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frags_it)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frag) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(frag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).skip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(skip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frags_it), - "::", - stringify!(left) - ) - ); -} -impl Default for frags_it { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " \nextract the contents of a frags_t\n\nCopy the whole contents of buf to vdst. The\ndestination buffer vdst should be large enough to contain\nall data in buf.\n\nThis function is completely equivalent to frags_extract_slice()\nwith an offset and a length covering the\nwhole contents of the frags_t, and is provided for\nconvenience.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract_slice,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract(buf: *const frags_t, vdst: *mut ::std::os::raw::c_void); -} -extern "C" { - #[doc = " \nextract a slice of a frags_t\n\nCopy a slice of size len, starting at offset\noffset, of the contents of buf, to\nvdst. The destination buffer vdst should be\nable to contain at least len bytes.\n\nNone\nCell Context\n\n\n\n\nfrags_extract_8, frags_extract,\nfrags_extract_alloc, frags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_slice( - buf: *const frags_t, - vdst: *mut ::std::os::raw::c_void, - offset: usize, - len: usize, - ); -} -extern "C" { - #[doc = " \nreturn a copy of the contents of a frags_t\n\nReturn an allocated copy of the contents of buf. The buffer\nreturned is allocated with MM_MALLOC(), and its ownership is\npassed to the caller, which should free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract(), and is provided for convenience.\n\nA newly allocated copy of the contents\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_slice_alloc\n\n\n"] - pub fn frags_extract_alloc(buf: *const frags_t) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " \nreturn a partial copy of the contents of a\nfrags_t\n\nReturn an allocated copy of a slice of size len, starting\nat offset offset, of the contents of\nbuf. The return value is allocated with\nMM_MALLOC(), and its ownership is passed to the caller, which\nshould free it when appropriate.\n\nThis function is equivalent to allocating a buffer of the correct size\nwith MM_MALLOC() followed by a call to\nfrags_extract_slice(), and is provided for convenience.\n\nA newly allocated, partial copy of the data\nCell Context\n\n\n\n\nfrags_extract, frags_extract_slice,\nfrags_extract_alloc\n\n\n"] - pub fn frags_extract_slice_alloc( - buf: *const frags_t, - offset: usize, - len: usize, - ) -> *mut ::std::os::raw::c_void; -} -pub const gui_mode_t_GUI_Mode_None: gui_mode_t = 0; -pub const gui_mode_t_GUI_Mode_Mixed: gui_mode_t = 1; -pub const gui_mode_t_GUI_Mode_Only: gui_mode_t = 2; -pub const gui_mode_t_GUI_Mode_Default: gui_mode_t = 3; -#[doc = " \n"] -pub type gui_mode_t = ::std::os::raw::c_uint; -#[doc = " internal, do not use"] -pub const cpu_variant_t_Cpu_None: cpu_variant_t = 0; -pub const cpu_variant_t_Cpu_Any: cpu_variant_t = 1; -pub const cpu_variant_t_Cpu_Fast: cpu_variant_t = 2; -pub const cpu_variant_t_Cpu_Stall: cpu_variant_t = 3; -#[doc = " \n"] -pub type cpu_variant_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct init_prefs_t { - pub batch_mode: bool, - pub quiet: bool, - pub verbose: bool, - pub python_verbose: bool, - pub disable_istc: bool, - pub disable_dstc: bool, - pub module_cache_enable: bool, - pub rdp: bool, - pub sign_module: bool, - pub log_file: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub project: *const ::std::os::raw::c_char, - #[doc = " Deprecated, do not use"] - pub workspace: *const ::std::os::raw::c_char, - #[doc = " GUI_Mode_Default to use saved prefs value"] - pub gui_mode: gui_mode_t, - #[doc = " CPU_Any to use saved prefs value"] - pub cpu_mode: cpu_variant_t, - #[doc = " internal, do not use"] - pub package_list: *const ::std::os::raw::c_char, - #[doc = " NULL to use saved prefs value"] - pub license_file: *const ::std::os::raw::c_char, - pub expire_time: *const ::std::os::raw::c_char, - pub no_windows: bool, - pub fail_on_warnings: bool, - #[doc = " see sim->warn_deprecated"] - pub deprecation_level: *const ::std::os::raw::c_char, - #[doc = " same as deprecation_level == 2"] - pub warn_deprecated: bool, - #[doc = " same as deprecation_level == 0"] - pub no_warn_deprecated: bool, - #[doc = " deprecated and ignored (bug 21597)"] - pub warn_multithread: bool, - pub check_ifaces: bool, - #[doc = " do not read preferences and recent-files"] - pub no_global_settings: bool, - #[doc = " internal - for test usage"] - pub alt_settings_dir: *const ::std::os::raw::c_char, - #[doc = " the following should be -1 if not set by command line options\nto tell SIM_init_simulator() to use the saved preference value"] - pub log_enable: ::std::os::raw::c_int, - #[doc = " internal, do not use"] - pub allow_license_gui: bool, - #[doc = " internal, do not use"] - pub eclipse_params: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_init_prefs_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 120usize, - concat!("Size of: ", stringify!(init_prefs_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_prefs_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).batch_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(batch_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).quiet) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(quiet) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).verbose) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_verbose) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(python_verbose) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_istc) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_istc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_dstc) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(disable_dstc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).module_cache_enable) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(module_cache_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rdp) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(rdp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sign_module) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(sign_module) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_file) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).project) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(project) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).workspace) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(workspace) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gui_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(gui_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).package_list) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(package_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).license_file) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(license_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expire_time) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(expire_time) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_windows) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_windows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fail_on_warnings) as usize - ptr as usize }, - 73usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(fail_on_warnings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deprecation_level) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(deprecation_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_deprecated) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_warn_deprecated) as usize - ptr as usize }, - 89usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_warn_deprecated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).warn_multithread) as usize - ptr as usize }, - 90usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(warn_multithread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_ifaces) as usize - ptr as usize }, - 91usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(check_ifaces) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).no_global_settings) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(no_global_settings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).alt_settings_dir) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(alt_settings_dir) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).log_enable) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(log_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).allow_license_gui) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(allow_license_gui) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eclipse_params) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(init_prefs_t), - "::", - stringify!(eclipse_params) - ) - ); -} -impl Default for init_prefs_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_environment( - argv: *mut *mut ::std::os::raw::c_char, - handle_signals: bool, - allow_core_dumps: bool, - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct init_arg_t { - pub name: *const ::std::os::raw::c_char, - pub boolean: bool, - pub u: init_arg_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union init_arg_t__bindgen_ty_1 { - pub string: *const ::std::os::raw::c_char, - pub enabled: bool, -} -#[test] -fn bindgen_test_layout_init_arg_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t__bindgen_ty_1), - "::", - stringify!(enabled) - ) - ); -} -impl Default for init_arg_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_init_arg_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(init_arg_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(init_arg_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).boolean) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(boolean) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(init_arg_t), - "::", - stringify!(u) - ) - ); -} -impl Default for init_arg_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn SIM_init_simulator2(init_args: *mut init_arg_t); -} -extern "C" { - pub fn SIM_set_frontend_context(context: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_init_package_list(package_list: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_get_init_arg_string( - name: *const ::std::os::raw::c_char, - default_value: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_get_init_arg_boolean( - name: *const ::std::os::raw::c_char, - default_value: bool, - ) -> bool; -} -extern "C" { - pub fn SIM_init_command_line(); -} -extern "C" { - pub fn SIM_main_loop(); -} -extern "C" { - pub fn VT_check_package_updates(); -} -pub const apic_destination_mode_t_Apic_Destination_Mode_Physical: apic_destination_mode_t = 0; -pub const apic_destination_mode_t_Apic_Destination_Mode_Logical: apic_destination_mode_t = 1; -#[doc = " "] -pub type apic_destination_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Fixed: apic_delivery_mode_t = 0; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Lowest_Priority: apic_delivery_mode_t = 1; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_SMI: apic_delivery_mode_t = 2; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Remote_Read: apic_delivery_mode_t = 3; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_NMI: apic_delivery_mode_t = 4; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_INIT: apic_delivery_mode_t = 5; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Start_Up: apic_delivery_mode_t = 6; -pub const apic_delivery_mode_t_Apic_Delivery_Mode_Ext_INT: apic_delivery_mode_t = 7; -#[doc = " "] -pub type apic_delivery_mode_t = ::std::os::raw::c_uint; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Edge: apic_trigger_mode_t = 0; -pub const apic_trigger_mode_t_Apic_Trigger_Mode_Level: apic_trigger_mode_t = 1; -#[doc = " "] -pub type apic_trigger_mode_t = ::std::os::raw::c_uint; -pub const apic_delivery_status_t_Apic_Delivery_Status_Idle: apic_delivery_status_t = 0; -pub const apic_delivery_status_t_Apic_Delivery_Status_Send_Pending: apic_delivery_status_t = 1; -#[doc = " "] -pub type apic_delivery_status_t = ::std::os::raw::c_uint; -pub const apic_rr_status_t_Apic_RR_Invalid: apic_rr_status_t = 0; -pub const apic_rr_status_t_Apic_RR_Pending: apic_rr_status_t = 1; -pub const apic_rr_status_t_Apic_RR_Valid: apic_rr_status_t = 2; -#[doc = " "] -pub type apic_rr_status_t = ::std::os::raw::c_uint; -pub const apic_bus_status_t_Apic_Bus_Accepted: apic_bus_status_t = 0; -pub const apic_bus_status_t_Apic_Bus_Retry: apic_bus_status_t = 1; -pub const apic_bus_status_t_Apic_Bus_No_Target: apic_bus_status_t = 2; -pub const apic_bus_status_t_Apic_Bus_Invalid: apic_bus_status_t = 3; -#[doc = " "] -pub type apic_bus_status_t = ::std::os::raw::c_uint; -pub type apic_bus_interface_t = apic_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct apic_bus_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dest_mode: apic_destination_mode_t, - delivery_mode: apic_delivery_mode_t, - level_assert: ::std::os::raw::c_int, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - destination: uint8, - ) -> apic_bus_status_t, - >, -} -#[test] -fn bindgen_test_layout_apic_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(apic_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(apic_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(apic_bus_interface), - "::", - stringify!(interrupt) - ) - ); -} -pub type arinc429_bus_interface_t = arinc429_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_bus_interface { - pub send_word: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_bus_interface), - "::", - stringify!(send_word) - ) - ); -} -pub type arinc429_receiver_interface_t = arinc429_receiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arinc429_receiver_interface { - pub receive_word: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - word: uint32, - parity_ok: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_arinc429_receiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arinc429_receiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_word) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arinc429_receiver_interface), - "::", - stringify!(receive_word) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_reply_t { - pub enabled: bool, - pub vector: uint64, -} -#[test] -fn bindgen_test_layout_coreint_reply_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(coreint_reply_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_reply_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).vector) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(coreint_reply_t), - "::", - stringify!(vector) - ) - ); -} -pub type coreint_interface_t = coreint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct coreint_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, core: *mut conf_object_t) -> coreint_reply_t, - >, -} -#[test] -fn bindgen_test_layout_coreint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(coreint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(coreint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(coreint_interface), - "::", - stringify!(acknowledge) - ) - ); -} -pub type datagram_link_interface_t = datagram_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct datagram_link_interface { - #[doc = " Transmit a message to the object."] - pub receive: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_datagram_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(datagram_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(datagram_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(datagram_link_interface), - "::", - stringify!(receive) - ) - ); -} -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Match: eth_frame_crc_status_t = 0; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Mismatch: eth_frame_crc_status_t = 1; -pub const eth_frame_crc_status_t_Eth_Frame_CRC_Unknown: eth_frame_crc_status_t = 2; -#[doc = " \n
    \n
  • Eth_Frame_CRC_Match means that the frame contents are\ncorrect. The CRC field in the frame should not be relied upon as its\ncomputation may have been skipped for optimization, and it may contain any\nvalue, including zero, a random value or a correctly computed CRC.
  • \n\n
  • Eth_Frame_CRC_Mismatch means that the frame contents are\nincorrect. The CRC field in the frame must contain a CRC that does not\nmatch the frame contents, i.e., to send an incorrect frame on the link,\nyou must make sure that the CRC field will not match when computed.
  • \n\n
  • Eth_Frame_CRC_Unknown means that the relation between the\nframe contents and the CRC field is unknown. The relation can be\nestablished by computing the frame's CRC and comparing it to the frame's\nCRC field.
  • \n
\n
"] -pub type eth_frame_crc_status_t = ::std::os::raw::c_uint; -pub type ethernet_common_interface_t = ethernet_common_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_common_interface { - pub frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_common_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_common_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_common_interface), - "::", - stringify!(frame) - ) - ); -} -pub type ethernet_cable_interface_t = ethernet_cable_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_cable_interface { - pub link_status: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ethernet_cable_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_cable_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_cable_interface), - "::", - stringify!(link_status) - ) - ); -} -#[doc = " "] -pub type ethernet_link_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - clock: *mut conf_object_t, - packet: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_snoop_interface_t = ethernet_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub type ethernet_vlan_snoop_interface_t = ethernet_vlan_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_vlan_snoop_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - clock: *mut conf_object_t, - snoop_fun: ethernet_link_snoop_t, - user_data: *mut lang_void, - vlan_id: uint16, - is_vlan_trunk: bool, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_ethernet_vlan_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_vlan_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_vlan_snoop_interface), - "::", - stringify!(attach) - ) - ); -} -pub const eth_probe_side_t_Eth_Probe_Port_A: eth_probe_side_t = 0; -pub const eth_probe_side_t_Eth_Probe_Port_B: eth_probe_side_t = 1; -#[doc = " \n\n"] -pub type eth_probe_side_t = ::std::os::raw::c_uint; -#[doc = " \n\n"] -pub type ethernet_probe_snoop_t = ::std::option::Option< - unsafe extern "C" fn( - user_data: *mut lang_void, - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), ->; -pub type ethernet_probe_interface_t = ethernet_probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethernet_probe_interface { - pub attach_snooper: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub attach_probe: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - snoop_fun: ethernet_probe_snoop_t, - user_data: *mut lang_void, - ), - >, - pub detach: ::std::option::Option, - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - probe: *mut conf_object_t, - to_side: eth_probe_side_t, - frame: *const frags_t, - crc_status: eth_frame_crc_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ethernet_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ethernet_probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_snooper) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_snooper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_probe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(attach_probe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ethernet_probe_interface), - "::", - stringify!(send_frame) - ) - ); -} -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Complete: firewire_ack_code_t = 1; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Pending: firewire_ack_code_t = 2; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_X: firewire_ack_code_t = 4; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_A: firewire_ack_code_t = 5; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Busy_B: firewire_ack_code_t = 6; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Tardy: firewire_ack_code_t = 11; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Conflict_Error: firewire_ack_code_t = 12; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Data_Error: firewire_ack_code_t = 13; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Type_Error: firewire_ack_code_t = 14; -#[doc = " Values defined in the FireWire specification"] -pub const firewire_ack_code_t_Firewire_Ack_Address_Error: firewire_ack_code_t = 15; -#[doc = " no destination found"] -pub const firewire_ack_code_t_Firewire_Ack_No_Destination: firewire_ack_code_t = 16; -#[doc = " no ack signal sent for packet"] -pub const firewire_ack_code_t_Firewire_Ack_No_Ack: firewire_ack_code_t = 17; -#[doc = " "] -pub type firewire_ack_code_t = ::std::os::raw::c_uint; -pub const firewire_response_code_t_Firewire_Response_Complete: firewire_response_code_t = 0; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Data_Error: firewire_response_code_t = 5; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Type_Error: firewire_response_code_t = 6; -#[doc = "Firewire_Response_Conflict = 4,"] -pub const firewire_response_code_t_Firewire_Response_Address_Error: firewire_response_code_t = 7; -#[doc = " "] -pub type firewire_response_code_t = ::std::os::raw::c_uint; -pub const firewire_transaction_code_t_Firewire_Write_Quadlet: firewire_transaction_code_t = 0; -pub const firewire_transaction_code_t_Firewire_Write_Block: firewire_transaction_code_t = 1; -pub const firewire_transaction_code_t_Firewire_Write_Response: firewire_transaction_code_t = 2; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet: firewire_transaction_code_t = 4; -pub const firewire_transaction_code_t_Firewire_Read_Block: firewire_transaction_code_t = 5; -pub const firewire_transaction_code_t_Firewire_Read_Quadlet_Response: firewire_transaction_code_t = - 6; -pub const firewire_transaction_code_t_Firewire_Read_Block_Response: firewire_transaction_code_t = 7; -pub const firewire_transaction_code_t_Firewire_Cycle_Start: firewire_transaction_code_t = 8; -pub const firewire_transaction_code_t_Firewire_Lock: firewire_transaction_code_t = 9; -pub const firewire_transaction_code_t_Firewire_Streaming: firewire_transaction_code_t = 10; -pub const firewire_transaction_code_t_Firewire_Lock_Response: firewire_transaction_code_t = 11; -#[doc = " "] -pub type firewire_transaction_code_t = ::std::os::raw::c_uint; -pub const firewire_async_lock_code_t_Firewire_Lock_Maskswap: firewire_async_lock_code_t = 1; -pub const firewire_async_lock_code_t_Firewire_Lock_Compareswap: firewire_async_lock_code_t = 2; -pub const firewire_async_lock_code_t_Firewire_Lock_Fetchadd: firewire_async_lock_code_t = 3; -pub const firewire_async_lock_code_t_Firewire_Lock_Littleadd: firewire_async_lock_code_t = 4; -pub const firewire_async_lock_code_t_Firewire_Lock_Boundedadd: firewire_async_lock_code_t = 5; -pub const firewire_async_lock_code_t_Firewire_Lock_Wrapadd: firewire_async_lock_code_t = 6; -pub const firewire_async_lock_code_t_Firewire_Lock_Vendor: firewire_async_lock_code_t = 7; -#[doc = " "] -pub type firewire_async_lock_code_t = ::std::os::raw::c_uint; -pub const firewire_iso_tag_t_Firewire_Tag_Unformatted: firewire_iso_tag_t = 0; -#[doc = " "] -pub type firewire_iso_tag_t = ::std::os::raw::c_uint; -pub const firewire_port_status_t_Firewire_Port_No_Port: firewire_port_status_t = 0; -pub const firewire_port_status_t_Firewire_Port_Not_Connected: firewire_port_status_t = 1; -pub const firewire_port_status_t_Firewire_Port_Parent: firewire_port_status_t = 2; -pub const firewire_port_status_t_Firewire_Port_Child: firewire_port_status_t = 3; -#[doc = " "] -pub type firewire_port_status_t = ::std::os::raw::c_uint; -pub type firewire_bus_interface_t = firewire_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_bus_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_bus_id: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, bus_id: uint16), - >, - pub set_id_mask: ::std::option::Option< - unsafe extern "C" fn(bus: *mut conf_object_t, dev: *mut conf_object_t, id_mask: uint16), - >, - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - source: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub register_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub unregister_channel: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - dev: *mut conf_object_t, - channel: uint32, - ) -> ::std::os::raw::c_int, - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_firewire_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_bus_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_device_bus_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_id_mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(set_id_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_channel) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(register_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_channel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(unregister_channel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(firewire_bus_interface), - "::", - stringify!(reset) - ) - ); -} -#[doc = " \nAn array of unsigned 32-bit integers.\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint32_array_t { - pub len: usize, - pub data: *mut uint32, -} -#[test] -fn bindgen_test_layout_uint32_array_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(uint32_array_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint32_array_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(uint32_array_t), - "::", - stringify!(data) - ) - ); -} -impl Default for uint32_array_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type firewire_device_interface_t = firewire_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct firewire_device_interface { - pub transfer: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - packet: *mut dbuffer_t, - crc_calculated: ::std::os::raw::c_int, - ) -> firewire_ack_code_t, - >, - pub reset: ::std::option::Option< - unsafe extern "C" fn( - dev: *mut conf_object_t, - id: uint16, - root_id: uint8, - self_ids: uint32_array_t, - ), - >, - pub get_self_id_template: - ::std::option::Option uint32>, - pub get_rhb: ::std::option::Option< - unsafe extern "C" fn(dev: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_port_count: - ::std::option::Option uint8>, - pub get_port_mask: - ::std::option::Option uint16>, -} -#[test] -fn bindgen_test_layout_firewire_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(firewire_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(firewire_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_self_id_template) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_self_id_template) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_rhb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_rhb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_count) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_port_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(firewire_device_interface), - "::", - stringify!(get_port_mask) - ) - ); -} -pub type frequency_interface_t = frequency_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_interface { - pub get: ::std::option::Option f64>, -} -#[test] -fn bindgen_test_layout_frequency_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_interface), - "::", - stringify!(get) - ) - ); -} -pub type frequency_listener_interface_t = frequency_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frequency_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_frequency_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frequency_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frequency_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type scale_factor_listener_interface_t = scale_factor_listener_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scale_factor_listener_interface { - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, numerator: uint64, denominator: uint64), - >, -} -#[test] -fn bindgen_test_layout_scale_factor_listener_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scale_factor_listener_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scale_factor_listener_interface), - "::", - stringify!(set) - ) - ); -} -pub type simple_dispatcher_interface_t = simple_dispatcher_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_dispatcher_interface { - pub subscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, - pub unsubscribe: ::std::option::Option< - unsafe extern "C" fn( - bus: *mut conf_object_t, - listener: *mut conf_object_t, - listener_port: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_simple_dispatcher_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_dispatcher_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_dispatcher_interface), - "::", - stringify!(unsubscribe) - ) - ); -} -pub type mod_def_t = ::std::os::raw::c_int; -pub type gbic_transceiver_interface_t = gbic_transceiver_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbic_transceiver_interface { - pub read_mod_def: - ::std::option::Option mod_def_t>, - pub write_mod_def: - ::std::option::Option, - pub loopback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, loopback: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_gbic_transceiver_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbic_transceiver_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_mod_def) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(read_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_mod_def) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(write_mod_def) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).loopback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbic_transceiver_interface), - "::", - stringify!(loopback) - ) - ); -} -pub type hpi_interface_t = hpi_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hpi_interface { - #[doc = " HCNTL = 0"] - pub read_hpic: ::std::option::Option uint32>, - pub write_hpic: - ::std::option::Option, - #[doc = " HCNTL = 1"] - pub read_hpia: ::std::option::Option uint32>, - pub write_hpia: - ::std::option::Option, - #[doc = " HCNTL = 1 (autoincrement == 0) */\n/* HCNTL = 2 (autoincrement == 1)"] - pub read_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - autoincrement: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_hpid: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: uint32, - autoincrement: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_hpi_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(hpi_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hpi_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpic) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpia) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpia) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpia) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_hpid) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(read_hpid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_hpid) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(hpi_interface), - "::", - stringify!(write_hpid) - ) - ); -} -pub const i2c_device_state_I2C_idle: i2c_device_state = 0; -pub const i2c_device_state_I2C_master_transmit: i2c_device_state = 1; -pub const i2c_device_state_I2C_master_receive: i2c_device_state = 2; -pub const i2c_device_state_I2C_slave_transmit: i2c_device_state = 3; -pub const i2c_device_state_I2C_slave_receive: i2c_device_state = 4; -pub const i2c_device_state_I2C_max_states: i2c_device_state = 5; -pub type i2c_device_state = ::std::os::raw::c_uint; -pub use self::i2c_device_state as i2c_device_state_t; -pub const i2c_device_flag_t_I2C_flag_exclusive: i2c_device_flag_t = 0; -pub const i2c_device_flag_t_I2C_flag_shared: i2c_device_flag_t = 1; -#[doc = " \n"] -pub type i2c_device_flag_t = ::std::os::raw::c_uint; -pub type i2c_bus_interface_t = i2c_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bus_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t, address: uint8) -> ::std::os::raw::c_int, - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_bus: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_data: - ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, - pub register_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - flags: i2c_device_flag_t, - ) -> ::std::os::raw::c_int, - >, - pub unregister_device: ::std::option::Option< - unsafe extern "C" fn( - i2c_bus: *mut conf_object_t, - device: *mut conf_object_t, - address: uint8, - mask: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i2c_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(write_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_device) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(register_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_device) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_bus_interface), - "::", - stringify!(unregister_device) - ) - ); -} -pub type i2c_device_interface_t = i2c_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_device_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn( - device: *mut conf_object_t, - state: i2c_device_state_t, - address: uint8, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option uint8>, - pub write_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(i2c_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(set_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_device_interface), - "::", - stringify!(write_data) - ) - ); -} -#[doc = " The ACK bit related to the operation was 0. This typically\nmeans that the operation was successful"] -pub const i2c_status_t_I2C_status_success: i2c_status_t = 0; -#[doc = " The ACK bit related to the operation was 1. This typically\nmeans that the operation was unsuccessful"] -pub const i2c_status_t_I2C_status_noack: i2c_status_t = 1; -#[doc = " The operation could not be carried out, because the link is\ncurrently in use by another master"] -pub const i2c_status_t_I2C_status_bus_busy: i2c_status_t = 2; -pub type i2c_status_t = ::std::os::raw::c_uint; -pub type i2c_link_interface_t = i2c_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_link_interface { - pub register_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub unregister_slave_address: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - address: uint32, - mask: uint32, - ), - >, - pub register_bridge: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, bridge: *mut conf_object_t), - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, device: *mut conf_object_t), - >, - pub start_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - address: uint32, - ), - >, - pub read_request: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, - pub ack_read_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - ack: i2c_status_t, - ), - >, - pub write_request: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - master: *mut conf_object_t, - value: uint8, - ), - >, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t, value: uint8), - >, - pub ack_read_response: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, slave: *mut conf_object_t), - >, - pub write_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn( - i2c_link: *mut conf_object_t, - slave: *mut conf_object_t, - status: i2c_status_t, - ), - >, - pub stop: ::std::option::Option< - unsafe extern "C" fn(i2c_link: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(i2c_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_slave_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_slave_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(unregister_slave_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bridge) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(register_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(start_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(i2c_link_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_slave_interface_t = i2c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_interface { - pub start_request: - ::std::option::Option, - pub read_request: ::std::option::Option, - pub ack_read_request: - ::std::option::Option, - pub write_request: - ::std::option::Option, - pub stop: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, repeated_start: uint8), - >, -} -#[test] -fn bindgen_test_layout_i2c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(start_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_request) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(ack_read_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(write_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_interface), - "::", - stringify!(stop) - ) - ); -} -pub type i2c_master_interface_t = i2c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_interface { - pub bus_freed: ::std::option::Option, - pub read_response: - ::std::option::Option, - pub ack_read_response: ::std::option::Option, - pub write_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, - pub start_response: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, status: i2c_status_t), - >, -} -#[test] -fn bindgen_test_layout_i2c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_freed) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(bus_freed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_read_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(ack_read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_response) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(write_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_response) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_interface), - "::", - stringify!(start_response) - ) - ); -} -pub type i2c_bridge_interface_t = i2c_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_bridge_interface { - pub address_added: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, - pub address_removed: ::std::option::Option< - unsafe extern "C" fn(device: *mut conf_object_t, addr: uint32, mask: uint32), - >, -} -#[test] -fn bindgen_test_layout_i2c_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_bridge_interface), - "::", - stringify!(address_removed) - ) - ); -} -pub type i2c_slave_v2_interface_t = i2c_slave_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_slave_v2_interface { - pub start: - ::std::option::Option, - pub read: ::std::option::Option, - pub write: - ::std::option::Option, - pub stop: ::std::option::Option, - pub addresses: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_i2c_slave_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_slave_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addresses) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i2c_slave_v2_interface), - "::", - stringify!(addresses) - ) - ); -} -pub const i2c_ack_t_I2C_ack: i2c_ack_t = 0; -pub const i2c_ack_t_I2C_noack: i2c_ack_t = 1; -#[doc = " \n\n\nThe i2c_master_v2 interface should be implemented\nby devices that intend to act as a master on an I2C link.\n\nThe function acknowledge is called in response to a\nstart or write call in the\ni2c_slave_v2 interface of the slave device.\nread_response is called as response to a\nread call. More details can be found in the\ndocumentation of the i2c_slave_v2 interface.\n\n\n\nCell Context for all methods.\n"] -pub type i2c_ack_t = ::std::os::raw::c_uint; -pub type i2c_master_v2_interface_t = i2c_master_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i2c_master_v2_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i2c_master_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i2c_master_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i2c_master_v2_interface), - "::", - stringify!(read_response) - ) - ); -} -pub const i3c_ack_t_I3C_ack: i3c_ack_t = 0; -pub const i3c_ack_t_I3C_noack: i3c_ack_t = 1; -#[doc = " \n\n\nThe interfaces i3c_master i3c_slave\nand i3c_daa_snoop are used together to model\ncommunication over an I3C bus.\nThere are four kinds of devices roles on the I3C bus: Main Master,\nSecondary Master, Slave and Legacy I2C Slave. Exactly one device\nmust be the Main Master; this is typically configured statically.\nMain Master should implement the i3c_master interface,\nwhile slave should implement the i3c_slave interface.\nSecondary Master should implement both.\nMost calls to a method in the slave device interfaces expect a response\ncall to a method in the master device interfaces. One exception is the\nmethod sdr_write in the i3c_slave interface, master\nexpects no response when calling it.\nIt is up to each device to find the caller's interfaces; usually it is\nconfigured with attributes in both the master and slave device.\n\nTwo I3C devices can communicate directly if one implements the\ni3c_master interface and the other one implements the\ni3c_slave interface. An I3C bus with multiple masters\nor slaves is typically modelled using an i3c-link object,\nwhere each device is connected to an endpoint object.\n\nAn I3C bus consists of a number of master devices and a number\nof slave devices. Each I3C slave device listens to one or more\n7-bit addresses. The slave devices can be I3C slave devices or\nLegacy I2C slave devices. This is because I3C protocol is compatible with\nI2C protocol, so that I3C master device can communicate with I2C slave\ndevices.\nFor legacy I2C slave device, the address it listens to is\npre-configured by the device, i.e. static address. For I3C slave device,\nthe address it listens to can be either static address or dynamic address.\nThe dynamic address is assigned by master during Dynamic Address Assignment\nprocess. It is an error to connect two slave devices to the same\nbus if they listen to the same address.\nIn a communication, the Current Master refers to the device who now drives\nthe bus. It can be Main Master, or Secondary Master.\nUsually, communication over the bus is initiated by the Current Master,\nwhich can communicate with one or more slave devices at a time.\nA slave device can request to initiate an communication, i.e., issue\nan ibi_request, in three cases:\nHot-Join, In-Band Interrupt and as a Secondary Master other than the\nCurrent Master requesting to become Current Master.\nOnly one device on a bus can communicate at a time.\n\nThe start method starts a transfer. The address\nparameter is the address header combined with read/write bit encoded as an\n8-bit number. The least significant bit is the read/write bit and the other\nbits is the 7-bit address header.\nIf the start method is called from master, the address header\ncan be address pattern 0x7E for broadcast, or specific slave address (either\nI2C slave static address or I3C slave dynamic address).\n\nIn I3C bus or link implementation, every start request will broadcast to\nall other devices. So does the stop request. This will monitor bus/link\nstatus to all devices.\n\nNormally, master starts a transfer, then the slave responds to\nstart using the acknowledge method (implemented by\nmaster side interface). The ack parameter may be\nI3C_ack or I3C_noack if the start is acked or\nnoacked, respectively.\n\nThere are five types of different start requests:\n
I3C master read transaction
\n
If a master's start with specific slave address was acked by other\ndevice, and read/write bit in the address parameter of\nthe start method was 1, then master proceeds with a sequence\nof read calls. Each call is followed by a read_response\ncall from the slave. Parameter data in the method\nread_response is the data transferred. The procedure is no\ndifference with regard to read from I3C slave or read from I2C slave.\nIn hardware, the ACK/T bit is handled differently for i2c and i3c, and\nthe master is supposed to know whether the slave is an i2c or i3c device.\nIn the i3c case, the slave is supposed to pass the T bit in the\nmore argument of read_response, while an i2c\ndevice always passes more as true. Further more, in the\ni2c case, a master sends an ACK bit, which is not represented explicitly\nin the interface. The value of this bit can be deduced from whether the\nfollowing operation is START/STOP or READ. For i3c case, parameter\nmore in method read_response indicates if\nthere are still data waiting to be transferred from slave to master.\nmore is true when there are still data left, false otherwise.\n
\n\n
I3C master write transaction (write to I3C slave)
\n
If a master's start with specific slave address was acked by other\ndevice, and the read/write bit in the address parameter\nof start method was 0, the master proceeds with a\nsdr_write call, no response is expected. Parameter\ndata in method write is the data transferred.\nThe parity bit is not passed explicitly in sdr_write, and that the slave\ncan assume the parity bit is correctly set.\n
\n\n
I3C master write transaction (write to I2C slave)
\n
When the master's start request is to write to I2C slave, i.e.,\nmaster issues a start request to I2C slave address with read/write bit\nis 0, then master proceeds with a sequence of write calls,\neach call expects a response call to a method acknowledge.\nThis is quite similar to I2C write transaction.
\n\n
I3C broadcast transaction
\n
When master starts a transfer with I3C Broadcast Address 0x7E which\nis passed as address header, i.e., address 0xFC passed in the\naddress argument of method start, a typical\nI3C message transfer is initiated.\n\nMultiple I3C slave devices may acknowledge the start request. The master\nwill conceive a request as being acknowledged if it was acknowledged by\nat least one of the slaves. Note that there will be a single\nacknowledge call in the master; the link or bus handles\naggregation of acks.\n\nMaster sends the I3C Commands (Common Command Code, CCC) using\nsdr_write method after receiving ACK, showing to communicate\nwith either all Slaves (Broadcast CCCs) or specific individual Slaves\n(Direct CCCs). This operation expects no response, and master will proceed.\n\nIf Broadcast CCC sent previously, master calls sdr_write method\nto transfer data to all slaves who acked the initial access.
\n\n
I3C direct transaction
\n
After sending a Direct CCC, master continues with a repeated start\nrequest along with one specific I3C slave address. The transaction goes\non just like master is communicating with only one slave. After the\ncommunication with one slave, master may be issue a repeated start request\nto another slave. Further communication is routed only to the targeted\nslave device.
\n
\n\nAfter sending a number of reads or a number of writes, the master may\nchoose to either call the stop method to issue a stop\ncondition which terminates the transfer, or to call the start\nmethod again to issue a repeated start condition. The repeated start\ncondition works like a normal start condition.\n\nThe start method and read method in the slave\ninterfaces are allowed to respond synchronously; i.e., the\nacknowledge or read method may be called before the\ncorresponding method in the slave interfaces has returned. A master that\nneeds to connect directly to a slave device needs to take this into\nconsideration; however, when communicating via an i3c-link\nobject, the link guarantees that all responses are asynchronous.\n\nThe method daa_read and method daa_response are used\nin Dynamic Address Assignment process.\nMethod daa_read is called from master to signal a daa read request.\nMethod daa_response is called from slave to send slave specific\n8-bytes data (48-bit Unique ID, BCR, DCR) to master. The parameter\nid, bcr and dcr in method\ndaa_response represent the slave specific daa data.\nIf multiple slaves response daa data, the slave with the lowest data wins\nand it will get the assigned address this time.\nMaster calls method write in slave interfaces to send assigned\ndynamic address to the slave who wins. This operation expects a response\ncall to method acknowledge in master side. Parameter\ndata in method write stores the assigned address.\n\nMaster should implement the method stop in the interface\ni3c_slave in case there is secondary master in the\nconfiguration which may issue start request.\n\nSlave can request to start a communication through ibi_request.\nThe request is sent to Current Master which drives the bus now.\nIf the master chooses to continue the slave request, ibi_start\nis called, this ibi start will broadcast to all devices in the configuration.\nThen slave can send its address header with ibi_address\nargument address. The address header can be 0x02 for Hot-Join,\nor the address of the slave itself for IBI and secondary master with\nread/write bit 1 and 0 respectively.\nIf more than one slave issues ibi_address, arbitration occurs,\nthe slave with lowest address header wins and the winning address will be\ndelivered to master by link or bus.\nAt that time, master issues ibi_acknowledge to the slave who wins.\nOther slaves which do not receive ibi_acknowledge will consume it\nlost arbitration already.\n\n
\n\nCell Context for all methods.\n"] -pub type i3c_ack_t = ::std::os::raw::c_uint; -pub type i3c_master_interface_t = i3c_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_master_interface { - pub acknowledge: - ::std::option::Option, - pub read_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: uint8, more: bool), - >, - pub daa_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: uint64, bcr: uint8, dcr: uint8), - >, - pub ibi_request: ::std::option::Option, - pub ibi_address: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(i3c_master_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_master_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(read_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_response) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(daa_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_request) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_master_interface), - "::", - stringify!(ibi_address) - ) - ); -} -pub type i3c_slave_interface_t = i3c_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_slave_interface { - pub start: ::std::option::Option, - pub write: ::std::option::Option, - pub sdr_write: - ::std::option::Option, - pub read: ::std::option::Option, - pub daa_read: ::std::option::Option, - pub stop: ::std::option::Option, - pub ibi_start: ::std::option::Option, - pub ibi_acknowledge: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_i3c_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_slave_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sdr_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(sdr_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).daa_read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(daa_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_start) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ibi_acknowledge) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(i3c_slave_interface), - "::", - stringify!(ibi_acknowledge) - ) - ); -} -pub type i3c_daa_snoop_interface_t = i3c_daa_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct i3c_daa_snoop_interface { - pub assigned_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - bcr: uint8, - dcr: uint8, - address: uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_i3c_daa_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(i3c_daa_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).assigned_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(i3c_daa_snoop_interface), - "::", - stringify!(assigned_address) - ) - ); -} -#[doc = " not connected at all"] -pub const ieee_802_3_media_t_IEEE_no_media: ieee_802_3_media_t = 0; -#[doc = " media type is unknown"] -pub const ieee_802_3_media_t_IEEE_media_unknown: ieee_802_3_media_t = 1; -#[doc = " 10 Mb/s CSMA/CD LAN over RG 58 coaxial cable"] -pub const ieee_802_3_media_t_IEEE_10base2: ieee_802_3_media_t = 2; -#[doc = " 10 Mb/s CSMA/CD LAN over coaxial cable\n(i.e., thicknet)"] -pub const ieee_802_3_media_t_IEEE_10base5: ieee_802_3_media_t = 3; -#[doc = " 10 Mb/s CSMA/CD LAN over fiber optic cable"] -pub const ieee_802_3_media_t_IEEE_10baseF: ieee_802_3_media_t = 4; -#[doc = " 10 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_10baseT: ieee_802_3_media_t = 5; -#[doc = " 100 Mb/s CSMA/CD LAN over two optical fibers"] -pub const ieee_802_3_media_t_IEEE_100baseFX: ieee_802_3_media_t = 6; -#[doc = " 100 Mb/s CSMA/CD LAN"] -pub const ieee_802_3_media_t_IEEE_100baseT: ieee_802_3_media_t = 7; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 3\nor better balanced cabling"] -pub const ieee_802_3_media_t_IEEE_100baseT2: ieee_802_3_media_t = 8; -#[doc = " 100 Mb/s CSMA/CD LAN over four pairs of cat 3,\n4, and 5 UTP wire"] -pub const ieee_802_3_media_t_IEEE_100baseT4: ieee_802_3_media_t = 9; -#[doc = " 100 Mb/s CSMA/CD LAN over two pairs of cat 5\nUTP or STP wire"] -pub const ieee_802_3_media_t_IEEE_100baseTX: ieee_802_3_media_t = 10; -#[doc = " 100 Mb/s CSMA/CD LAN with PMD and MDI of\nISO/IEC 9314 by ASC X3T12 (FDDI)"] -pub const ieee_802_3_media_t_IEEE_100baseX: ieee_802_3_media_t = 11; -#[doc = " 1000 Mb/s CSMA/CD LAN derived from\nANSI X3.230-1994 (FC-PH) [B20]11"] -pub const ieee_802_3_media_t_IEEE_1000baseX: ieee_802_3_media_t = 12; -#[doc = " 1000BASE-X over specially shielded balanced\ncopper jumper cable assemblies"] -pub const ieee_802_3_media_t_IEEE_1000baseCX: ieee_802_3_media_t = 13; -#[doc = " 1000BASE-X using long wavelength laser over\nmultimode and single-mode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseLX: ieee_802_3_media_t = 14; -#[doc = " 1000BASE-X using short wavelength laser over\nmultimode fiber"] -pub const ieee_802_3_media_t_IEEE_1000baseSX: ieee_802_3_media_t = 15; -#[doc = " 1000 Mb/s CSMA/CD LAN using four pairs of cat 5\nbalanced copper cabling"] -pub const ieee_802_3_media_t_IEEE_1000baseT: ieee_802_3_media_t = 16; -#[doc = " 10 Mb/s CSMA/CD LAN over single broadband\ncable"] -pub const ieee_802_3_media_t_IEEE_10broad36: ieee_802_3_media_t = 17; -#[doc = " 1 Mb/s CSMA/CD LAN over two pairs of\ntwisted-pair telephone wire"] -pub const ieee_802_3_media_t_IEEE_1base5: ieee_802_3_media_t = 18; -pub type ieee_802_3_media_t = ::std::os::raw::c_uint; -pub const ieee_802_3_duplex_mode_t_IEEE_half_duplex: ieee_802_3_duplex_mode_t = 0; -pub const ieee_802_3_duplex_mode_t_IEEE_full_duplex: ieee_802_3_duplex_mode_t = 1; -pub type ieee_802_3_duplex_mode_t = ::std::os::raw::c_uint; -pub const ieee_802_3_link_status_t_IEEE_link_unconnected: ieee_802_3_link_status_t = 0; -pub const ieee_802_3_link_status_t_IEEE_link_down: ieee_802_3_link_status_t = 1; -pub const ieee_802_3_link_status_t_IEEE_link_up: ieee_802_3_link_status_t = 2; -#[doc = " "] -pub type ieee_802_3_link_status_t = ::std::os::raw::c_uint; -pub type ieee_802_3_phy_interface_t = ieee_802_3_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: *const uint8, mask: *const uint8), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v2_interface_t = ieee_802_3_phy_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v2_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buf: *mut dbuffer_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_mac: - ::std::option::Option, - pub del_mac: - ::std::option::Option, - pub add_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub del_mac_mask: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mac: byte_string_t, mask: byte_string_t), - >, - pub set_promiscous_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, enable: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_mac_mask) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(add_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_mac_mask) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(del_mac_mask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_promiscous_mode) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v2_interface), - "::", - stringify!(set_promiscous_mode) - ) - ); -} -pub type ieee_802_3_phy_v3_interface_t = ieee_802_3_phy_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_phy_v3_interface { - pub send_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - frame: *const frags_t, - replace_crc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub check_tx_bandwidth: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_phy_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_phy_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(send_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_tx_bandwidth) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_phy_v3_interface), - "::", - stringify!(check_tx_bandwidth) - ) - ); -} -pub type ieee_802_3_mac_interface_t = ieee_802_3_mac_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - buf: *mut dbuffer_t, - crc_ok: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -pub type ieee_802_3_mac_v3_interface_t = ieee_802_3_mac_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ieee_802_3_mac_v3_interface { - pub receive_frame: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - frame: *const frags_t, - crc_ok: ::std::os::raw::c_int, - ), - >, - pub tx_bandwidth_available: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, phy: ::std::os::raw::c_int), - >, - pub link_status_changed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - status: ieee_802_3_link_status_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ieee_802_3_mac_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ieee_802_3_mac_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_frame) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(receive_frame) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tx_bandwidth_available) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(tx_bandwidth_available) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).link_status_changed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ieee_802_3_mac_v3_interface), - "::", - stringify!(link_status_changed) - ) - ); -} -#[doc = " \nThe interrupt_ack_fn_t function is called by an interrupt target\nto ack an interrupt. Returns the interrupt vector.\ninterrupt_ack_fn_t\n"] -pub type interrupt_ack_fn_t = - ::std::option::Option ::std::os::raw::c_int>; -pub type interrupt_ack_interface_t = interrupt_ack_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_ack_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: interrupt_ack_fn_t, - ack_obj: *mut conf_object_t, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cb: interrupt_ack_fn_t), - >, -} -#[test] -fn bindgen_test_layout_interrupt_ack_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_ack_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_ack_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type interrupt_cpu_interface_t = interrupt_cpu_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_cpu_interface { - pub ack: interrupt_ack_fn_t, -} -#[test] -fn bindgen_test_layout_interrupt_cpu_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_cpu_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_cpu_interface), - "::", - stringify!(ack) - ) - ); -} -pub const interrupt_source_t_Interrupt_Source_Icr_Ipr: interrupt_source_t = 0; -pub const interrupt_source_t_Interrupt_Source_Msi: interrupt_source_t = 1; -pub const interrupt_source_t_Interrupt_Source_Virtual_Wire: interrupt_source_t = 2; -pub const interrupt_source_t_Interrupt_Source_Nmi_Pin: interrupt_source_t = 3; -pub const interrupt_source_t_Interrupt_Source_Lvt: interrupt_source_t = 4; -pub const interrupt_source_t_Interrupt_Source_Iommu: interrupt_source_t = 5; -pub const interrupt_source_t_Interrupt_Source_Int2: interrupt_source_t = 6; -pub const interrupt_source_t_Interrupt_Source_Vmcs_Injection: interrupt_source_t = 7; -pub const interrupt_source_t_Interrupt_Source_Legacy_Apic_Vector: interrupt_source_t = 8; -pub const interrupt_source_t_Interrupt_Source_Self_Ipi: interrupt_source_t = 9; -pub const interrupt_source_t_Interrupt_Source_Unknown: interrupt_source_t = 10; -pub type interrupt_source_t = ::std::os::raw::c_uint; -pub type interrupt_subscriber_interface_t = interrupt_subscriber_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_subscriber_interface { - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - delivery_mode: apic_delivery_mode_t, - level_assert: bool, - trigger_mode: apic_trigger_mode_t, - vector: uint8, - source: interrupt_source_t, - ), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_interrupt_subscriber_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_subscriber_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_subscriber_interface), - "::", - stringify!(reset) - ) - ); -} -pub type simple_interrupt_interface_t = simple_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simple_interrupt_interface { - pub interrupt: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub interrupt_clear: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_simple_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simple_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_clear) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(simple_interrupt_interface), - "::", - stringify!(interrupt_clear) - ) - ); -} -#[doc = "This interrupt_query interface is used by devices connected to interrupt\ncontrollers to query whether their irq level is enabled in the interrupt\ncontroller or not. This is done by the is_enabled function.\n\nIt can also be used to register a callback function to be called when the\nirq is enabled or disabled through the register_callback function.\n\nThis is very old design, do not use in new models!"] -pub type interrupt_changed_state_callback_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_interface_t = interrupt_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interrupt_query_interface { - pub is_enabled: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub register_callback: ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_interrupt_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interrupt_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(is_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interrupt_query_interface), - "::", - stringify!(register_callback) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type device_interrupt_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type device_interrupt_clear_t = ::std::option::Option< - unsafe extern "C" fn(arg1: *mut conf_object_t, arg2: ::std::os::raw::c_int), ->; -pub type interrupt_query_register_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - device: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - cb: interrupt_changed_state_callback_t, - cb_data: *mut ::std::os::raw::c_void, - ), ->; -pub type interrupt_query_enabled_t = ::std::option::Option< - unsafe extern "C" fn( - interrupt_controller: *mut conf_object_t, - irq_level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, ->; -pub type io_memory_interface_t = io_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct io_memory_interface { - pub _deprecated_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_io_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(io_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(io_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(_deprecated_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(io_memory_interface), - "::", - stringify!(operation) - ) - ); -} -#[doc = " obsolete typedefs kept for compatibility"] -pub type map_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - memory_or_io: addr_space_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, ->; -pub type operation_func_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, ->; -extern "C" { - pub fn VT_io_memory_operation( - obj: *mut conf_object_t, - iface: *mut io_memory_interface_t, - memop: *mut generic_transaction_t, - data: bytes_t, - info: map_info_t, - ) -> bytes_t; -} -#[doc = " \nlink_message_t\n\nlink_message_t\n\ntypedef struct link_message link_message_t;\n\n\nGeneric part of a link message. This structure should always be the\nfirst member of the link message data structure, so that the link\nlibrary can access the generic part with a simple cast.\n\n\nThe datagram_link example defines its link message in\nthe following way:\n\n\n\nlink_type_t,\nSIMLINK_init_message\n\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_message_t { - pub refcount: atomic_counter_t, -} -#[test] -fn bindgen_test_layout_link_message_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(link_message_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(link_message_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refcount) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_message_t), - "::", - stringify!(refcount) - ) - ); -} -#[doc = " \nlink_type_t\n\nlink_type_t\n\n\nFunctions to be defined by the specific link implementation.\n\nThese functions can be classified in four groups:\n\n
\n\n
Message Links Manipulation
\n\n
The first five functions are related to the link-specific\nmessages.\n\nAll five functions can be called in any execution context and should\nbe thread-safe. They all take the link object as argument, in case it\ncontains information necessary to perform the operation. As the link\nobject is shared between the cells in which it is connected, it\nshould not be modified during execution. Mutable state should be kept\nin the endpoint objects instead.\n\nmsg_to_attr() transforms the message msg\ninto an attr_value_t value. It is used to checkpoint\nin-flight messages waiting to be delivered. The value returned will\nbe passed unchanged as argument attr to\nmsg_from_attr() when loading a checkpoint with pending\nlink messages. Neither function is expected to return an error,\nalthough msg_from_attr() is allowed to return NULL when\ntranslating a message it does not care to restore. This can be useful\nto keep checkpoint compatibility with older versions of the same link\nthat do not always have the same message protocol.\n\nUsing the datagram_link as an example, the\ndatagram-link message is defined as:\n\n\n\nmsg_to_attr() and msg_from_attr() are thus\ndefined as:\n\n\n\n\nfree_msg() is called when the message msg\nhas been delivered to all its destinations and is no longer\nneeded. All memory allocated for msg is expected to be\nfreed, including msg itself. The\ndatagram_link defines free_msg() as:\n\n\n\nmarshal() is called when the message msg\nshould be transmitted over a distributed simulation. Its purpose is\nto serialize the message into a frags_t\nrepresentation. Rather than returning the marshaled message,\nmarshal() takes the finish and\nfinish_data arguments, that it is expected to call\nonce the message has been marshaled.\n\nThe reason behind this mechanism is that it allows\nmarshal() to perform its operations with a\nfrags_t variable allocated on the stack, and thus to\nskip any heap allocation when sending the message. In case memory was\nallocated anyway, it should be freed just after finish\nhas returned.\n\n\n\nunmarshal() does the opposite of marshal(): it\ntakes a serialized frags_t representation of the message\ncalled data and returns a newly allocated link\nmessage.\n\n\n\n
\n\n
Endpoint Configuration
\n\n
Link endpoints are created as needed by the link\ncomponent. Depending on how they are created, they may not know yet\nwhich device they are connected to, so it might not be possible yet,\nfor example, to cache the device's communication interface in the\nendpoint's finalize() function. Additionally, there are\ncases where the device the endpoint talks to may be changed, such as\nwhen inserting a probe object to listen to the traffic.\n\nIn all of these cases, the device_changed() callback will\nbe called when the endpoint's device attribute is changed\nand the endpoint has reached to finalize phase. In that\ncallback, the new device can be obtained via\nSIMLINK_endpoint_device() and additional operations, such\nas interface caching, can be safely performed. The old device the\nendpoint was connected to is provided for convenience as an argument\nto device_changed().\n\nNote that if no device related operations are necessary, this\ncallback may be left unimplemented.\n\nThe ser_link implementation of\ndevice_changed is the following:\n\n\n\n
\n\n
Message Delivery
\n\n
Messages are delivered to the link by calling the\ndeliver() function. The arguments of deliver()\nare the endpoint ep that received the message and the\nmessage msg itself. The implementation of\ndeliver() is expected to call the correct device's\nfunction to deliver the message.\n\nNote that deliver() can be called in any execution context\nand should be thread-safe. The link object is shared between the\ncells in which it is connected, and should not be modified during\nexecution. Mutable state should be kept in the endpoint objects\ninstead.\n\nThe datagram_link implementation of\ndeliver() is the following:\n\n\n\n
\n\n
Configuration
\n\n
The last two functions of link_type_t are taking\ncare of the link configuration itself. In the same way messages needs\nto be marshaled when sent over a network, the global link\nconfiguration needs to be agreed upon when running the simulation in\nseveral processes.\n\nupdate_config_value() is called whenever a configuration\nparameter has been added or updated. The configuration parameter's\nname is provided as key and its new value as\nvalue, encoded as a frags_t.\n\nremove_config_value() is called whenever the configuration\nvalue key has been removed.\n\nThe interpretation of the link configuration messages is link\nspecific. The only configuration parameter that is defined by the\nlink library itself is goal_latency. This is handled\nentirely internally, although with the same mechanism as exposed\nhere. Configuration changes are initiated by the link objects\nthemselves with the Link Library API functions\nSIMLINK_config_update_value() and\nSIMLINK_config_remove_value().\n\nNote that the link object that initiates the configuration change is\nalso called back via update_config_value() and\nremove_config_value(). Note also that the configuration\nchanges may be buffered and sent later if they are initiated too soon\nfor the configuration message to propagate.\n\nConfiguration changes should only be initiated while in Global\nContext, so the two configuration functions above will only be called\nin Global Context. This allows them to modify properties of\nthe link object itself without needing to care about thread safety.\n\nAs an example, here is how ser_link defines these two\nfunctions. The serial link keeps track of all endpoints connected to\nit by saving their ID as a configuration parameter. It also uses a\nconfigurable buffer size.\n\nFinally, it is important to note that these two callbacks may be\ncalled from a non-execution thread. They should call the Simics API\nonly via SIM_thread_safe_callback(). This includes calling\nthe SIM_log_* functions.\n\n\n\n\n
\n\n
\n\n
\n\nlink_message_t,\nSIMLINK_init\n\n\n
\n
\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct link_type_t { - pub msg_to_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const link_message_t) -> attr_value_t, - >, - pub msg_from_attr: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, attr: attr_value_t) -> *mut link_message_t, - >, - pub free_msg: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *mut link_message_t), - >, - pub marshal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - msg: *const link_message_t, - finish: ::std::option::Option< - unsafe extern "C" fn(data: *mut ::std::os::raw::c_void, msg: *const frags_t), - >, - finish_data: *mut ::std::os::raw::c_void, - ), - >, - pub unmarshal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, msg: *const frags_t) -> *mut link_message_t, - >, - pub deliver: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, msg: *const link_message_t), - >, - pub update_config_value: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ), - >, - pub remove_config_value: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, key: *const ::std::os::raw::c_char), - >, - pub device_changed: ::std::option::Option< - unsafe extern "C" fn(ep: *mut conf_object_t, old_dev: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_link_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(link_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(link_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_to_attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_to_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_from_attr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(msg_from_attr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_msg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(free_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).marshal) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(marshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmarshal) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(unmarshal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(deliver) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_config_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(update_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_config_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(remove_config_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).device_changed) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(link_type_t), - "::", - stringify!(device_changed) - ) - ); -} -extern "C" { - pub fn SIMLINK_endpoint_link(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_id(ep: *const conf_object_t) -> uint64; -} -extern "C" { - pub fn SIMLINK_endpoint_clock(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_is_device(ep: *const conf_object_t) -> bool; -} -extern "C" { - pub fn SIMLINK_endpoint_device(ep: *const conf_object_t) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_endpoint_port(ep: *const conf_object_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_endpoint_dev_name( - ep: *const conf_object_t, - scratch: buffer_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIMLINK_init_library(); -} -extern "C" { - pub fn SIMLINK_init_message(msg: *mut link_message_t); -} -extern "C" { - pub fn SIMLINK_register_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_register_endpoint_class( - cls: *mut conf_class_t, - msg_type: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_register_snoop_endpoint_class(cls: *mut conf_class_t); -} -extern "C" { - pub fn SIMLINK_init(obj: *mut conf_object_t, type_: *const link_type_t); -} -extern "C" { - pub fn SIMLINK_endpoint_init(ep_obj: *mut conf_object_t, snoop: bool); -} -extern "C" { - pub fn SIMLINK_finalize(link: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_finalize(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_endpoint_disconnect(ep: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_pre_delete(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIMLINK_snoop_endpoint_create( - cls: *mut conf_class_t, - link: *mut conf_object_t, - clock: *mut conf_object_t, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_config_update_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - value: *const frags_t, - ); -} -extern "C" { - pub fn SIMLINK_config_remove_value( - link: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIMLINK_find_endpoint_by_id(link: *mut conf_object_t, id: uint64) -> *mut conf_object_t; -} -extern "C" { - pub fn SIMLINK_send_message( - src_ep: *mut conf_object_t, - dst_id: uint64, - msg: *mut link_message_t, - ); -} -extern "C" { - pub fn SIMLINK_send_message_multi( - src_ep: *mut conf_object_t, - num_dsts: ::std::os::raw::c_uint, - dst_ids: *const uint64, - msg: *mut link_message_t, - ); -} -pub type map_demap_interface_t = map_demap_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct map_demap_interface { - #[doc = " old-style"] - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - target: *mut conf_object_t, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_default: ::std::option::Option, - #[doc = " new-style"] - pub map_simple: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub map_bridge: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - target: *mut conf_object_t, - target_port: *const ::std::os::raw::c_char, - map_info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub unmap: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub unmap_address: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - dev: *mut conf_object_t, - base: physical_address_t, - dev_port: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_map_demap_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(map_demap_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(map_demap_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_simple) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).map_bridge) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(map_bridge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unmap_address) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(map_demap_interface), - "::", - stringify!(unmap_address) - ) - ); -} -pub type memory_space_interface_t = memory_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_space_interface { - pub space_lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut map_list_t, - >, - pub access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub access_simple: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub access_simple_inq: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - buf: *mut uint8, - len: physical_address_t, - type_: read_or_write_t, - endian: endianness_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, - pub timing_model_operate: ::std::option::Option< - unsafe extern "C" fn( - space: *mut conf_object_t, - mop: *mut generic_transaction_t, - ) -> cycles_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - size: uint64, - value: uint8, - inquiry: bool, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_memory_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(memory_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).space_lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(space_lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).access_simple_inq) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(access_simple_inq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).timing_model_operate) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(timing_model_operate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(memory_space_interface), - "::", - stringify!(fill) - ) - ); -} -pub type port_space_interface_t = port_space_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct port_space_interface { - pub port_operation: ::std::option::Option< - unsafe extern "C" fn( - pspace_obj: *mut conf_object_t, - mop: *mut generic_transaction_t, - map_info: map_info_t, - ) -> exception_type_t, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - length: ::std::os::raw::c_int, - inquiry: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: physical_address_t, - data: attr_value_t, - inquiry: ::std::os::raw::c_int, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_port_space_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(port_space_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(port_space_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(port_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(port_space_interface), - "::", - stringify!(write) - ) - ); -} -pub type translate_interface_t = translate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translate_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_translate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translate_interface), - "::", - stringify!(translate) - ) - ); -} -pub type bridge_interface_t = bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bridge_interface { - pub not_taken: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src_space: *mut conf_object_t, - dst_space: *mut conf_object_t, - ex: exception_type_t, - mem_op: *mut generic_transaction_t, - mapinfo: map_info_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).not_taken) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bridge_interface), - "::", - stringify!(not_taken) - ) - ); -} -pub type microwire_interface_t = microwire_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct microwire_interface { - pub set_cs: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cs: ::std::os::raw::c_int), - >, - pub set_sk: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sk: ::std::os::raw::c_int), - >, - pub set_di: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, di: ::std::os::raw::c_int), - >, - pub get_do: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub read_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int) -> uint16, - >, - pub write_word: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, offset: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_microwire_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(microwire_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(microwire_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_cs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sk) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_sk) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_di) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(set_di) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_do) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(get_do) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_word) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(read_word) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_word) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(microwire_interface), - "::", - stringify!(write_word) - ) - ); -} -pub type mii_management_interface_t = mii_management_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_management_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mii_management_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_management_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_management_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_management_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mii_interface_t = mii_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mii_interface { - pub serial_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data_in: ::std::os::raw::c_int, - clock: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, index: ::std::os::raw::c_int, value: uint16), - >, -} -#[test] -fn bindgen_test_layout_mii_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mii_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mii_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serial_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(serial_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mii_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_bus_interface_t = mdio45_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_bus_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - phy: ::std::os::raw::c_int, - mdd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_bus_interface), - "::", - stringify!(write_register) - ) - ); -} -pub type mdio45_phy_interface_t = mdio45_phy_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mdio45_phy_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - ) -> uint16, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mmd: ::std::os::raw::c_int, - reg: ::std::os::raw::c_int, - value: uint16, - ), - >, -} -#[test] -fn bindgen_test_layout_mdio45_phy_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mdio45_phy_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mdio45_phy_interface), - "::", - stringify!(write_register) - ) - ); -} -pub const ms1553_phase_t_MS1553_Phase_Idle: ms1553_phase_t = 0; -pub const ms1553_phase_t_MS1553_Phase_T_Command: ms1553_phase_t = 1; -pub const ms1553_phase_t_MS1553_Phase_R_Command: ms1553_phase_t = 2; -pub const ms1553_phase_t_MS1553_Phase_M_T_Command: ms1553_phase_t = 3; -pub const ms1553_phase_t_MS1553_Phase_M_R_Command: ms1553_phase_t = 4; -pub const ms1553_phase_t_MS1553_Phase_M_N_Command: ms1553_phase_t = 5; -pub const ms1553_phase_t_MS1553_Phase_Data: ms1553_phase_t = 6; -pub const ms1553_phase_t_MS1553_Phase_Status: ms1553_phase_t = 7; -pub const ms1553_phase_t_MS1553_Num_Phases: ms1553_phase_t = 8; -#[doc = " \n"] -pub type ms1553_phase_t = ::std::os::raw::c_uint; -pub const ms1553_error_t_MS1553_Err_Manchester: ms1553_error_t = 0; -pub const ms1553_error_t_MS1553_Err_Sync_Field: ms1553_error_t = 1; -pub const ms1553_error_t_MS1553_Err_Word_Count: ms1553_error_t = 2; -pub const ms1553_error_t_MS1553_Err_Parity: ms1553_error_t = 3; -pub const ms1553_error_t_MS1553_Err_Protocol: ms1553_error_t = 4; -#[doc = " \n"] -pub type ms1553_error_t = ::std::os::raw::c_uint; -pub const ms1553_mode_code_t_MS1553_Dynamic_Bus_Control: ms1553_mode_code_t = 0; -pub const ms1553_mode_code_t_MS1553_Synchronize_T: ms1553_mode_code_t = 1; -pub const ms1553_mode_code_t_MS1553_Transmit_Status_word: ms1553_mode_code_t = 2; -pub const ms1553_mode_code_t_MS1553_Initiate_Self_Test: ms1553_mode_code_t = 3; -pub const ms1553_mode_code_t_MS1553_Transmitter_Shutdown: ms1553_mode_code_t = 4; -pub const ms1553_mode_code_t_MS1553_Override_Transmitter_Shutdown: ms1553_mode_code_t = 5; -pub const ms1553_mode_code_t_MS1553_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 6; -pub const ms1553_mode_code_t_MS1553_Override_Inhibit_Terminal_Flag_Bit: ms1553_mode_code_t = 7; -pub const ms1553_mode_code_t_MS1553_Reset_Remote_Terminal: ms1553_mode_code_t = 8; -pub const ms1553_mode_code_t_MS1553_Transmit_Vector_Word: ms1553_mode_code_t = 16; -pub const ms1553_mode_code_t_MS1553_Synchronize_R: ms1553_mode_code_t = 17; -pub const ms1553_mode_code_t_MS1553_Transmit_Last_Command_Word: ms1553_mode_code_t = 18; -pub const ms1553_mode_code_t_MS1553_Transmit_BIT_Vector: ms1553_mode_code_t = 19; -pub const ms1553_mode_code_t_MS1553_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 20; -pub const ms1553_mode_code_t_MS1553_Override_Selected_Transmitter_Shutdown: ms1553_mode_code_t = 21; -#[doc = " \n"] -pub type ms1553_mode_code_t = ::std::os::raw::c_uint; -#[doc = " \n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_words_t { - pub length: ::std::os::raw::c_int, - pub data: *const uint16, -} -#[test] -fn bindgen_test_layout_ms1553_words_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_words_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_words_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_words_t), - "::", - stringify!(data) - ) - ); -} -impl Default for ms1553_words_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ms1553_link_interface_t = ms1553_link_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_link_interface { - pub connect_terminal: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_terminal: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub send_data: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub set_terminal_address: ::std::option::Option< - unsafe extern "C" fn( - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - address: ::std::os::raw::c_int, - ), - >, - pub clr_terminal_address: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub set_idle: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, id: ::std::os::raw::c_int), - >, - pub inject_data: ::std::option::Option< - unsafe extern "C" fn(link: *mut conf_object_t, phase: ms1553_phase_t, data: ms1553_words_t), - >, - pub inject_error: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_ms1553_link_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_link_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_terminal) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(connect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_terminal) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(disconnect_terminal) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(send_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_terminal_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clr_terminal_address) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(clr_terminal_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_idle) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(set_idle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_error) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(ms1553_link_interface), - "::", - stringify!(inject_error) - ) - ); -} -pub type ms1553_terminal_interface_t = ms1553_terminal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ms1553_terminal_interface { - pub receive_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - phase: ms1553_phase_t, - data: ms1553_words_t, - ), - >, - pub receive_error: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - link: *mut conf_object_t, - id: ::std::os::raw::c_int, - err: ms1553_error_t, - ), - >, -} -#[test] -fn bindgen_test_layout_ms1553_terminal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ms1553_terminal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_error) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ms1553_terminal_interface), - "::", - stringify!(receive_error) - ) - ); -} -pub type nand_flash_interface_t = nand_flash_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct nand_flash_interface { - pub read_access: ::std::option::Option uint16>, - pub write_access: - ::std::option::Option, - pub set_command_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_address_latch_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_write_protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, - pub set_spare_area_enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_nand_flash_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(nand_flash_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(nand_flash_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(read_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_access) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(write_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_command_latch_enable) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_command_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_address_latch_enable) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_address_latch_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_write_protect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_write_protect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_spare_area_enable) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(nand_flash_interface), - "::", - stringify!(set_spare_area_enable) - ) - ); -} -#[doc = " \npci_memory_transaction_t\n\npci_memory_transaction_t\n\n\n\n\nThe pci_memory_transaction_t is used for memory accesses\ninitiated by PCI devices.\n\nAll struct fields are internal and should never be used\ndirectly.\n\nA generic_transaction_t can be converted to a\npci_memory_transaction_t via the\nSIM_pci_mem_trans_from_generic() function. Never explicitly cast\none struct to the other, always use the Simics API functions.\n\nSIM_pci_mem_trans_from_generic,\ngeneric_transaction_t\n\n\n\n"] -pub type pci_memory_transaction_t = pci_memory_transaction; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_memory_transaction { - pub _internal_s: generic_transaction_t, - pub _internal_original_size: uint32, - pub _internal_bus_address: ::std::os::raw::c_int, - pub _internal_bus_number: ::std::os::raw::c_int, - pub _internal_device_number: ::std::os::raw::c_int, - pub _internal_function_number: ::std::os::raw::c_int, - pub _internal_tlp_prefix: uint32, -} -#[test] -fn bindgen_test_layout_pci_memory_transaction() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_memory_transaction)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_s) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_original_size) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_original_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_address) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_bus_number) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_device_number) as usize - ptr as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_device_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_function_number) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_function_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._internal_tlp_prefix) as usize - ptr as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(pci_memory_transaction), - "::", - stringify!(_internal_tlp_prefix) - ) - ); -} -impl Default for pci_memory_transaction { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " The documentation for these EXPORTED methods are in mop.c and in the API RM"] - pub fn SIM_pci_mem_trans_from_generic( - mop: *mut generic_transaction_t, - ) -> *mut pci_memory_transaction_t; -} -extern "C" { - pub fn VT_get_pci_mem_op_requester_id(mop: *const pci_memory_transaction_t) -> uint16; -} -extern "C" { - pub fn VT_get_pci_mem_op_tlp_prefix(mop: *const pci_memory_transaction_t) -> uint32; -} -extern "C" { - pub fn VT_set_pci_mem_op_tlp_prefix(mop: *mut pci_memory_transaction_t, tlp_prefix: uint32); -} -pub type pci_device_interface_t = pci_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_device_interface { - pub bus_reset: ::std::option::Option, - pub _deprecated_interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub _deprecated_special_cycle: - ::std::option::Option, - #[doc = " System Error"] - pub system_error: ::std::option::Option, - #[doc = " peer-to-peer interrupt mechanism"] - pub interrupt_raised: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, - pub interrupt_lowered: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pin: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pci_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pci_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr)._deprecated_interrupt_acknowledge) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr)._deprecated_special_cycle) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(_deprecated_special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_raised) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_raised) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_lowered) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_device_interface), - "::", - stringify!(interrupt_lowered) - ) - ); -} -pub type pci_bus_interface_t = pci_bus_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bus_interface { - #[doc = " Deprecated; memory_access"] - pub memory_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - ) -> exception_type_t, - >, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - pin: ::std::os::raw::c_int, - ), - >, - #[doc = " Deprecated; interrupt_acknowledge"] - pub interrupt_acknowledge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ) -> ::std::os::raw::c_int, - >, - pub remove_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - function: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub set_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - pub set_sub_bus_number: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bus_id: ::std::os::raw::c_int), - >, - #[doc = " Deprecated; add_default, remove_default"] - pub add_default: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - space: addr_space_t, - target: *mut conf_object_t, - info: map_info_t, - ), - >, - pub remove_default: - ::std::option::Option, - pub bus_reset: ::std::option::Option, - #[doc = " Deprecated; special_cycle"] - pub special_cycle: - ::std::option::Option, - pub system_error: ::std::option::Option, - pub get_bus_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - dev: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub set_device_status: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - device: ::std::os::raw::c_int, - function: ::std::os::raw::c_int, - enabled: ::std::os::raw::c_int, - ), - >, - #[doc = " Memory spaces"] - pub configuration_space: - ::std::option::Option *mut conf_object_t>, - pub io_space: - ::std::option::Option *mut conf_object_t>, - pub memory_space: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_pci_bus_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 144usize, - concat!("Size of: ", stringify!(pci_bus_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bus_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_access) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_access) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(lower_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).interrupt_acknowledge) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(interrupt_acknowledge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_map) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_bus_number) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_sub_bus_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_sub_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_default) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(add_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_default) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(remove_default) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bus_reset) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(bus_reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).special_cycle) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(special_cycle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_bus_address) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(get_bus_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_device_status) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(set_device_status) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).configuration_space) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(configuration_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).io_space) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(io_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_space) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(pci_bus_interface), - "::", - stringify!(memory_space) - ) - ); -} -pub type pci_upstream_interface_t = pci_upstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_upstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_upstream_operation_interface_t = pci_upstream_operation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_upstream_operation_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: buffer_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - rid: uint16, - space: addr_space_t, - address: physical_address_t, - buffer: bytes_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_upstream_operation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_upstream_operation_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_upstream_operation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_upstream_operation_interface), - "::", - stringify!(write) - ) - ); -} -pub type pci_downstream_interface_t = pci_downstream_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_downstream_interface { - pub operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mem_op: *mut generic_transaction_t, - space: addr_space_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_pci_downstream_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_downstream_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_downstream_interface), - "::", - stringify!(operation) - ) - ); -} -pub type pci_bridge_interface_t = pci_bridge_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_bridge_interface { - pub system_error: ::std::option::Option, - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_bridge_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_bridge_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).system_error) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(system_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_bridge_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -pub type pci_interrupt_interface_t = pci_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_interrupt_interface { - pub raise_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, - pub lower_interrupt: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - pci_bus: *mut conf_object_t, - device: ::std::os::raw::c_int, - pin: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_pci_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).raise_interrupt) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(raise_interrupt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lower_interrupt) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_interrupt_interface), - "::", - stringify!(lower_interrupt) - ) - ); -} -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTA: pci_interrupt_pin_t = 1; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTB: pci_interrupt_pin_t = 2; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTC: pci_interrupt_pin_t = 3; -#[doc = " As encoded in the PCIe spec; Interrupt Pin register"] -pub const pci_interrupt_pin_t_PCI_INTERRUPT_INTD: pci_interrupt_pin_t = 4; -#[doc = "\n"] -pub type pci_interrupt_pin_t = ::std::os::raw::c_uint; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_ATS_Invalidate: pcie_message_type_t = 1; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Request: pcie_message_type_t = 4; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_PRS_Response: pcie_message_type_t = 5; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Latency_Tolerance_Reporting: pcie_message_type_t = 16; -#[doc = " Address Translation"] -pub const pcie_message_type_t_PCIE_Optimized_Buffer_Flush_Fill: pcie_message_type_t = 18; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTA: pcie_message_type_t = 32; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTB: pcie_message_type_t = 33; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTC: pcie_message_type_t = 34; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Assert_INTD: pcie_message_type_t = 35; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTA: pcie_message_type_t = 36; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTB: pcie_message_type_t = 37; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTC: pcie_message_type_t = 38; -#[doc = " INTx emulation"] -pub const pcie_message_type_t_PCIE_Msg_Deassert_INTD: pcie_message_type_t = 39; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Active_State_Nak: pcie_message_type_t = 20; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME: pcie_message_type_t = 24; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_Turn_Off: pcie_message_type_t = 25; -#[doc = " Power Management"] -pub const pcie_message_type_t_PCIE_PM_PME_TO_Ack: pcie_message_type_t = 27; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_COR: pcie_message_type_t = 48; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_NONFATAL: pcie_message_type_t = 49; -#[doc = " Error Messages"] -pub const pcie_message_type_t_PCIE_ERR_FATAL: pcie_message_type_t = 51; -#[doc = " Locked Transaction"] -pub const pcie_message_type_t_PCIE_Unlock: pcie_message_type_t = 0; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Set_Slot_Power_Limit: pcie_message_type_t = 80; -#[doc = " Slot Power Limit"] -pub const pcie_message_type_t_PCIE_Precision_Time_Measurement: pcie_message_type_t = 82; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_On: pcie_message_type_t = 69; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Blink: pcie_message_type_t = 71; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Power_Indicator_Off: pcie_message_type_t = 68; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Button_Pressed: pcie_message_type_t = 72; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_On: pcie_message_type_t = 65; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Blink: pcie_message_type_t = 67; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_HP_Attention_Indicator_Off: pcie_message_type_t = 64; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_0: pcie_message_type_t = 126; -#[doc = " Hot Plug Messages"] -pub const pcie_message_type_t_PCIE_Vendor_Defined_Type_1: pcie_message_type_t = 127; -#[doc = " legacy name for PCIE_Unlock"] -pub const pcie_message_type_t_PCIE_Locked_Transaction: pcie_message_type_t = 0; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Down: pcie_message_type_t = -1; -#[doc = " Data Link Layer (virtual) Messages\n\nNOTE: these messages only exist on Simics simulator, as they are\nnormally part of the Data Link Layer which is below the level of\nabstraction for Simics PCIe models\n\nAccording to PCIe rev 2.0, when a target receives a message that it\ndoes not recognize or support, except for the \"Vendor Defined Type\n1\" message, it should treat the request as an \"Unsupported Request\"\nand report it accordingly (see sec 2.3.1 for reference).\n\nHence models that comply with rev 2.0 must be updated to either\n1) handle these messages or 2) ignore these messages.\n\nIdeally we would like to use a new pcie_link interface to transmit\nthis information - see bug 17849 for more info."] -pub const pcie_message_type_t_PCIE_DLL_Link_Up: pcie_message_type_t = -2; -#[doc = "\n"] -pub type pcie_message_type_t = ::std::os::raw::c_int; -pub type pci_express_interface_t = pci_express_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_interface { - pub send_message: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - type_: pcie_message_type_t, - payload: byte_string_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_express_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_message) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_interface), - "::", - stringify!(send_message) - ) - ); -} -pub type pci_express_hotplug_interface_t = pci_express_hotplug_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_express_hotplug_interface { - #[doc = " This is sent when a device is added or removed from the bus."] - pub presence_change: ::std::option::Option< - unsafe extern "C" fn( - dst: *mut conf_object_t, - src: *mut conf_object_t, - is_present: ::std::os::raw::c_int, - ), - >, - pub inject_power_fault: ::std::option::Option, - pub press_attention_button: - ::std::option::Option, - pub set_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, locked: ::std::os::raw::c_int), - >, - pub get_mrl_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_pci_express_hotplug_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pci_express_hotplug_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).presence_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(presence_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inject_power_fault) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(inject_power_fault) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).press_attention_button) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(press_attention_button) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mrl_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(set_mrl_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mrl_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pci_express_hotplug_interface), - "::", - stringify!(get_mrl_state) - ) - ); -} -pub type pci_multi_function_device_interface_t = pci_multi_function_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pci_multi_function_device_interface { - pub supported_functions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_pci_multi_function_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pci_multi_function_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pci_multi_function_device_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_functions) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pci_multi_function_device_interface), - "::", - stringify!(supported_functions) - ) - ); -} -pub const pcie_type_t_PCIE_Type_Not_Set: pcie_type_t = 0; -pub const pcie_type_t_PCIE_Type_Mem: pcie_type_t = 1; -pub const pcie_type_t_PCIE_Type_IO: pcie_type_t = 2; -pub const pcie_type_t_PCIE_Type_Cfg: pcie_type_t = 3; -pub const pcie_type_t_PCIE_Type_Msg: pcie_type_t = 4; -pub const pcie_type_t_PCIE_Type_Other: pcie_type_t = 5; -#[doc = " \n\nThis interface must be implemented by all PCIe devices that can receive\ndownstream transactions.\n\nconnected and disconnected are used to indicate that\nthe device is (dis)connected to port_obj with device id\ndevice_id and may use the pcie_map interface to\nadd/remove functions and claim/release other resources\n\nhot_reset is used to indicate that a Hot Reset has been signaled\non the PCIe link to which the device is connected. It is up to the device to\nreset functions and other resources mapped using the pcie_map\ninterface.\n\nNote: This interface is considered tech-preview and may change without\nnotice.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type pcie_type_t = ::std::os::raw::c_uint; -pub type pcie_device_interface_t = pcie_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_device_interface { - pub connected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub disconnected: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - port_obj: *mut conf_object_t, - device_id: uint16, - ), - >, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(pcie_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(disconnected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_device_interface), - "::", - stringify!(hot_reset) - ) - ); -} -pub type pcie_map_interface_t = pcie_map_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_map_interface { - pub add_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - nfo: map_info_t, - type_: pcie_type_t, - ), - >, - pub del_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - base: physical_address_t, - type_: pcie_type_t, - ), - >, - pub add_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub del_function: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - map_obj: *mut conf_object_t, - function_id: uint16, - ), - >, - pub enable_function: - ::std::option::Option, - pub disable_function: - ::std::option::Option, - pub get_device_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, dev_obj: *mut conf_object_t) -> uint16, - >, -} -#[test] -fn bindgen_test_layout_pcie_map_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pcie_map_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_map_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_map) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_function) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(add_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_function) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(del_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_function) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(enable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_function) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(disable_function) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_device_id) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(pcie_map_interface), - "::", - stringify!(get_device_id) - ) - ); -} -pub type pcie_port_control_interface_t = pcie_port_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_port_control_interface { - pub set_secondary_bus_number: - ::std::option::Option, - pub hot_reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pcie_port_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_port_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_secondary_bus_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(set_secondary_bus_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hot_reset) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pcie_port_control_interface), - "::", - stringify!(hot_reset) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_type), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_requester_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_requester_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_requester_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_requester_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_device_id { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_device_id() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_device_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_device_id), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_type { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_type() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_msg_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_type), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_msg_route_t_PCIE_Msg_Route_Not_Set: pcie_msg_route_t = 0; -#[doc = " To RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Upstream: pcie_msg_route_t = 1; -#[doc = " IO and Memory"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Address: pcie_msg_route_t = 2; -#[doc = " Messages"] -pub const pcie_msg_route_t_PCIE_Msg_Route_ID: pcie_msg_route_t = 3; -#[doc = " From RC"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Broadcast: pcie_msg_route_t = 4; -#[doc = " INTx"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Terminate: pcie_msg_route_t = 5; -#[doc = " PME_Turn_Off_Ack"] -pub const pcie_msg_route_t_PCIE_Msg_Route_Gather: pcie_msg_route_t = 6; -pub type pcie_msg_route_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_msg_route { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_msg_route() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_msg_route) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_msg_route), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_pasid { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_pasid() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_pasid)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_pasid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_pasid), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_at_t_PCIE_AT_Not_Set: pcie_at_t = 0; -pub const pcie_at_t_PCIE_AT_Untranslated: pcie_at_t = 1; -pub const pcie_at_t_PCIE_AT_Translation_Request: pcie_at_t = 2; -pub const pcie_at_t_PCIE_AT_Translated: pcie_at_t = 3; -pub type pcie_at_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_at { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_at() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(dummy_semicolon_eater_pcie_at)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_at), - "::", - stringify!(dummy) - ) - ); -} -pub const pcie_error_t_PCIE_Error_Not_Set: pcie_error_t = 0; -pub const pcie_error_t_PCIE_Error_Unsupported_Request: pcie_error_t = 1; -pub const pcie_error_t_PCIE_Error_Completer_Abort: pcie_error_t = 2; -pub const pcie_error_t_PCIE_Error_Master_Abort: pcie_error_t = 3; -pub const pcie_error_t_PCIE_Error_No_Error: pcie_error_t = 4; -pub const pcie_error_t_PCIE_Error_Configuration_Request_Retry_Status: pcie_error_t = 5; -pub type pcie_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_error_ret_t { - pub val: pcie_error_t, -} -#[test] -fn bindgen_test_layout_pcie_error_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pcie_error_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_error_ret_t), - "::", - stringify!(val) - ) - ); -} -impl Default for pcie_error_ret_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_error_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_error_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_error_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_error_ret), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pcie_byte_count_ret_t { - pub val: uint64, -} -#[test] -fn bindgen_test_layout_pcie_byte_count_ret_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pcie_byte_count_ret_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pcie_byte_count_ret_t), - "::", - stringify!(val) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_semicolon_eater_pcie_byte_count_ret { - pub dummy: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_dummy_semicolon_eater_pcie_byte_count_ret() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!( - "Size of: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_semicolon_eater_pcie_byte_count_ret), - "::", - stringify!(dummy) - ) - ); -} -#[doc = " Read is an instruction fetch."] -pub const ram_operation_flags_t_Sim_Ram_Op_Fetch: ram_operation_flags_t = 1; -#[doc = " Operation should not cause\natomic reservations to be lost."] -pub const ram_operation_flags_t_Sim_Ram_Op_Non_Coherent: ram_operation_flags_t = 2; -#[doc = " \nram_operation_flags_t\n\nThe ram interface is implemented by classes that provide\nrandom access read/write memory. The rom interface is\nidentical to ram but provides read only memory (writes are\ndropped by the memory system).\n\nBoth the ram and rom interfaces are Simics internal, and should not be used\nby user-defined classes.\n\nThe get_page method is obsolete and should not be implemented.\n\nThe fill method fills a range with a specified byte value.\n\nThe read method reads a number of bytes from address\naddr into the buffer data. The number of\nbytes read is given by the buffer size.\n\nThe write method writes the bytes in data to\naddress addr.\n\nThe touch method is similar to the read and\nwrite methods, except that no data is actually transferred; the\nmethod triggers side effects like revoking conflicting direct-memory\npermissions from affected pages. The rw argument determines\nwhether the operation is a handled as a read or as a write.\n\nThe flags argument is a bitmask which modify the behavior\nof read, write and touch operations in\nvarious ways.\n\nThe size method returns the memory size in bytes; that is, the\nhighest usable address plus one.\n\n\n\n\nCell Context for all methods.\n\n\nCell Context for all methods.\n"] -pub type ram_operation_flags_t = ::std::os::raw::c_uint; -pub type ram_interface_t = ram_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_interface { - #[doc = " The get_page is method is obsolete and should be left\nunimplemented."] - pub get_page: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, addr: physical_address_t) -> *mut page_t, - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - start: physical_address_t, - length: uint64, - value: uint8, - ), - >, - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: buffer_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - data: bytes_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub touch: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - addr: uint64, - size: uint64, - rw: read_or_write_t, - flags: ram_operation_flags_t, - ) -> exception_type_t, - >, - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_ram_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_page) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(get_page) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).touch) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(touch) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_interface), - "::", - stringify!(size) - ) - ); -} -pub type rom_interface_t = ram_interface_t; -pub const rapidio_operation_t_RapidIO_Read: rapidio_operation_t = 0; -pub const rapidio_operation_t_RapidIO_Write: rapidio_operation_t = 1; -pub const rapidio_operation_t_RapidIO_Increment: rapidio_operation_t = 2; -pub const rapidio_operation_t_RapidIO_Decrement: rapidio_operation_t = 3; -pub const rapidio_operation_t_RapidIO_Test_and_Swap: rapidio_operation_t = 4; -pub const rapidio_operation_t_RapidIO_Set: rapidio_operation_t = 5; -pub const rapidio_operation_t_RapidIO_Clear: rapidio_operation_t = 6; -pub const rapidio_operation_t_RapidIO_Compare_and_Swap: rapidio_operation_t = 7; -pub const rapidio_operation_t_RapidIO_Swap: rapidio_operation_t = 8; -#[doc = " "] -pub type rapidio_operation_t = ::std::os::raw::c_uint; -pub type rapidio_v3_interface_t = rapidio_v3_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v3_interface { - pub memory_operation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - addr: physical_address_t, - buf: *mut dbuffer_t, - op: rapidio_operation_t, - ), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - data: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - mbox: uint16, - letter: uint16, - data: *mut dbuffer_t, - ), - >, - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - ) -> uint32, - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - destination: uint16, - source: uint16, - hopcount: uint8, - reg_no: ::std::os::raw::c_int, - value: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v3_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v3_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_operation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(memory_operation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v3_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v4_interface_t = rapidio_v4_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v4_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - hopcount: uint8, - msg: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v4_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v4_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v4_interface), - "::", - stringify!(port_write) - ) - ); -} -pub type rapidio_v5_interface_t = rapidio_v5_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rapidio_v5_interface { - pub transaction_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - addr: uint64, - op: rapidio_operation_t, - msg: bytes_t, - id: uint64, - ), - >, - pub transaction_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: bytes_t, id: uint64), - >, - pub doorbell: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - val: uint16, - ), - >, - pub deliver_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - mbox: uint16, - letter: uint16, - msg: bytes_t, - ), - >, - pub read_register_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - id: uint64, - ), - >, - pub read_register_response: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, val: uint32, id: uint64), - >, - pub write_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - reg_no: uint32, - val: uint32, - ), - >, - pub port_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - hopcount: uint8, - msg: bytes_t, - ), - >, - pub stream_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target_id: uint16, - source_id: uint16, - transport_class: uint32, - cos: uint8, - xh: uint8, - stream_id: uint16, - pdu: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_rapidio_v5_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rapidio_v5_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transaction_response) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(transaction_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).doorbell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(doorbell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deliver_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(deliver_message) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_request) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register_response) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(read_register_response) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_register) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(write_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port_write) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(port_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stream_data) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(rapidio_v5_interface), - "::", - stringify!(stream_data) - ) - ); -} -pub type sata_interface_t = sata_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sata_interface { - pub receive_fis: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_sata_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sata_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sata_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_fis) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sata_interface), - "::", - stringify!(receive_fis) - ) - ); -} -pub type serial_device_interface_t = serial_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_device_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub receive_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(serial_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(serial_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).receive_ready) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_device_interface), - "::", - stringify!(receive_ready) - ) - ); -} -pub type extended_serial_interface_t = extended_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extended_serial_interface { - pub write_at: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - value: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - fg: ::std::os::raw::c_int, - bg: ::std::os::raw::c_int, - ), - >, - pub graphics_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, in_graphics_mode: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_extended_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(extended_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(extended_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_at) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(write_at) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).graphics_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(extended_serial_interface), - "::", - stringify!(graphics_mode) - ) - ); -} -pub type rs232_device_interface_t = rs232_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_device_interface { - #[doc = " Flow control lines"] - pub cts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub dsr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Ring indicator"] - pub ring: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Carrier detect"] - pub carrier: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub got_break: ::std::option::Option, - #[doc = " Frame error"] - pub got_frame_error: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_rs232_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(rs232_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(cts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dsr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(dsr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ring) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(ring) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).carrier) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(carrier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_break) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_break) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_frame_error) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_device_interface), - "::", - stringify!(got_frame_error) - ) - ); -} -pub const stop_bits_t_Stop_Bits_1: stop_bits_t = 0; -pub const stop_bits_t_Stop_Bits_1p5: stop_bits_t = 1; -pub const stop_bits_t_Stop_Bits_2: stop_bits_t = 2; -#[doc = " \nCurrently Simics internal.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type stop_bits_t = ::std::os::raw::c_uint; -pub const parity_mode_t_Parity_None: parity_mode_t = 0; -pub const parity_mode_t_Parity_Even: parity_mode_t = 1; -pub const parity_mode_t_Parity_Odd: parity_mode_t = 2; -pub type parity_mode_t = ::std::os::raw::c_uint; -pub type rs232_console_interface_t = rs232_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct rs232_console_interface { - #[doc = " Set line parameters"] - pub set_baudrate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - rate: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_data_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - commit: ::std::os::raw::c_int, - ), - >, - pub set_stop_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - stop_bits: stop_bits_t, - commit: ::std::os::raw::c_int, - ), - >, - pub set_parity_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parity_mode: parity_mode_t, - commit: ::std::os::raw::c_int, - ), - >, - #[doc = " Flow control lines"] - pub set_dtr: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - pub set_rts: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, - #[doc = " Break"] - pub set_break: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, status: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_rs232_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(rs232_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rs232_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_baudrate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_baudrate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_data_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_data_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stop_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_stop_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parity_mode) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_parity_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_dtr) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_dtr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_rts) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_rts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_break) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(rs232_console_interface), - "::", - stringify!(set_break) - ) - ); -} -pub const serial_peripheral_interface_flags_SPI_Flags_CPHA: serial_peripheral_interface_flags = 1; -pub const serial_peripheral_interface_flags_SPI_Flags_CPOL: serial_peripheral_interface_flags = 2; -pub type serial_peripheral_interface_flags = ::std::os::raw::c_uint; -pub use self::serial_peripheral_interface_flags as serial_peripheral_interface_flags_t; -pub type serial_peripheral_interface_master_interface_t = - serial_peripheral_interface_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_master_interface { - pub spi_response: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_response) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_master_interface), - "::", - stringify!(spi_response) - ) - ); -} -pub type serial_peripheral_interface_slave_interface_t = - serial_peripheral_interface_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_peripheral_interface_slave_interface { - pub spi_request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: ::std::os::raw::c_int, - last: ::std::os::raw::c_int, - bits: ::std::os::raw::c_int, - payload: *mut dbuffer_t, - ), - >, - pub connect_master: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - master: *mut conf_object_t, - port: *const ::std::os::raw::c_char, - flags: serial_peripheral_interface_flags_t, - ), - >, - pub disconnect_master: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, master: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_serial_peripheral_interface_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_peripheral_interface_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).spi_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(spi_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_master) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(connect_master) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_master) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(serial_peripheral_interface_slave_interface), - "::", - stringify!(disconnect_master) - ) - ); -} -pub type signal_interface_t = signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct signal_interface { - pub signal_raise: ::std::option::Option, - pub signal_lower: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_raise) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_raise) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_lower) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(signal_interface), - "::", - stringify!(signal_lower) - ) - ); -} -pub type multi_level_signal_interface_t = multi_level_signal_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct multi_level_signal_interface { - pub signal_level_change: - ::std::option::Option, - pub signal_current_level: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_multi_level_signal_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(multi_level_signal_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_level_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_level_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_current_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(multi_level_signal_interface), - "::", - stringify!(signal_current_level) - ) - ); -} -pub type pulse_interface_t = pulse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pulse_interface { - pub pulse: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_pulse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pulse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pulse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pulse) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pulse_interface), - "::", - stringify!(pulse) - ) - ); -} -#[doc = " "] -pub type telemetry_class_id_t = ::std::os::raw::c_int; -#[doc = " "] -pub type telemetry_id_t = ::std::os::raw::c_int; -pub type telemetry_interface_t = telemetry_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_interface { - pub get_telemetry_class_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_name: *const ::std::os::raw::c_char, - ) -> telemetry_class_id_t, - >, - pub get_telemetry_class_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_class_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_name: *const ::std::os::raw::c_char, - ) -> telemetry_id_t, - >, - pub get_telemetry_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_telemetry_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> *const ::std::os::raw::c_char, - >, - pub get_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - telemetry_class_id: telemetry_class_id_t, - telemetry_id: telemetry_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_telemetry_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(telemetry_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_class_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_name) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_telemetry_class_description) as usize - ptr as usize - }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_class_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_name) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_telemetry_description) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_telemetry_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telemetry_interface), - "::", - stringify!(get_value) - ) - ); -} -pub type translator_interface_t = translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: physical_address_t, - access: access_t, - default_target: *const map_target_t, - ) -> translation_t, - >, -} -#[test] -fn bindgen_test_layout_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translator_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type transaction_translator_interface_t = transaction_translator_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_translator_interface { - pub translate: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr: uint64, - access: access_t, - t: *mut transaction_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - translation: translation_t, - transaction: *mut transaction_t, - data: cbdata_call_t, - ) -> exception_type_t, - >, - data: cbdata_register_t, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_translator_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_translator_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(transaction_translator_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_translator_interface), - "::", - stringify!(translate) - ) - ); -} -pub type translation_flush_interface_t = translation_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct translation_flush_interface { - pub flush_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - default_target: *const map_target_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_translation_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(translation_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(translation_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(translation_flush_interface), - "::", - stringify!(flush_range) - ) - ); -} -pub const usb_transfer_completion_t_USB_Transfer_Completed: usb_transfer_completion_t = 0; -pub const usb_transfer_completion_t_USB_Transfer_Not_Ready: usb_transfer_completion_t = 1; -#[doc = " \nusb_transfer_t\n\nusb_transfer_t\n\n\n\n\n\n\n\n\n\nAll USB related data types are Simics internal, and should not be\nused by user-defined classes. The data types may change in future\nversions of Simics.\n\nThe usb_transfer_t type is independent of USB host and\nUSB device implementations and is used for sending data over USB.\n\nThere are two fields to identify the pipe: function_address is\nthe function/device address for the target USB device;\nendpoint_number specifies the endpoint number.\n\nThe type of transfer is defined using the type field. The type is\neither control, bulk, interrupt, or isochronous. The\nu.control_request field is only valid for control transfers. It\ncontains the information that would be in the setup packet of a control\ntransfer. The u.periodic_time field is only valid for periodic\ntransfers, i.e., interrupt and isochronous transfers. It specifies the\nminimum response time for a transfer expected by the USB host. A USB device\ndo not need to fulfill the expectation. It is merely a way to tell the USB\ndevice how to keep the timing specified in the periodic list scheduling.\n\nThe usb_direction field specifies the direction of the data in\nthe USB transfer. Only the actual data packet is used to specify the\ndirection, even if a real transfer consists of a mix of SETUP/OUT/IN/STATUS\npackets. USB_Direction_None means that the transfer does not\ncontain any data, for example, in Set_Address control\ntransfers. size is the number of bytes the USB host can\nreceive for IN transfers and the number of bytes sent for OUT\ntransfers. buf contains the IN or OUT data. Note that buf\ncan contain data for several data packets concatenated together. The\nendpoint descriptors in USB host and USB device define the maximum packet\nsize for the pipe, but there is no limitation in Simics.\n\nThe status field contains the status for the transfer. The status\nis typically only set by the USB device. The USB host does not set the\nstatus field when it has completed an IN transfer.\n\n\n\n\nusb_transfer_t\n\n"] -pub type usb_transfer_completion_t = ::std::os::raw::c_uint; -pub const usb_direction_t_USB_Direction_None: usb_direction_t = 0; -pub const usb_direction_t_USB_Direction_In: usb_direction_t = 1; -pub const usb_direction_t_USB_Direction_Out: usb_direction_t = 2; -pub type usb_direction_t = ::std::os::raw::c_uint; -pub const usb_status_t_USB_Status_Undef: usb_status_t = 0; -pub const usb_status_t_USB_Status_Ack: usb_status_t = 1; -pub const usb_status_t_USB_Status_Nak: usb_status_t = 2; -pub const usb_status_t_USB_Status_Stall: usb_status_t = 3; -pub type usb_status_t = ::std::os::raw::c_uint; -pub const usb_type_t_USB_Type_Control: usb_type_t = 0; -pub const usb_type_t_USB_Type_Interrupt: usb_type_t = 1; -pub const usb_type_t_USB_Type_Isochronous: usb_type_t = 2; -pub const usb_type_t_USB_Type_Bulk: usb_type_t = 3; -pub type usb_type_t = ::std::os::raw::c_uint; -pub const usb_speed_t_USB_Speed_Low: usb_speed_t = 0; -pub const usb_speed_t_USB_Speed_Full: usb_speed_t = 1; -pub const usb_speed_t_USB_Speed_High: usb_speed_t = 2; -pub type usb_speed_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_request_t { - pub bmRequestType: uint8, - pub bRequest: uint8, - pub wValue: uint16, - pub wIndex: uint16, - pub wLength: uint16, -} -#[test] -fn bindgen_test_layout_usb_device_request_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_device_request_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(usb_device_request_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bmRequestType) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bmRequestType) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bRequest) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(bRequest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wValue) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wValue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wIndex) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wIndex) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wLength) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(usb_device_request_t), - "::", - stringify!(wLength) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct usb_transfer_t { - #[doc = " Endpoint/function specific information"] - pub function_address: uint8, - pub endpoint_number: uint8, - #[doc = " Type specific information"] - pub type_: usb_type_t, - pub u: usb_transfer_t__bindgen_ty_1, - #[doc = " Data specific"] - pub direction: usb_direction_t, - pub size: ::std::os::raw::c_int, - pub buf: *mut dbuffer_t, - #[doc = " Status"] - pub status: usb_status_t, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union usb_transfer_t__bindgen_ty_1 { - pub control_request: usb_device_request_t, - pub periodic_time: nano_secs_t, -} -#[test] -fn bindgen_test_layout_usb_transfer_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).control_request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(control_request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).periodic_time) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t__bindgen_ty_1), - "::", - stringify!(periodic_time) - ) - ); -} -impl Default for usb_transfer_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_usb_transfer_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(usb_transfer_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_transfer_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(function_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).endpoint_number) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(endpoint_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(u) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buf) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(usb_transfer_t), - "::", - stringify!(status) - ) - ); -} -impl Default for usb_transfer_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type usb_device_interface_t = usb_device_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_device_interface { - pub submit_transfer: ::std::option::Option< - unsafe extern "C" fn( - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ) -> usb_transfer_completion_t, - >, - pub abort_transfer: ::std::option::Option< - unsafe extern "C" fn(dev_obj: *mut conf_object_t, transfer: *mut usb_transfer_t), - >, - pub reset: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_usb_device_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_device_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_device_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).submit_transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(submit_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).abort_transfer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(abort_transfer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_device_interface), - "::", - stringify!(reset) - ) - ); -} -pub type usb_interface_t = usb_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct usb_interface { - pub connect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - speed: usb_speed_t, - ) -> ::std::os::raw::c_int, - >, - pub disconnect_device: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub complete_transfer: ::std::option::Option< - unsafe extern "C" fn( - bus_obj: *mut conf_object_t, - dev_obj: *mut conf_object_t, - transfer: *mut usb_transfer_t, - ), - >, -} -#[test] -fn bindgen_test_layout_usb_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(usb_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(usb_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect_device) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(connect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect_device) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(disconnect_device) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).complete_transfer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(usb_interface), - "::", - stringify!(complete_transfer) - ) - ); -} -pub type vectored_interrupt_interface_t = vectored_interrupt_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_interface { - pub set_level: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - source: *mut conf_object_t, - level: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vectored_interrupt_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_level) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_interface), - "::", - stringify!(set_level) - ) - ); -} -pub type vectored_interrupt_source_interface_t = vectored_interrupt_source_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vectored_interrupt_source_interface { - pub acknowledge: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - level: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vectored_interrupt_source_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vectored_interrupt_source_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(vectored_interrupt_source_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).acknowledge) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vectored_interrupt_source_interface), - "::", - stringify!(acknowledge) - ) - ); -} -#[doc = " \n\nThe methods in this interface can be used to read or change the current\npower state the CPU is in. A state value of 0 corresponds to C0, a value of\n1 corresponds to C1, etc. HLT will be reported as state 1, substate 0.\nMWAIT will reported based upon the eax hint, decoded as state = (eax[7:4] +\n1) mod 16, substate = eax[3:0].\n\nset_cstate will perform side-effects such as putting the\nprocessor to sleep or waking it up, and call the registered cstate\nlisteners.\n\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_t { - pub state: uint32, - pub sub_state: uint32, -} -#[test] -fn bindgen_test_layout_x86_cstate_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(x86_cstate_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_state) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_t), - "::", - stringify!(sub_state) - ) - ); -} -pub type x86_cstate_interface_t = x86_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_interface { - pub get_cstate: - ::std::option::Option x86_cstate_t>, - pub set_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(get_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_interface), - "::", - stringify!(set_cstate) - ) - ); -} -pub type x86_pkg_cstate_interface_t = x86_pkg_cstate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_pkg_cstate_interface { - pub get_pkg_cstate: - ::std::option::Option x86_cstate_t>, - pub set_pkg_cstate: ::std::option::Option< - unsafe extern "C" fn(cpu_obj: *mut conf_object_t, state: uint32, sub_state: uint32), - >, - pub pkg_cstate_update: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_x86_pkg_cstate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(x86_pkg_cstate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pkg_cstate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(get_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_pkg_cstate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(set_pkg_cstate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pkg_cstate_update) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(x86_pkg_cstate_interface), - "::", - stringify!(pkg_cstate_update) - ) - ); -} -pub type x86_cstate_notification_interface_t = x86_cstate_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct x86_cstate_notification_interface { - pub notification: ::std::option::Option< - unsafe extern "C" fn( - listener: *mut conf_object_t, - cpu: *mut conf_object_t, - state: uint32, - sub_state: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_x86_cstate_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(x86_cstate_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(x86_cstate_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(x86_cstate_notification_interface), - "::", - stringify!(notification) - ) - ); -} -#[doc = " All the structs below are INTERNAL and should not be used directly."] -#[repr(C)] -#[derive(Copy, Clone)] -pub union ht_key_t { - pub i: uint64, - pub s: *const ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_ht_key_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ht_key_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_key_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(i) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_key_t), - "::", - stringify!(s) - ) - ); -} -impl Default for ht_key_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_entry_common { - pub value: *const ::std::os::raw::c_void, - pub next: *mut ht_entry_common, - pub key: ht_key_t, - #[doc = " raw hash value"] - pub hash: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_ht_entry_common() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_entry_common)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_entry_common)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).key) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(key) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_entry_common), - "::", - stringify!(hash) - ) - ); -} -impl Default for ht_entry_common { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type ht_entry_common_t = ht_entry_common; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_int_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_int_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ht_str_entry_t { - pub e: ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_entry_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_entry_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_entry_t), - "::", - stringify!(e) - ) - ); -} -impl Default for ht_str_entry_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_table_common_t { - #[doc = " size of buckets array; 0 or a power of 2"] - pub nbuckets: ::std::os::raw::c_uint, - #[doc = " nbuckets > 0 ? log2(nbuckets) : 0"] - pub bits: ::std::os::raw::c_uint, - #[doc = " array [nbuckets], or NULL"] - pub buckets: *mut *mut ht_entry_common_t, - #[doc = " total number of elements"] - pub num_elements: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_ht_table_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_table_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_table_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nbuckets) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(nbuckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buckets) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(buckets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_elements) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_table_common_t), - "::", - stringify!(num_elements) - ) - ); -} -impl Default for ht_table_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_table_t { - pub t: ht_table_common_t, - #[doc = " whether the table owns the keys"] - pub keys_owned: bool, -} -#[test] -fn bindgen_test_layout_ht_str_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(t) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keys_owned) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_str_table_t), - "::", - stringify!(keys_owned) - ) - ); -} -impl Default for ht_str_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_table_t { - pub t: ht_table_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_table_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ht_int_table_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_table_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).t) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_table_t), - "::", - stringify!(t) - ) - ); -} -impl Default for ht_int_table_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_iter_common_t { - pub ht: *mut ht_table_common_t, - #[doc = " current bucket"] - pub index: ::std::os::raw::c_uint, - #[doc = " current entry"] - pub e: *mut ht_entry_common_t, - #[doc = " next entry (current may be removed)"] - pub next: *mut ht_entry_common_t, -} -#[test] -fn bindgen_test_layout_ht_iter_common_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_iter_common_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ht) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(ht) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(e) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ht_iter_common_t), - "::", - stringify!(next) - ) - ); -} -impl Default for ht_iter_common_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_int_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_int_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_int_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_int_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_int_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ht_str_iter_t { - pub it: ht_iter_common_t, -} -#[test] -fn bindgen_test_layout_ht_str_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ht_str_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).it) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ht_str_iter_t), - "::", - stringify!(it) - ) - ); -} -impl Default for ht_str_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn ht_clear_int_table(ht: *mut ht_int_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_clear_str_table(ht: *mut ht_str_table_t, free_vals: bool); -} -extern "C" { - pub fn ht_delete_int_table(ht: *mut ht_int_table_t, free_values: bool); -} -extern "C" { - pub fn ht_delete_str_table(ht: *mut ht_str_table_t, free_values: bool); -} -extern "C" { - pub fn ht_insert_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_insert_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn ht_update_int( - ht: *mut ht_int_table_t, - key: uint64, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_update_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_void, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_remove_int(ht: *mut ht_int_table_t, key: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_remove_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_entry_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ht_int_entry_t; -} -extern "C" { - pub fn ht_entry_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ht_str_entry_t; -} -extern "C" { - pub fn ht_lookup_int(ht: *mut ht_int_table_t, key: uint64) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_lookup_str( - ht: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn ht_for_each_entry_int( - table: *mut ht_int_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_int_table_t, - key: uint64, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn ht_for_each_entry_str( - table: *mut ht_str_table_t, - f: ::std::option::Option< - unsafe extern "C" fn( - table: *mut ht_str_table_t, - key: *const ::std::os::raw::c_char, - value: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get registered class (returns NULL if class not found)."] - pub fn SIM_get_class(name: *const ::std::os::raw::c_char) -> *mut conf_class_t; -} -extern "C" { - #[doc = " Make sure that Simics is not running when this function is called, and take\nthe necessary steps depending on the situation"] - pub fn VT_assert_outside_execution_context( - func: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_int, - ); -} -extern "C" { - #[doc = " Return true if VT_assert_outside_execution_context() would warn or assert in\nthe current situation. This function is meant to be used before calling\nVT_assert_outside_execution_context() to print specific warnings before\nasserting."] - pub fn VT_outside_execution_context_violation() -> bool; -} -extern "C" { - pub fn pr_err(str_: *const ::std::os::raw::c_char, ...); -} -extern "C" { - pub fn pr_err_vararg(str_: *const ::std::os::raw::c_char, ap: *mut __va_list_tag); -} -extern "C" { - pub fn VT_push_exc_ppg_entry(key: *mut ::std::os::raw::c_void); -} -extern "C" { - pub fn VT_pop_exc_ppg_entry( - key: *mut ::std::os::raw::c_void, - function: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn VT_report_uncaught_exceptions(); -} -extern "C" { - pub fn VT_obtain_python_lock() -> bool; -} -extern "C" { - pub fn VT_release_python_lock(old_lock_state: bool); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data { - #[doc = " trampoline template"] - pub templ: ::std::option::Option, - #[doc = " size of the trampoline template"] - pub size: usize, - pub offsets: trampoline_data__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct trampoline_data__bindgen_ty_1 { - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the C function address"] - pub function_lo: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_hi: usize, - #[doc = " offsets of hi/lo 32 bits of the data address"] - pub data_lo: usize, -} -#[test] -fn bindgen_test_layout_trampoline_data__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_hi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).function_lo) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(function_lo) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_hi) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_hi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_lo) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data__bindgen_ty_1), - "::", - stringify!(data_lo) - ) - ); -} -#[test] -fn bindgen_test_layout_trampoline_data() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(trampoline_data)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(trampoline_data)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).templ) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(templ) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offsets) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(trampoline_data), - "::", - stringify!(offsets) - ) - ); -} -pub type trampoline_data_t = trampoline_data; -pub type opaque_type_t = opaque_type; -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_register_py_interface( - iface_name: *const ::std::os::raw::c_char, - pytype: *mut _typeobject, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.161"] - pub fn VT_get_py_interface(iface_name: *const ::std::os::raw::c_char) -> *mut _typeobject; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_python_interface( - iface_name: *const ::std::os::raw::c_char, - ot: *mut opaque_type_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_get_python_interface(iface_name: *const ::std::os::raw::c_char) - -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_python_wrap_conf_object(data: *mut conf_object_t) -> *mut _object; -} -extern "C" { - pub fn VT_python_unwrap_conf_object(pyobj: *mut _object) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_handle_python_exception( - return_source: *mut _object, - signature: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_raise_python_exception( - exc_type: sim_exception_t, - str_: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_attr_value_to_python_obj( - value: *mut attr_value_t, - err_msg: *mut *const ::std::os::raw::c_char, - ) -> *mut _object; -} -extern "C" { - pub fn VT_python_obj_to_attr_value_with_error( - obj: *mut _object, - ret: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_byte_string_to_pyobject(bstr: byte_string_t, po: *mut *mut _object); -} -extern "C" { - pub fn VT_pyobject_to_byte_string( - po: *mut _object, - bstr: *mut byte_string_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_pyobject_to_buffer_t(b: *mut buffer_t, obj: *mut _object) -> bool; -} -extern "C" { - pub fn VT_buffer_t_to_pyobject(b: buffer_t) -> *mut _object; -} -extern "C" { - pub fn VT_buffer_t_pyobject_invalidate(obj: *mut _object); -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -pub type py_wrap_c_func_t = py_wrap_c_func; -#[doc = " converter functions from/to a struct field type"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct field_type_t { - #[doc = " of type"] - pub name: *const ::std::os::raw::c_char, - #[doc = " conversion from Python: return 0 on success, -1 on error"] - pub from_py: ::std::option::Option< - unsafe extern "C" fn( - generic_dst: *mut ::std::os::raw::c_void, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " conversion to Python: shouldn't fail"] - pub to_py: ::std::option::Option< - unsafe extern "C" fn( - generic_src: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - ) -> *mut _object, - >, - #[doc = " optional function to free C data; must not fail"] - pub free_fn: - ::std::option::Option, - #[doc = " wrap data, used for converting function pointer types"] - pub fn_wrap_data: *mut py_wrap_c_func_t, -} -#[test] -fn bindgen_test_layout_field_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(field_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(field_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).from_py) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(from_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_py) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(to_py) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fn) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(free_fn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fn_wrap_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(field_type_t), - "::", - stringify!(fn_wrap_data) - ) - ); -} -impl Default for field_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct struct_member { - pub name: *const ::std::os::raw::c_char, - #[doc = " set this member to a Python value: 0 on success, -1 on error"] - pub set: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - member: *const struct_member, - pysrc: *mut _object, - ) -> ::std::os::raw::c_int, - >, - #[doc = " retrieve this member as a Python value; object is only used\nfor interfaces"] - pub get: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - object: *mut conf_object_t, - member: *const struct_member, - ) -> *mut _object, - >, - #[doc = " member byte offset in struct"] - pub ofs: usize, - pub type_: *const field_type_t, -} -#[test] -fn bindgen_test_layout_struct_member() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(struct_member)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(struct_member)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(struct_member), - "::", - stringify!(type_) - ) - ); -} -impl Default for struct_member { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " struct member information"] -pub type struct_member_t = struct_member; -extern "C" { - pub fn VT_python_cbdata_type() -> *const cbdata_type_t; -} -extern "C" { - pub fn VT_cbdata_python_type() -> *mut _object; -} -#[doc = " struct to hold data about each type of generated trampolines (one\nper signature)"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_wrap_c_func { - #[doc = " Python definition"] - pub meth: PyMethodDef, - #[doc = " C function that converts arguments and calls Python"] - pub python_caller: ::std::option::Option, - #[doc = " information about generated trampolines"] - pub trampoline_data: *const trampoline_data, - #[doc = " non-zero if this is a \"method\" function that can bind to an\nobject"] - pub is_method: bool, - #[doc = " Number of arguments the function takes, including the first \"object\"\nargument if it is a method."] - pub arity: ::std::os::raw::c_uchar, - #[doc = " Python wrapper, indexed by a hash of the C function and\nbound object"] - pub c_to_py_table: *mut ht_int_table_t, - #[doc = " PyDictObject with PyCObject(C wrapper), indexed by Python object"] - pub py_to_c_dict: *mut PyObject, -} -#[test] -fn bindgen_test_layout_py_wrap_c_func() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_wrap_c_func)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).meth) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(meth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).python_caller) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(python_caller) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trampoline_data) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(trampoline_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_method) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(is_method) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arity) as usize - ptr as usize }, - 49usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(arity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).c_to_py_table) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(c_to_py_table) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).py_to_c_dict) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(py_wrap_c_func), - "::", - stringify!(py_to_c_dict) - ) - ); -} -impl Default for py_wrap_c_func { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " py_opaque_type_t is used to wrap C structures whose contents cannot\n be accessed by Python without getter/setter functions"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_opaque_type_t { - pub ob_base: PyObject, - #[doc = " true if struct should be freed at\ndestruction"] - pub malloced: bool, - #[doc = " true if fields should be freed at\ndestruction"] - pub free_fields: bool, - #[doc = " true if data is allowed to change"] - pub mutable: bool, - pub data: *mut ::std::os::raw::c_void, - #[doc = " used for interfaces only"] - pub object: *mut conf_object_t, - pub type_: *mut opaque_type_t, -} -#[test] -fn bindgen_test_layout_py_opaque_type_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_opaque_type_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).malloced) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(malloced) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_fields) as usize - ptr as usize }, - 17usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(free_fields) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mutable) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(mutable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(py_opaque_type_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for py_opaque_type_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opaque_type { - pub pytype: *mut PyTypeObject, - pub name: *const ::std::os::raw::c_char, - pub pyspec: PyType_Spec, - pub size: ::std::os::raw::c_uint, - pub members: *const struct_member_t, - pub nmembers: ::std::os::raw::c_int, - pub is_interface: bool, - pub get_dict: ::std::option::Option< - unsafe extern "C" fn( - c_struct: *mut ::std::os::raw::c_void, - ot: *mut opaque_type, - ) -> *mut PyObject, - >, -} -#[test] -fn bindgen_test_layout_opaque_type() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(opaque_type)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opaque_type)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pytype) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pytype) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pyspec) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(pyspec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).members) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).nmembers) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(nmembers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_interface) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(is_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_dict) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(opaque_type), - "::", - stringify!(get_dict) - ) - ); -} -impl Default for opaque_type { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct py_method_t { - pub ob_base: PyObject, - #[doc = " actual signature may vary"] - pub func: ::std::option::Option, - pub object: *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_py_method_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(py_method_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(py_method_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).func) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(func) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(py_method_t), - "::", - stringify!(object) - ) - ); -} -impl Default for py_method_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct python_cbdata_t { - pub ob_base: PyObject, - pub cbdata: cbdata_t, -} -#[test] -fn bindgen_test_layout_python_cbdata_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(python_cbdata_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(python_cbdata_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ob_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(ob_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cbdata) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(python_cbdata_t), - "::", - stringify!(cbdata) - ) - ); -} -impl Default for python_cbdata_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn VT_init_python_wrappings() -> *mut _object; -} -extern "C" { - pub fn VT_lookup_python_opaque_type(name: *const ::std::os::raw::c_char) -> *mut opaque_type_t; -} -extern "C" { - pub fn VT_lookup_python_opaque_type_name( - type_: *mut opaque_type_t, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - #[doc = " obsolete, for ABI compatibility with simics < 6.0.162"] - pub fn VT_register_opaque_type(type_: *mut opaque_type_t); -} -extern "C" { - pub fn VT_register_opaque_python_type(type_: *mut opaque_type_t, pytype: *mut _typeobject); -} -extern "C" { - pub fn VT_get_opaque_python_type(ot: *mut opaque_type_t) -> *mut _typeobject; -} -extern "C" { - pub fn VT_get_py_c_wrap( - func: *const ::std::os::raw::c_void, - object: *mut conf_object_t, - data: *mut py_wrap_c_func_t, - ) -> *mut _object; -} -extern "C" { - pub fn VT_get_c_py_wrap( - dst: *mut *const ::std::os::raw::c_void, - src: *mut _object, - data: *mut py_wrap_c_func_t, - ignore_arity: bool, - ) -> ::std::os::raw::c_int; -} -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Left: abs_pointer_buttons_t = 32; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Right: abs_pointer_buttons_t = 16; -pub const abs_pointer_buttons_t_Abs_Pointer_Button_Middle: abs_pointer_buttons_t = 8; -#[doc = " \n\nInterface implemented by tablet devices. Used by consoles to send touchpad\nevents to the controller. The set_state function is called when\nsomething changes in the console. The coordinates are given as scaled\nabsolute scaled values, where (0, 0) is the upper-left corner and (0xffff,\n0xffff) is the lower-right corner.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type abs_pointer_buttons_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_state_t { - pub buttons: abs_pointer_buttons_t, - pub x: uint16, - pub y: uint16, - pub z: uint16, -} -#[test] -fn bindgen_test_layout_abs_pointer_state_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(abs_pointer_state_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).buttons) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(buttons) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(y) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).z) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_state_t), - "::", - stringify!(z) - ) - ); -} -impl Default for abs_pointer_state_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type abs_pointer_interface_t = abs_pointer_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_interface { - pub set_state: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, state: abs_pointer_state_t), - >, -} -#[test] -fn bindgen_test_layout_abs_pointer_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_interface), - "::", - stringify!(set_state) - ) - ); -} -pub type abs_pointer_activate_interface_t = abs_pointer_activate_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct abs_pointer_activate_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_abs_pointer_activate_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(abs_pointer_activate_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(abs_pointer_activate_interface), - "::", - stringify!(disable) - ) - ); -} -pub type instrumentation_order_interface_t = instrumentation_order_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_order_interface { - #[doc = " Returns an object list in the connection order"] - pub get_connections: - ::std::option::Option attr_value_t>, - pub move_before: ::std::option::Option< - unsafe extern "C" fn( - self_: *mut conf_object_t, - connection: *mut conf_object_t, - before: *mut conf_object_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_order_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_order_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(get_connections) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).move_before) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_order_interface), - "::", - stringify!(move_before) - ) - ); -} -pub type callback_info_interface_t = callback_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct callback_info_interface { - pub get_callbacks: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_callback_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(callback_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(callback_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_callbacks) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(callback_info_interface), - "::", - stringify!(get_callbacks) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct bank_access { - _unused: [u8; 0], -} -#[doc = " \n\nHandle used to monitor and modify the state of register accesses using the\nbank_before_read_interface_t,\nbank_after_read_interface_t,\nbank_before_write_interface_t, and\nbank_after_write_interface_t interfaces.\n"] -pub type bank_access_t = bank_access; -#[doc = " \n\nUnique handle associated with a callback registered through the\nbank_instrumentation_subscribe_interface_t interface.\n"] -pub type bank_callback_handle_t = usize; -pub type bank_before_read_interface_t = bank_before_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub inquire: ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inquire) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(inquire) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_read_interface_t = bank_after_read_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_read_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub value: ::std::option::Option uint64>, - pub set_missed: - ::std::option::Option, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_read_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_read_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_after_read_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_before_write_interface_t = bank_before_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_before_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub value: ::std::option::Option uint64>, - pub suppress: ::std::option::Option, - pub set_offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t, offset: physical_address_t), - >, - pub set_value: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_before_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_before_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).suppress) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(suppress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_offset) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(set_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_before_write_interface), - "::", - stringify!(initiator) - ) - ); -} -pub type bank_after_write_interface_t = bank_after_write_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_after_write_interface { - pub offset: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub size: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> physical_address_t, - >, - pub missed: ::std::option::Option bool>, - pub set_missed: - ::std::option::Option, - pub initiator: ::std::option::Option< - unsafe extern "C" fn(handle: *mut bank_access_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_bank_after_write_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(bank_after_write_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).missed) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_missed) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(set_missed) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).initiator) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_after_write_interface), - "::", - stringify!(initiator) - ) - ); -} -#[doc = " "] -pub type before_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_read_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_read_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type before_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_before_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -#[doc = " "] -pub type after_write_callback_t = ::std::option::Option< - unsafe extern "C" fn( - connection: *mut conf_object_t, - access: *mut bank_after_write_interface_t, - handle: *mut bank_access_t, - user_data: *mut lang_void, - ), ->; -pub type bank_instrumentation_subscribe_interface_t = bank_instrumentation_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct bank_instrumentation_subscribe_interface { - pub register_before_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_read: before_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_read: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_read: after_read_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_before_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - before_write: before_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub register_after_write: ::std::option::Option< - unsafe extern "C" fn( - bank: *mut conf_object_t, - connection: *mut conf_object_t, - offset: uint64, - size: uint64, - after_write: after_write_callback_t, - user_data: *mut lang_void, - ) -> bank_callback_handle_t, - >, - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, callback: bank_callback_handle_t), - >, - pub remove_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub enable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, - pub disable_connection_callbacks: ::std::option::Option< - unsafe extern "C" fn(bank: *mut conf_object_t, connection: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_bank_instrumentation_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!( - "Size of: ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(bank_instrumentation_subscribe_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_before_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_before_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_after_write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(register_after_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_connection_callbacks) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(remove_connection_callbacks) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_connection_callbacks) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(enable_connection_callbacks) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).disable_connection_callbacks) as usize - ptr as usize - }, - 56usize, - concat!( - "Offset of field: ", - stringify!(bank_instrumentation_subscribe_interface), - "::", - stringify!(disable_connection_callbacks) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct addr_prof_iter { - pub next: ::std::option::Option uint64>, - pub destroy: ::std::option::Option, - pub addr: generic_address_t, -} -#[test] -fn bindgen_test_layout_addr_prof_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(addr_prof_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addr_prof_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addr_prof_iter), - "::", - stringify!(addr) - ) - ); -} -#[doc = " "] -pub type addr_prof_iter_t = addr_prof_iter; -pub const branch_arc_type_t_Branch_Arc_Branch: branch_arc_type_t = 0; -pub const branch_arc_type_t_Branch_Arc_Exception: branch_arc_type_t = 1; -pub const branch_arc_type_t_Branch_Arc_Exception_Return: branch_arc_type_t = 2; -pub const branch_arc_type_t_Branch_Arc_Max: branch_arc_type_t = 3; -#[doc = ""] -pub type branch_arc_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_t { - pub addr_from: uint64, - pub addr_to: uint64, - pub count: int64, - pub type_: branch_arc_type_t, -} -#[test] -fn bindgen_test_layout_branch_arc_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(branch_arc_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_from) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).addr_to) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(addr_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_t), - "::", - stringify!(type_) - ) - ); -} -impl Default for branch_arc_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_iter { - pub next: - ::std::option::Option *mut branch_arc_t>, - pub destroy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_branch_arc_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(branch_arc_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_iter), - "::", - stringify!(destroy) - ) - ); -} -pub type branch_arc_iter_t = branch_arc_iter; -pub const branch_recorder_direction_t_BR_Direction_From: branch_recorder_direction_t = 0; -pub const branch_recorder_direction_t_BR_Direction_To: branch_recorder_direction_t = 1; -#[doc = ""] -pub type branch_recorder_direction_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct branch_recorder { - _unused: [u8; 0], -} -pub type branch_recorder_t = branch_recorder; -pub type iter_func_t = ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, ->; -pub type branch_recorder_handler_interface_t = branch_recorder_handler_interface; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_recorder_handler_interface { - #[doc = " Attach/detach returns zero on error."] - pub attach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub detach_branch_recorder: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - brec: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub create_cpu_branch_recorder: - ::std::option::Option, - pub destroy_cpu_branch_recorder: - ::std::option::Option, - pub delete_arcs: ::std::option::Option, - pub num_branches: ::std::option::Option< - unsafe extern "C" fn(br: *mut branch_recorder_t) -> ::std::os::raw::c_int, - >, - pub get_branches: - ::std::option::Option attr_value_t>, - pub iter: *mut iter_func_t, - pub iter_branch_arc: ::std::option::Option< - unsafe extern "C" fn( - br: *mut branch_recorder_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, - pub eec_interrupt_instruction: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - extype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub granularity_log2: ::std::os::raw::c_uint, - pub view_descriptions: *mut *const ::std::os::raw::c_char, - pub num_views: ::std::os::raw::c_int, - pub pa_bits: ::std::os::raw::c_int, - pub va_bits: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_branch_recorder_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(branch_recorder_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(branch_recorder_handler_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach_branch_recorder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(attach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach_branch_recorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(detach_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cpu_branch_recorder) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(create_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destroy_cpu_branch_recorder) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(destroy_cpu_branch_recorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_arcs) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(delete_arcs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_branches) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_branches) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(get_branches) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter_branch_arc) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(iter_branch_arc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eec_interrupt_instruction) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(eec_interrupt_instruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).view_descriptions) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(view_descriptions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(num_views) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pa_bits) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(pa_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).va_bits) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(branch_recorder_handler_interface), - "::", - stringify!(va_bits) - ) - ); -} -impl Default for branch_recorder_handler_interface { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type breakpoint_interface_t = breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_interface { - pub insert_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - object: *mut conf_object_t, - caller: *mut conf_object_t, - handle: breakpoint_handle_t, - access: access_t, - start: generic_address_t, - end: generic_address_t, - ), - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(object: *mut conf_object_t, handle: breakpoint_handle_t), - >, - pub get_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ) -> breakpoint_info_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(insert_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_interface), - "::", - stringify!(get_breakpoint) - ) - ); -} -pub type breakpoint_change_interface_t = breakpoint_change_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_change_interface { - pub breakpoint_added: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, - pub breakpoint_removed: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_change_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_change_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_added) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_added) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).breakpoint_removed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_change_interface), - "::", - stringify!(breakpoint_removed) - ) - ); -} -pub type breakpoint_query_interface_t = breakpoint_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, - pub free_breakpoint_set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, set: *mut breakpoint_set_t), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(get_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_breakpoint_set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_interface), - "::", - stringify!(free_breakpoint_set) - ) - ); -} -pub type breakpoint_query_v2_interface_t = breakpoint_query_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_query_v2_interface { - pub get_breakpoints: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - read_write_execute: access_t, - start: generic_address_t, - end: generic_address_t, - ) -> breakpoint_set_t, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_query_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_query_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_query_v2_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type breakpoint_trigger_interface_t = breakpoint_trigger_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_trigger_interface { - pub trigger_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator_obj: *mut conf_object_t, - handle: breakpoint_handle_t, - address: generic_address_t, - size: generic_address_t, - access: access_t, - data: *mut uint8, - ), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_trigger_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_trigger_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_trigger_interface), - "::", - stringify!(trigger_breakpoint) - ) - ); -} -pub const virtual_breakpoint_flags_t_Virtual_Breakpoint_Flag_Linear: virtual_breakpoint_flags_t = 1; -#[doc = " virtual_breakpoint_flags_t"] -pub type virtual_breakpoint_flags_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_data_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_data_bp_handle_t"] -pub type virtual_data_bp_handle_t = virtual_data_bp_handle; -pub type virtual_data_breakpoint_interface_t = virtual_data_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_data_breakpoint_interface { - pub add_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub add_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - initiator: *mut conf_object_t, - address: generic_address_t, - value: bytes_t, - ), - >, - data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_data_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_data_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_data_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(virtual_data_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_data_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(add_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(virtual_data_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct virtual_instr_bp_handle { - _unused: [u8; 0], -} -#[doc = " virtual_instr_bp_handle_t"] -pub type virtual_instr_bp_handle_t = virtual_instr_bp_handle; -pub type virtual_instruction_breakpoint_interface_t = virtual_instruction_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct virtual_instruction_breakpoint_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - first: generic_address_t, - last: generic_address_t, - filter: ::std::option::Option< - unsafe extern "C" fn( - filter_data: cbdata_call_t, - cpu: *mut conf_object_t, - opcode: bytes_t, - ) -> bool, - >, - filter_data: cbdata_register_t, - callback: ::std::option::Option< - unsafe extern "C" fn( - callback_data: cbdata_call_t, - cpu: *mut conf_object_t, - address: generic_address_t, - size: ::std::os::raw::c_uint, - ), - >, - callback_data: cbdata_register_t, - flags: uint32, - ) -> *mut virtual_instr_bp_handle_t, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_handle: *mut virtual_instr_bp_handle_t), - >, -} -#[test] -fn bindgen_test_layout_virtual_instruction_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(virtual_instruction_breakpoint_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(virtual_instruction_breakpoint_interface), - "::", - stringify!(remove) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE virtual_instruction_breakpoint"] - pub fn VT_step_stamp(step_obj: *mut conf_object_t) -> int128; -} -pub type cdrom_media_interface_t = cdrom_media_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cdrom_media_interface { - pub read_toc: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - msf: ::std::os::raw::c_int, - start_track: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub capacity: ::std::option::Option uint32>, - pub read_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub read_raw_block: ::std::option::Option< - unsafe extern "C" fn( - media: *mut conf_object_t, - buf: *mut uint8, - lba: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub insert: ::std::option::Option< - unsafe extern "C" fn(media: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub eject: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cdrom_media_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cdrom_media_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_toc) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_toc) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(capacity) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_block) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_raw_block) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(read_raw_block) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).insert) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(insert) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).eject) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cdrom_media_interface), - "::", - stringify!(eject) - ) - ); -} -pub type co_execute_interface_t = co_execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct co_execute_interface { - pub start_thread: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entry: ::std::option::Option, - arg: *mut lang_void, - ), - >, - pub yield_: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_co_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(co_execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(co_execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_thread) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(start_thread) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(co_execute_interface), - "::", - stringify!(yield_) - ) - ); -} -pub type synchronous_mode_interface_t = synchronous_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct synchronous_mode_interface { - pub enter: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub leave: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_synchronous_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(synchronous_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(enter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).leave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(synchronous_mode_interface), - "::", - stringify!(leave) - ) - ); -} -pub type component_interface_t = component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_interface { - pub pre_instantiate: - ::std::option::Option bool>, - pub post_instantiate: ::std::option::Option, - pub create_cell: ::std::option::Option bool>, - pub get_slots: - ::std::option::Option attr_value_t>, - pub get_slot_objects: - ::std::option::Option attr_value_t>, - pub get_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_slot_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slot: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, - pub has_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub add_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, - pub del_slot: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, slot: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pre_instantiate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(pre_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_instantiate) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(post_instantiate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_cell) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(create_cell) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slots) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slots) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_objects) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_objects) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_slot_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(get_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_slot_value) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(set_slot_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_slot) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(has_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slot) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(add_slot) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).del_slot) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(component_interface), - "::", - stringify!(del_slot) - ) - ); -} -pub const connector_direction_t_Sim_Connector_Direction_Up: connector_direction_t = 0; -pub const connector_direction_t_Sim_Connector_Direction_Down: connector_direction_t = 1; -pub const connector_direction_t_Sim_Connector_Direction_Any: connector_direction_t = 2; -#[doc = "\nconnector_interface_t\n\nThe connector interface must be implemented by\nconnector objects. The interface describes the connector and how it\ncan be connected to other connectors. A connector is used for\nconnecting component objects. The connector is just a proxy for the\nconnection, the connector uses the component_connector\ninterface in the components to setup the connection.\n\nThe type function returns the connector type as a\nstring. Two connectors can only be connected if the type is\nidentical.\n\nA hotpluggable connector returns true when calling the\nhotpluggable function, otherwise false. A\nhotpluggable connector can be connected before or after the\ncomponent is instantiated, an non hotpluggable connector must be\nconnected before the component is instantiated.\n\nThe required function returns true if the\nconnector must be connected before instantiated, otherwise\nfalse.\n\nA connector can be connected to many connectors, but it is only\nsupported if the multi function return true. It\nis not recommended that a connector support multi connections. A\ncomponent can instead dynamically create connectors when needed.\n\nA connector has a direction; up, down or\nany. The direction decides in which order the connectors\nin a component tree are connected and the structure of the tree.\n\nConnections are setup in two steps. The first step is to add the\nconnection, which is done using the add_destination\nfunction. Adding a connection can fail for several reasons and it\nis implementation dependent how the connection can fail. A\nconnection can for instance fail because the destination object\nrequires something that the source component did not pass when\nchecking the connection. Just adding a connection does not mean\nthat the components actually connect. The components have to save\nthe data given with the add_destination function. The\nactual setup of the connection is made in the second step when the\nupdate function is called, which finalizes the\nconnection.\n\nThe add_destination and remove_destination\nfunctions sets the state of the connection. It is first when the\nupdate function is called when the connection is\nfinalized. Both add_destination and\nremove_destination returns true if the call was\nsuccessful otherwise they return false.\n\nParameters to the add_destination function are the own\nobject obj and the destination object\ndst_obj. The destination object must be a port\nobject and it must implement the connector\ninterface.\n\nThe update function is called when the component should\nupdate its current connection status. The status of the connection\nhas previously been set using the add_destination\nor/and remove_destination functions.\n\nThe destination function returns a list of port objects\nthat the its connected to. The destination function\nreturns the state of the connection not the finalized state,\ni.e. the state of the connection before update\nfunctional call.\n\nThe check, connect, and disconnect\nfunctions initiates a connection setup via the connector object. The\nconnector will forward the setup to the components affected by the\nconnection via the component_connector interface.\n\nThe deletion_requested function is called after disconnecting\ncomponents. A dynamic connector might want to return True in order to be\ndeleted just after the disconnection.\n\n\n\n\n\nGlobal Context for all methods.\n"] -pub type connector_direction_t = ::std::os::raw::c_uint; -pub type connector_interface_t = connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct connector_interface { - pub type_: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub hotpluggable: ::std::option::Option bool>, - pub required: ::std::option::Option bool>, - pub multi: ::std::option::Option bool>, - pub direction: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> connector_direction_t, - >, - pub add_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - pub remove_destination: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t) -> bool, - >, - #[doc = " list of\nconnector objects"] - pub destination: - ::std::option::Option attr_value_t>, - pub update: ::std::option::Option, - pub check: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, attr: attr_value_t) -> bool, - >, - pub connect: - ::std::option::Option, - pub disconnect: ::std::option::Option, - pub deletion_requested: - ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hotpluggable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(hotpluggable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).required) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(required) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).multi) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(multi) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).direction) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(direction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_destination) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(add_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_destination) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(remove_destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).destination) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(destination) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deletion_requested) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(connector_interface), - "::", - stringify!(deletion_requested) - ) - ); -} -pub type component_connector_interface_t = component_connector_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct component_connector_interface { - pub get_check_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_connect_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - ) -> attr_value_t, - >, - pub check: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ) -> bool, - >, - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connector: *mut conf_object_t, - attr: attr_value_t, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, connector: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_component_connector_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(component_connector_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(component_connector_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_check_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_check_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_connect_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(get_connect_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(component_connector_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type disk_component_interface_t = disk_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disk_component_interface { - pub size: ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_disk_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(disk_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disk_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disk_component_interface), - "::", - stringify!(size) - ) - ); -} -#[doc = " Model uses the Standard Device Model"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized: concurrency_mode_t = 1; -#[doc = " Model uses the Threaded Device Model.\nDirect memory pages are protected against concurrency."] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Serialized_Memory: concurrency_mode_t = 2; -#[doc = " Model uses the Threaded Device Model.\nConcurrency can be observed on direct memory pages"] -pub const concurrency_mode_t_Sim_Concurrency_Mode_Full: concurrency_mode_t = 4; -#[doc = " "] -pub type concurrency_mode_t = ::std::os::raw::c_uint; -pub type concurrency_mode_interface_t = concurrency_mode_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_mode_interface { - pub supported_modes: - ::std::option::Option concurrency_mode_t>, - pub current_mode: - ::std::option::Option concurrency_mode_t>, - pub switch_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: concurrency_mode_t), - >, -} -#[test] -fn bindgen_test_layout_concurrency_mode_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_mode_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).supported_modes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(supported_modes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(current_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(concurrency_mode_interface), - "::", - stringify!(switch_mode) - ) - ); -} -pub type concurrency_group_interface_t = concurrency_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct concurrency_group_interface { - pub serialized_memory_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub execution_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group_index: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_concurrency_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(concurrency_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).serialized_memory_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(serialized_memory_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).execution_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(concurrency_group_interface), - "::", - stringify!(execution_group) - ) - ); -} -extern "C" { - #[doc = " ADD INTERFACE concurrency_group_interface_t"] - pub fn VT_update_thread_domain_assignments(); -} -extern "C" { - pub fn VT_ctx_set_on_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - bp_flags: uint32, - ); -} -extern "C" { - pub fn VT_ctx_remove_from_context_handler( - obj: *mut conf_object_t, - c_handler: *mut conf_object_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_list_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut conf_object_t, -} -#[test] -fn bindgen_test_layout_cpu_list_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cpu_list_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_list_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cpu_list_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for cpu_list_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type cpu_group_interface_t = cpu_group_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cpu_group_interface { - pub get_cpu_list: ::std::option::Option< - unsafe extern "C" fn(cpu_group: *mut conf_object_t) -> *const cpu_list_t, - >, -} -#[test] -fn bindgen_test_layout_cpu_group_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cpu_group_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cpu_group_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_cpu_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cpu_group_interface), - "::", - stringify!(get_cpu_list) - ) - ); -} -pub type cycle_event_interface_t = cycle_event_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_interface { - pub cycles: ::std::option::Option cycles_t>, - pub post: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - cycles: cycles_t, - param: *mut lang_void, - ), - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - evclass: *const event_class_t, - ev_obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> cycles_t, - >, - pub events: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_cycle_event_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(cycle_event_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_event_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(post) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(lookup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_interface), - "::", - stringify!(events) - ) - ); -} -pub type cycle_control_interface_t = cycle_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_control_interface { - pub stop: ::std::option::Option, - pub start: ::std::option::Option, - pub set_cycle_count: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cycle_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(cycle_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cycle_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cycle_count) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cycle_control_interface), - "::", - stringify!(set_cycle_count) - ) - ); -} -pub type data_profiler_interface_t = data_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct data_profiler_interface { - #[doc = " computes the sum of all counters in an address range, from start to\nend, inclusive. This function is deprecated; you should use the\nfunctions of the address_profiler interface instead."] - pub accum_in_range: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, start: uint64, end: uint64) -> uint64, - >, - #[doc = " write the profiling data to a file"] - pub save: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " read profiling data from a file, and adds it to whatever data was\nalready present in the profiler."] - pub load: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - #[doc = " resets all counters in the profiler to zero."] - pub clear: ::std::option::Option, - #[doc = " actually returns a prof_data_t*"] - pub get_prof_data: ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t) -> *mut ::std::os::raw::c_void, - >, -} -#[test] -fn bindgen_test_layout_data_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(data_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(data_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accum_in_range) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(accum_in_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(load) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(clear) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_prof_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(data_profiler_interface), - "::", - stringify!(get_prof_data) - ) - ); -} -#[doc = " \nservice_routine_t\n"] -pub type service_routine_t = ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - arg: uint64, - user_data: *mut lang_void, - ) -> exception_type_t, ->; -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_info { - pub ii_ServiceRoutine: service_routine_t, - pub ii_Arg: uint64, - pub ii_Type: ::std::os::raw::c_uint, - pub ii_UserData: *mut lang_void, - pub ii_LogicalAddress: logical_address_t, - pub ii_PhysicalAddress: physical_address_t, -} -#[test] -fn bindgen_test_layout_instruction_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(instruction_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_ServiceRoutine) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_ServiceRoutine) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_Type) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_Type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_UserData) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_UserData) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_LogicalAddress) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_LogicalAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ii_PhysicalAddress) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(instruction_info), - "::", - stringify!(ii_PhysicalAddress) - ) - ); -} -impl Default for instruction_info { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " \n\ninstruction_info_t\n\nii_ServiceRoutine is a pointer to a function that will\nbe called by Simics every time the instruction is executed. It has\nthe following prototype:\n\n\n\nThe service routine function should return an exception when it is\nfinished to signal its status. If no exception occurs\nSim_PE_No_Exception should be returned.\n\nSee exception_type_t in\nsrc/include/simics/base/memory.h for the different\nexceptions available.\n\nA special return value, Sim_PE_Default_Semantics, can be\nreturned; this signals Simics to run the default semantics for the\ninstruction. This is useful if the semantics of an instruction\nshould be changed but the user routine does not want to handle it all\nthe time.\n\nNote that in a shared memory multiprocessor, the CPU\nused in decoding may differ from the CPU that executes the\ninstruction, since the decoded instructions may be cached.\n\nii_Arg is the argument arg that will be\npassed on to the service routine function. Op code bit-fields for\nthe instruction such as register numbers or intermediate values can\nbe stored here. The ii_UserData field can also be used\nto pass information to the service routine if more data is needed.\n\nii_Type is either UD_IT_SEQUENTIAL or\nUD_IT_CONTROL_FLOW. A sequential type means that the\ninstruction does not perform any branches and the update of the\nprogram counter(s) is handled by Simics. In a control flow\ninstruction on the other hand it is up to the user to set the\nprogram counter(s).\n\nii_LogicalAddress and ii_PhysicalAddress\nholds the logical and physical addresses of the instruction to be\ndecoded.\n\n"] -pub type instruction_info_t = instruction_info; -#[doc = " \n\ndecoder_t\n\nThe decode function is called to decode an instruction\npointed to by code. The first byte corresponds to\nthe lowest address of the instruction in the simulated\nmemory. valid_bytes tells how many bytes can be\nread. The CPU is given in the cpu parameter. When\nthe decoder has successfully decoded an instruction, it should set\nthe ii_ServiceRoutine, the ii_Arg, and the\nii_Type members of the ii structure (see\nbelow), and returns the number of bytes used in the decoding. If\nit does not apply to the given instruction, it should return zero.\nIf the decoder needs more data than valid_bytes it\nshould return a negative number corresponding to the total number\nof bytes it will need to continue the decoding. The underlying\narchitecture limits the number of bytes that can be requested,\ne.g. no more than 4 bytes can be requested on most RISC\narchitectures. Simics will call the decoder again when more bytes\nare available. This process is repeated until the decoder accepts\nor rejects the instruction. A decoder should never request more\ndata than it needs. For example, if an instructions can be rejected\nby looking at the first byte, the decoder should never ask for more\nbytes.\n\nThe instruction_info_t is defined as follows:\n\n\n\nThe disassemble function is called to disassemble an\ninstruction. It uses the same code,\nvalid_bytes, and cpu parameters as\nthe decode function. If the disassembly is valid, then\nthe string part of the returned tuple_int_string_t struct\nshould be a MALLOCed string with the disassembly and the integer\npart should be its length in bytes. The caller is responsible for\nfreeing the disassembly string. The string member should be NULL\nand the integer part should be zero if the disassembly is not\nvalid. If the disassemble function needs more data than\nvalid_bytes it should return a negative number in\nthe integer part in the same way as the decode function,\nand set the string part to NULL.\n\nThe flush function is called to free any memory\nallocated when decoding an instruction and any user data associated\nwith the instruction. It should return zero if it does not\nrecognize the instruction, and non-zero if it has accepted it.\nUsually, the way to recognize if a decoded instruction is the right\none to flush is to compare ii->ii_ServiceRoutine with the\nfunction that was set in the decode function. Note\nthat the cpu parameter is the processor that caused\nthe flush. It is more or less an arbitrary processor and should be\nignored.\n\nIn addition to the function pointers, the\ndecoder_t structure contains a\nuser_data pointer that is passed to all the\nfunctions. This can be used for passing any data to the decoder\nfunctions.\n\n"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_t { - pub user_data: *mut ::std::os::raw::c_void, - pub decode: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - code: *mut uint8, - valid_bytes: ::std::os::raw::c_int, - cpu: *mut conf_object_t, - user_data: *mut ::std::os::raw::c_void, - ) -> tuple_int_string_t, - >, - pub flush: ::std::option::Option< - unsafe extern "C" fn( - ii: *mut instruction_info_t, - user_data: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_decoder_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(decoder_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).user_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).decode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(decode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(decoder_t), - "::", - stringify!(flush) - ) - ); -} -impl Default for decoder_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type decoder_interface_t = decoder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct decoder_interface { - pub register_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, - pub unregister_decoder: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, decoder: *mut decoder_t), - >, -} -#[test] -fn bindgen_test_layout_decoder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(decoder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(decoder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_decoder) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(register_decoder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_decoder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(decoder_interface), - "::", - stringify!(unregister_decoder) - ) - ); -} -pub type context_handler_interface_t = context_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct context_handler_interface { - pub get_current_context: - ::std::option::Option *mut conf_object_t>, - pub set_current_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_context_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(context_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(context_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_context) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(get_current_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_context) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(context_handler_interface), - "::", - stringify!(set_current_context) - ) - ); -} -extern "C" { - pub fn SIM_register_context_handler( - cls: *mut conf_class_t, - iface: *const context_handler_interface_t, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct prof_data { - _unused: [u8; 0], -} -pub type prof_data_t = prof_data; -pub type prof_data_address_t = uint64; -pub type prof_data_counter_t = uint64; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct prof_data_iter_t { - pub pd: *mut prof_data_t, - pub start: uint64, - pub end: uint64, - pub hit: ht_int_iter_t, - #[doc = " position in current chunk"] - pub index: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_prof_data_iter_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(prof_data_iter_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).pd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(pd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).hit) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(hit) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(prof_data_iter_t), - "::", - stringify!(index) - ) - ); -} -impl Default for prof_data_iter_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn prof_data_create(granularity: ::std::os::raw::c_uint) -> *mut prof_data_t; -} -extern "C" { - pub fn prof_data_delete(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_clear(pd: *mut prof_data_t); -} -extern "C" { - pub fn prof_data_granularity_log2(pd: *mut prof_data_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_set( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_add( - pd: *mut prof_data_t, - address: prof_data_address_t, - value: prof_data_counter_t, - ); -} -extern "C" { - pub fn prof_data_get(pd: *mut prof_data_t, address: prof_data_address_t) - -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_new_iter( - pd: *mut prof_data_t, - it: *mut prof_data_iter_t, - start: prof_data_address_t, - end: prof_data_address_t, - ); -} -extern "C" { - pub fn prof_data_iter_next(it: *mut prof_data_iter_t) -> prof_data_counter_t; -} -extern "C" { - pub fn prof_data_iter_addr(it: *mut prof_data_iter_t) -> prof_data_address_t; -} -extern "C" { - pub fn prof_data_save(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn prof_data_load(pd: *mut prof_data_t, f: *mut FILE) -> ::std::os::raw::c_int; -} -pub type data_profiler_flush_t = ::std::option::Option< - unsafe extern "C" fn(profiler: *mut conf_object_t, param: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_profiler_add_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_profiler_remove_flush( - dp: *mut conf_object_t, - flush_fun: data_profiler_flush_t, - flush_param: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn VT_prof_data_inc_pc(prof: *mut prof_data_t, cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_about_to_change(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_clock_frequency_change(obj: *mut conf_object_t, cycles_per_second: uint64); -} -pub const event_queue_type_Sim_Queue_Step: event_queue_type = 0; -pub const event_queue_type_Sim_Queue_Time: event_queue_type = 1; -#[doc = " only used to index the event_desc attribute in processors"] -pub type event_queue_type = ::std::os::raw::c_uint; -#[doc = " only used to index the event_desc attribute in processors"] -pub use self::event_queue_type as event_queue_type_t; -extern "C" { - #[doc = " aliases kept for binary compatibility; to be removed in the next version"] - pub fn VT_clear_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn VT_get_augmentation_bit( - page_data: *mut uint8, - pofs: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_augmentation_bit(page_data: *mut uint8, pofs: ::std::os::raw::c_uint); -} -extern "C" { - pub fn SIM_flush_I_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_logical( - cpu: *mut conf_object_t, - vaddr: logical_address_t, - length: logical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_I_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - ); -} -extern "C" { - pub fn SIM_flush_D_STC_physical( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: physical_address_t, - read_or_write: read_or_write_t, - ); -} -extern "C" { - pub fn SIM_STC_flush_cache(cpu: *mut conf_object_t); -} -extern "C" { - pub fn VT_new_code_block(start: *mut ::std::os::raw::c_void, len: usize); -} -extern "C" { - pub fn VT_check_async_events() -> bool; -} -extern "C" { - pub fn VT_check_async_events_from_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_unrestricted_sync_point(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_stop_event_processing(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_async_events_pending_in_cell(cell: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_local_async_events_pending(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_global_async_events_pending() -> bool; -} -extern "C" { - pub fn VT_register_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -extern "C" { - pub fn VT_unregister_async_notifier( - obj: *mut conf_object_t, - wakeup: ::std::option::Option, - ); -} -pub const addr_type_t_Addr_Type_Invalid: addr_type_t = 0; -pub const addr_type_t_Addr_Type_Physical: addr_type_t = 1; -pub const addr_type_t_Addr_Type_Virtual: addr_type_t = 2; -pub type addr_type_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct completion { - _unused: [u8; 0], -} -pub type completion_t = completion; -extern "C" { - pub fn VT_new_completion() -> *mut completion_t; -} -extern "C" { - pub fn VT_free_completion(c: *mut completion_t); -} -extern "C" { - pub fn VT_wait_for_completion(c: *mut completion_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_set_completion(c: *mut completion_t, status: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_async_stall_usecs(usecs: uint64); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct wait_handler { - _unused: [u8; 0], -} -pub type wait_handler_t = wait_handler; -extern "C" { - pub fn VT_create_wait_handler( - wait: ::std::option::Option< - unsafe extern "C" fn( - ret_thread_id: *mut *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - resume: ::std::option::Option< - unsafe extern "C" fn( - thread_id: *mut ::std::os::raw::c_void, - usr: *mut ::std::os::raw::c_void, - ), - >, - usr: *mut ::std::os::raw::c_void, - ) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_free_wait_handler(h: *mut wait_handler_t); -} -extern "C" { - pub fn VT_set_wait_handler(h: *mut wait_handler_t) -> *mut wait_handler_t; -} -extern "C" { - pub fn VT_start_execution_fiber( - obj: *mut conf_object_t, - func: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: *mut lang_void), - >, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_abort_execution_fiber() -> !; -} -pub const breakpoint_flag_Sim_Breakpoint_Temporary: breakpoint_flag = 1; -pub const breakpoint_flag_Sim_Breakpoint_Simulation: breakpoint_flag = 2; -pub const breakpoint_flag_Sim_Breakpoint_Private: breakpoint_flag = 4; -#[doc = " "] -pub type breakpoint_flag = ::std::os::raw::c_uint; -#[doc = " "] -pub use self::breakpoint_flag as breakpoint_flag_t; -extern "C" { - pub fn SIM_breakpoint( - obj: *mut conf_object_t, - type_: breakpoint_kind_t, - access: access_t, - address: uint64, - length: uint64, - flags: breakpoint_flag_t, - ) -> breakpoint_id_t; -} -extern "C" { - pub fn SIM_delete_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_enable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_disable_breakpoint(id: breakpoint_id_t); -} -extern "C" { - pub fn SIM_breakpoint_remove( - id: breakpoint_id_t, - access: access_t, - address: generic_address_t, - length: generic_address_t, - ); -} -#[doc = " when ready for reading/accept, or closed"] -pub const notify_mode_t_Sim_NM_Read: notify_mode_t = 0; -#[doc = " when ready for writing/connect"] -pub const notify_mode_t_Sim_NM_Write: notify_mode_t = 1; -pub type notify_mode_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_notify_on_descriptor( - fd: ::std::os::raw::c_int, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_notify_on_socket( - sock: socket_t, - mode: notify_mode_t, - run_in_thread: ::std::os::raw::c_int, - callback: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_register_work( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_process_work( - done: ::std::option::Option< - unsafe extern "C" fn(done_data: *mut lang_void) -> ::std::os::raw::c_int, - >, - done_data: *mut lang_void, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_process_pending_work() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_post_local_work( - cell: *mut conf_object_t, - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_realtime_event( - delay_ms: ::std::os::raw::c_uint, - callback: ::std::option::Option, - data: *mut lang_void, - run_in_thread: ::std::os::raw::c_int, - desc: *const ::std::os::raw::c_char, - ) -> int64; -} -extern "C" { - pub fn SIM_cancel_realtime_event(id: int64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_run_alone( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_thread_safe_callback( - f: ::std::option::Option, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_async_work( - async_call: ::std::option::Option< - unsafe extern "C" fn(arg: *mut lang_void) -> *mut lang_void, - >, - async_ready: ::std::option::Option< - unsafe extern "C" fn(async_ret: *mut lang_void, arg: *mut lang_void), - >, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_run_in_thread( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_soon( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_domain_event_at( - domain: *mut conf_object_t, - ec: *mut event_class_t, - obj: *mut conf_object_t, - clock: *mut conf_object_t, - when: f64, - param: *mut lang_void, - ); -} -extern "C" { - pub fn VT_cross_cell_call( - f: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, arg: *mut lang_void), - >, - obj: *mut conf_object_t, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_process_cross_cell_calls(); -} -extern "C" { - pub fn VT_dispatch_async_events(); -} -extern "C" { - pub fn VT_run_outside_cell( - f: ::std::option::Option, - arg: *mut lang_void, - ); -} -extern "C" { - pub fn VT_add_telemetry_data( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_str( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_int( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: uint64, - ); -} -extern "C" { - pub fn VT_add_telemetry_data_bool( - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: bool, - ); -} -pub type telemetry_manager_interface_t = telemetry_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telemetry_manager_interface { - pub add_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - group: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_telemetry_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telemetry_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telemetry_manager_interface), - "::", - stringify!(add_data) - ) - ); -} -extern "C" { - pub fn SIM_trigger_global_message(msg: *const ::std::os::raw::c_char, ref_: *mut lang_void); -} -extern "C" { - pub fn SIM_get_global_message(ref_: *mut lang_void) -> *const ::std::os::raw::c_char; -} -pub type cmd_line_id_t = ::std::os::raw::c_int; -pub const cmd_line_key_t_Cmd_Line_Key_Left: cmd_line_key_t = 0; -pub const cmd_line_key_t_Cmd_Line_Key_Right: cmd_line_key_t = 1; -pub const cmd_line_key_t_Cmd_Line_Key_Up: cmd_line_key_t = 2; -pub const cmd_line_key_t_Cmd_Line_Key_Down: cmd_line_key_t = 3; -pub const cmd_line_key_t_Cmd_Line_Key_PgUp: cmd_line_key_t = 4; -pub const cmd_line_key_t_Cmd_Line_Key_PgDn: cmd_line_key_t = 5; -pub const cmd_line_key_t_Cmd_Line_Key_Home: cmd_line_key_t = 6; -pub const cmd_line_key_t_Cmd_Line_Key_End: cmd_line_key_t = 7; -pub const cmd_line_key_t_Cmd_Line_Key_Back: cmd_line_key_t = 8; -pub const cmd_line_key_t_Cmd_Line_Key_Tab: cmd_line_key_t = 9; -pub const cmd_line_key_t_Cmd_Line_Key_Enter: cmd_line_key_t = 10; -pub const cmd_line_key_t_Cmd_Line_Key_Del: cmd_line_key_t = 11; -pub const cmd_line_key_t_Cmd_Line_Key_Ins: cmd_line_key_t = 12; -pub const cmd_line_key_t_Cmd_Line_Key_F1: cmd_line_key_t = 13; -pub const cmd_line_key_t_Cmd_Line_Key_F2: cmd_line_key_t = 14; -pub const cmd_line_key_t_Cmd_Line_Key_F3: cmd_line_key_t = 15; -pub const cmd_line_key_t_Cmd_Line_Key_F4: cmd_line_key_t = 16; -pub const cmd_line_key_t_Cmd_Line_Key_F5: cmd_line_key_t = 17; -pub const cmd_line_key_t_Cmd_Line_Key_F6: cmd_line_key_t = 18; -pub const cmd_line_key_t_Cmd_Line_Key_F7: cmd_line_key_t = 19; -pub const cmd_line_key_t_Cmd_Line_Key_F8: cmd_line_key_t = 20; -pub const cmd_line_key_t_Cmd_Line_Key_F9: cmd_line_key_t = 21; -pub const cmd_line_key_t_Cmd_Line_Key_F10: cmd_line_key_t = 22; -pub const cmd_line_key_t_Cmd_Line_Key_F11: cmd_line_key_t = 23; -pub const cmd_line_key_t_Cmd_Line_Key_F12: cmd_line_key_t = 24; -#[doc = " This enum must be kept in sync with the array simicsToSwt in\n SimicsKeyTranslator.java, otherwise the Eclipse Console view\n will break."] -pub type cmd_line_key_t = ::std::os::raw::c_uint; -pub const cmd_line_mod_t_Cmd_Line_Mod_None: cmd_line_mod_t = 0; -pub const cmd_line_mod_t_Cmd_Line_Mod_Shift: cmd_line_mod_t = 1; -pub const cmd_line_mod_t_Cmd_Line_Mod_Ctrl: cmd_line_mod_t = 2; -pub const cmd_line_mod_t_Cmd_Line_Mod_Alt: cmd_line_mod_t = 4; -pub type cmd_line_mod_t = ::std::os::raw::c_uint; -pub type cmd_line_frontend_interface_t = cmd_line_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_frontend_interface { - #[doc = " write a character on the command line at the current cursor\nposition, overwriting any existing character there"] - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - #[doc = " deletes the line from current position to the end of the line"] - pub delete_line: ::std::option::Option, - pub disconnect: ::std::option::Option, - #[doc = " moves the cursor num characters to the left."] - pub cursor_left: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " moves the cursor num characters to the right."] - pub cursor_right: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, num: ::std::os::raw::c_int), - >, - #[doc = " clears the screen and moves the cursor to position 0. Optional,\nmay be NULL if not implemented."] - pub clear_screen: ::std::option::Option, - #[doc = " called when the prompt has been printed with the position on\nthe line of the first non-prompt character. Optional, may be\nnull if not implemented"] - pub prompt_end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, pos: ::std::os::raw::c_int), - >, - #[doc = " optional"] - pub bell: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_cmd_line_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_line) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(delete_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_left) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_right) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(cursor_right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_screen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(clear_screen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prompt_end) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(prompt_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bell) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_frontend_interface), - "::", - stringify!(bell) - ) - ); -} -pub type cmd_line_selection_interface_t = cmd_line_selection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cmd_line_selection_interface { - pub new_selection: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - pub to_clipboard: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_cmd_line_selection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmd_line_selection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).new_selection) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(new_selection) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).to_clipboard) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmd_line_selection_interface), - "::", - stringify!(to_clipboard) - ) - ); -} -extern "C" { - #[doc = " The following functions are internal and will probably be replaced\nby a \"cmd_line\" interface."] - pub fn VT_command_line_create( - obj: *mut conf_object_t, - interactive: bool, - primary: bool, - ) -> cmd_line_id_t; -} -extern "C" { - pub fn VT_command_line_delete(id: cmd_line_id_t); -} -extern "C" { - pub fn VT_command_line_new_position(id: cmd_line_id_t, pos: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_command_line_new_selection( - id: cmd_line_id_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_command_line_to_clipboard(id: cmd_line_id_t, str_: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_command_line_key(id: cmd_line_id_t, mod_: cmd_line_mod_t, key: cmd_line_key_t); -} -extern "C" { - pub fn VT_command_line_set_size( - arg1: cmd_line_id_t, - cols: ::std::os::raw::c_int, - rows: ::std::os::raw::c_int, - ); -} -pub type terminal_server_interface_t = terminal_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_server_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - ), - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_terminal_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(terminal_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(terminal_server_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type terminal_client_interface_t = terminal_client_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct terminal_client_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: ::std::os::raw::c_int, - str_: *const ::std::os::raw::c_char, - ), - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_terminal_client_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(terminal_client_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(terminal_client_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(terminal_client_interface), - "::", - stringify!(disconnect) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct pre_conf_object_set_t { - _unused: [u8; 0], -} -extern "C" { - pub fn SIM_read_configuration(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_set_configuration(conf: attr_value_t); -} -extern "C" { - pub fn SIM_add_configuration( - object_list: *mut pre_conf_object_set_t, - file: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_current_checkpoint_dir() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_add_objects(set: *mut pre_conf_object_set_t) -> attr_value_t; -} -#[doc = " old-style save without creating directory"] -pub const save_flags_t_Sim_Save_Nobundle: save_flags_t = 1; -#[doc = " use RLE for data values"] -pub const save_flags_t_Sim_Save_RLE_Data: save_flags_t = 2; -#[doc = " create gzipped config file"] -pub const save_flags_t_Sim_Save_Gzip_Config: save_flags_t = 4; -pub type save_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn SIM_write_configuration_to_file( - file: *const ::std::os::raw::c_char, - flags: save_flags_t, - ); -} -extern "C" { - pub fn VT_get_configuration(file: *const ::std::os::raw::c_char) -> *mut pre_conf_object_set_t; -} -extern "C" { - #[doc = " Get attribute attribute."] - pub fn SIM_get_attribute_attributes( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> attr_attr_t; -} -extern "C" { - #[doc = " return 1 if the class has an attribute with name attr"] - pub fn SIM_class_has_attribute( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn SIM_class_port( - cls: *const conf_class_t, - portname: *const ::std::os::raw::c_char, - ) -> *mut conf_class_t; -} -extern "C" { - pub fn VT_get_port_classes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_obj_desc( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_description(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_short_desc(cls: *const conf_class_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_get_class_kind(cls: *const conf_class_t) -> class_kind_t; -} -extern "C" { - #[doc = " Get object (returns NULL if object not found)."] - pub fn SIM_get_object(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_object_by_name(name: *const ::std::os::raw::c_char) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Delete object."] - pub fn SIM_delete_object(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_delete_objects(object_list: attr_value_t) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Get attribute from object."] - pub fn SIM_get_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Get attribute from class."] - pub fn SIM_get_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - #[doc = " Set attribute in object. Returns error code on failure (0 == ok)."] - pub fn SIM_set_attribute( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_idx( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_attribute_default( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> set_error_t; -} -extern "C" { - #[doc = " Set attribute in class. Returns error code on failure (0 == ok)."] - pub fn SIM_set_class_attribute( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn SIM_set_class_attribute_idx( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - index: *mut attr_value_t, - value: *mut attr_value_t, - ) -> set_error_t; -} -extern "C" { - pub fn VT_get_attributes(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_port_interfaces(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_class_extensions(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_attribute_type( - cls: *mut conf_class_t, - attr: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_rename_object(obj: *mut conf_object_t, newname: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_set_object_checkpointable(obj: *mut conf_object_t, checkpointable: bool); -} -extern "C" { - pub fn VT_object_checkpointable(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn VT_set_delete_protection(obj: *mut conf_object_t, on: bool); -} -extern "C" { - pub fn VT_add_permanent_object(obj: *mut conf_object_t); -} -extern "C" { - pub fn SIM_create_object( - cls: *mut conf_class_t, - name: *const ::std::os::raw::c_char, - attrs: attr_value_t, - ) -> *mut conf_object_t; -} -extern "C" { - #[doc = " Return vector with all objects."] - pub fn SIM_get_all_objects() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_classes() -> attr_value_t; -} -extern "C" { - #[doc = " Return vector with objects implementing all the ifaces"] - pub fn VT_get_all_objects_impl(ifaces: attr_value_t) -> attr_value_t; -} -extern "C" { - pub fn VT_get_all_instances(cls: *mut conf_class_t) -> attr_value_t; -} -extern "C" { - pub fn DBG_check_typing_system( - type_: *const ::std::os::raw::c_char, - val: *mut attr_value_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_continue(steps: int64) -> pc_step_t; -} -extern "C" { - pub fn SIM_simics_is_running() -> bool; -} -extern "C" { - pub fn SIM_break_simulation(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_break_message(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_get_break_message() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_shutdown(); -} -extern "C" { - pub fn SIM_quit(exit_code: ::std::os::raw::c_int) -> !; -} -extern "C" { - pub fn VT_wait_for_simulator_init(); -} -extern "C" { - pub fn SIM_break_cycle(obj: *mut conf_object_t, cycles: int64); -} -extern "C" { - pub fn SIM_break_step(obj: *mut conf_object_t, steps: int64); -} -extern "C" { - pub fn VT_user_interrupt( - msg: *const ::std::os::raw::c_char, - break_script: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn VT_inside_instruction() -> bool; -} -extern "C" { - pub fn VT_thread_cell_association_begin(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_thread_cell_association_end(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_in_main_branch() -> bool; -} -extern "C" { - pub fn VT_set_frontend_server(obj: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_send_startup_complete_message(); -} -extern "C" { - pub fn VT_remote_control() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_process_work(done: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -pub type frontend_server_interface_t = frontend_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct frontend_server_interface { - pub init_control_pipes: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, s: *const ::std::os::raw::c_char), - >, - pub have_mi_frontend: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub notify_break_on_breakpoint: - ::std::option::Option, - pub send_control_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - val: *mut attr_value_t, - propagate_exception: bool, - ), - >, - pub send_checkpoint_progress_message: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - caller: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_frontend_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(frontend_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(frontend_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init_control_pipes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(init_control_pipes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).have_mi_frontend) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(have_mi_frontend) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_break_on_breakpoint) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(notify_break_on_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_control_message) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_control_message) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).send_checkpoint_progress_message) as usize - ptr as usize - }, - 32usize, - concat!( - "Offset of field: ", - stringify!(frontend_server_interface), - "::", - stringify!(send_checkpoint_progress_message) - ) - ); -} -pub type tcf_channel_interface_t = tcf_channel_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcf_channel_interface { - pub start_channel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - url: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_tcf_channel_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcf_channel_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_channel) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcf_channel_interface), - "::", - stringify!(start_channel) - ) - ); -} -extern "C" { - pub fn VT_get_stop_reasons() -> attr_value_t; -} -pub const stop_type_t_Sim_Stop_Stopped: stop_type_t = 0; -pub const stop_type_t_Sim_Stop_Aborted: stop_type_t = 1; -pub type stop_type_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_get_stop_type() -> stop_type_t; -} -extern "C" { - pub fn VT_stop_message(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_user(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_stop_finished(msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_error(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn VT_abort_user(msg: *const ::std::os::raw::c_char); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct execute_environ { - _unused: [u8; 0], -} -pub type execute_environ_t = execute_environ; -extern "C" { - pub fn VT_create_execute_environ() -> *mut execute_environ_t; -} -extern "C" { - pub fn VT_free_execute_environ(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_set_execute_environ(obj: *mut conf_object_t, env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_stop_execution(env: *mut execute_environ_t); -} -extern "C" { - pub fn VT_activate_executor(ec: *mut execute_environ_t, obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_execute(ec: *mut execute_environ_t) -> bool; -} -extern "C" { - pub fn SIM_get_debugger() -> *mut conf_object_t; -} -#[doc = " hap_handle_t"] -pub type hap_handle_t = ::std::os::raw::c_int; -pub type obj_hap_func_t = ::std::option::Option; -pub type hap_flags_t = ::std::os::raw::c_int; -extern "C" { - pub fn SIM_get_all_hap_types() -> attr_value_t; -} -extern "C" { - pub fn SIM_hap_add_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_index( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_range( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_index( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - index: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_add_callback_obj_range( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - flags: hap_flags_t, - func: obj_hap_func_t, - data: *mut lang_void, - start: int64, - end: int64, - ) -> hap_handle_t; -} -extern "C" { - pub fn SIM_hap_delete_callback( - hap: *const ::std::os::raw::c_char, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - func: obj_hap_func_t, - data: *mut lang_void, - ); -} -extern "C" { - pub fn SIM_hap_delete_callback_id(hap: *const ::std::os::raw::c_char, handle: hap_handle_t); -} -extern "C" { - pub fn SIM_hap_delete_callback_obj_id( - hap: *const ::std::os::raw::c_char, - obj: *mut conf_object_t, - handle: hap_handle_t, - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct profile_area { - _unused: [u8; 0], -} -pub type profile_area_t = profile_area; -extern "C" { - pub fn SIM_add_profiling_area( - name: *const ::std::os::raw::c_char, - start: usize, - end: usize, - ) -> *mut profile_area_t; -} -extern "C" { - pub fn SIM_remove_profiling_area(handle: *mut profile_area_t); -} -extern "C" { - pub fn SIM_read_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - length: ::std::os::raw::c_int, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory( - cpu: *mut conf_object_t, - paddr: physical_address_t, - value: uint64, - length: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn SIM_read_byte(obj: *mut conf_object_t, paddr: generic_address_t) -> uint8; -} -extern "C" { - pub fn SIM_write_byte(obj: *mut conf_object_t, paddr: generic_address_t, value: uint8); -} -extern "C" { - pub fn SIM_read_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - ntags: ::std::os::raw::c_uint, - ) -> uint64; -} -extern "C" { - pub fn SIM_write_phys_memory_tags( - mem_space: *mut conf_object_t, - paddr: physical_address_t, - tag_bits: uint64, - ntags: ::std::os::raw::c_uint, - ); -} -extern "C" { - pub fn SIM_load_binary( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - offset: physical_address_t, - use_pa: bool, - verbose: bool, - ) -> physical_address_t; -} -extern "C" { - pub fn SIM_load_file( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - paddr: physical_address_t, - verbose: bool, - ); -} -extern "C" { - pub fn SIM_get_all_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_all_failed_modules() -> attr_value_t; -} -extern "C" { - pub fn SIM_add_module_dir(path: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_module_list_refresh(); -} -extern "C" { - pub fn SIM_load_module(module: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_write( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_flush() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_puts(s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_putchar(c: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " pr is just an alias for SIM_printf"] - pub fn pr(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_printf_vararg( - format: *const ::std::os::raw::c_char, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_write_rev( - src: *const ::std::os::raw::c_void, - length: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn pr_rev(format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_revexec_divert_output(divert: ::std::os::raw::c_int, discard: ::std::os::raw::c_int); -} -pub type output_handler_t = ::std::option::Option< - unsafe extern "C" fn(data: *mut lang_void, src: *const ::std::os::raw::c_char, length: usize), ->; -extern "C" { - pub fn SIM_add_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_remove_output_handler(func: output_handler_t, user_data: *mut lang_void); -} -extern "C" { - pub fn SIM_set_quiet(quiet: bool); -} -extern "C" { - pub fn SIM_get_quiet() -> bool; -} -extern "C" { - pub fn SIM_set_verbose(verbose: bool); -} -extern "C" { - pub fn SIM_get_verbose() -> bool; -} -extern "C" { - pub fn VT_real_network_warnings(); -} -extern "C" { - pub fn VT_use_ipv4() -> bool; -} -extern "C" { - pub fn SIM_native_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_lookup_file(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn SIM_add_directory(directory: *const ::std::os::raw::c_char, prepend: bool); -} -extern "C" { - pub fn SIM_clear_directories(); -} -extern "C" { - pub fn SIM_get_directories() -> attr_value_t; -} -extern "C" { - pub fn VT_get_saved_cwd() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn VT_logical_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn SIM_object_is_processor(obj: *mut conf_object_t) -> bool; -} -extern "C" { - pub fn SIM_number_processors() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_reset_processor(cpu: *mut conf_object_t, hard_reset: ::std::os::raw::c_int); -} -extern "C" { - pub fn SIM_get_all_processors() -> attr_value_t; -} -extern "C" { - pub fn SIM_get_processor(proc_no: ::std::os::raw::c_int) -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_get_processor_number(cpu: *const conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor() -> *mut conf_object_t; -} -extern "C" { - pub fn VT_get_current_processor_old() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_processor_privilege_level(cpu: *mut conf_object_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn SIM_disassemble_address( - cpu: *mut conf_object_t, - address: generic_address_t, - logical: ::std::os::raw::c_int, - sub: ::std::os::raw::c_int, - ) -> tuple_int_string_t; -} -extern "C" { - pub fn VT_first_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_current_clock() -> *mut conf_object_t; -} -extern "C" { - pub fn SIM_source_python(file: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn SIM_source_python_in_module( - file: *const ::std::os::raw::c_char, - module: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_run_python(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_call_python_function( - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn VT_call_python_module_function( - module: *const ::std::os::raw::c_char, - func: *const ::std::os::raw::c_char, - args: *mut attr_value_t, - ) -> attr_value_t; -} -extern "C" { - pub fn SIM_get_python_interface_type(name: *const ::std::os::raw::c_char) -> *mut _object; -} -extern "C" { - pub fn VT_python_decref(o: *mut _object); -} -extern "C" { - pub fn VT_revexec_available() -> bool; -} -extern "C" { - pub fn VT_revexec_active() -> bool; -} -extern "C" { - pub fn VT_in_the_past() -> bool; -} -pub const revexec_pos_t_Sim_Reverse_Limit: revexec_pos_t = 0; -pub const revexec_pos_t_Sim_End_Of_Future: revexec_pos_t = 1; -pub type revexec_pos_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_revexec_steps(cpu: *mut conf_object_t, where_: revexec_pos_t) -> pc_step_t; -} -extern "C" { - pub fn VT_revexec_cycles(cpu: *mut conf_object_t, where_: revexec_pos_t) -> cycles_t; -} -extern "C" { - pub fn VT_get_rewind_overhead(cpu: *mut conf_object_t, abscount: pc_step_t) -> pc_step_t; -} -extern "C" { - pub fn VT_reverse(count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_reverse_cpu(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_step(clock: *mut conf_object_t, count: pc_step_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_cycle(clock: *mut conf_object_t, count: cycles_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_skipto_bookmark(name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn VT_rewind(cpu: *mut conf_object_t, abscount: pc_step_t) -> ::std::os::raw::c_int; -} -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_User: micro_checkpoint_flags_t = 0; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint: micro_checkpoint_flags_t = 1; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Tmp: micro_checkpoint_flags_t = 2; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_N_States: micro_checkpoint_flags_t = 3; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Last_States: micro_checkpoint_flags_t = 4; -#[doc = " micro checkpoint id"] -pub const micro_checkpoint_flags_t_Sim_MC_ID_Mask: micro_checkpoint_flags_t = 255; -#[doc = " type of micro checkpoint"] -pub const micro_checkpoint_flags_t_Sim_MC_Persistent: micro_checkpoint_flags_t = 256; -#[doc = " may be deleted automatically"] -pub const micro_checkpoint_flags_t_Sim_MC_Automatic: micro_checkpoint_flags_t = 512; -pub type micro_checkpoint_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn VT_save_micro_checkpoint( - name: *const ::std::os::raw::c_char, - flags: micro_checkpoint_flags_t, - ); -} -extern "C" { - pub fn VT_restore_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - pub fn VT_delete_micro_checkpoint(index: ::std::os::raw::c_int); -} -extern "C" { - #[doc = " VT_in_time_order() is used to handle events (e.g. breakpoint haps) in\nstrict time order. This is particularly useful when simics reverses since\nthere is absolutely no guarantee that haps are invoked in reverse time\norder.\n\nVT_c_in_time_order() is similar to VT_in_time_order(), except the buffer\npointed to by the data argument is copied and later passed to the callback.\nThe callback should not release the data or cache pointers to it since\nthe space will be reused automatically.\n\nThe callback may raise an exception, e.g. by calling SIM_break_simulation,\nto signal that the simulation should be stopped."] - pub fn VT_in_time_order( - handler: ::std::option::Option, - data: cbdata_register_t, - ); -} -pub type time_ordered_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, param: int64, data: *mut ::std::os::raw::c_void), ->; -extern "C" { - pub fn VT_c_in_time_order( - obj: *mut conf_object_t, - handler: time_ordered_handler_t, - param: int64, - data: *mut ::std::os::raw::c_void, - data_size: usize, - ); -} -extern "C" { - #[doc = " used to prevent reverse execution from touching certain classes/attributes"] - pub fn VT_revexec_ignore_class(class_name: *const ::std::os::raw::c_char); -} -extern "C" { - #[doc = " prevent reversal past this point in time"] - pub fn VT_revexec_barrier(); -} -extern "C" { - pub fn SIM_run_command(line: *const ::std::os::raw::c_char) -> attr_value_t; -} -extern "C" { - pub fn SIM_run_command_file(file: *const ::std::os::raw::c_char, local: bool); -} -extern "C" { - pub fn SIM_run_command_file_params( - file: *const ::std::os::raw::c_char, - local: bool, - params: attr_value_t, - ); -} -extern "C" { - pub fn SIM_load_target( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - presets: attr_value_t, - cmdline_args: attr_value_t, - ); -} -extern "C" { - pub fn VT_load_target_preset_yml( - target: *const ::std::os::raw::c_char, - ns: *const ::std::os::raw::c_char, - preset_yml: *const ::std::os::raw::c_char, - ); -} -extern "C" { - pub fn SIM_get_batch_mode() -> bool; -} -extern "C" { - pub fn VT_interrupt_script(user: bool); -} -extern "C" { - pub fn SIM_flush_all_caches(); -} -extern "C" { - pub fn SIM_flush_cell_caches(obj: *mut conf_object_t); -} -extern "C" { - pub fn VT_unregister_thread(); -} -extern "C" { - pub fn VT_register_thread(); -} -extern "C" { - pub fn VT_register_oec_thread(); -} -extern "C" { - pub fn VT_is_oec_thread() -> bool; -} -pub const description_type_t_Description_Type_Group: description_type_t = 0; -pub const description_type_t_Description_Type_Int_Reg: description_type_t = 1; -pub const description_type_t_Description_Type_Float_Reg: description_type_t = 2; -pub const description_type_t_Description_Type_Fields_Reg: description_type_t = 3; -pub const description_type_t_Description_Type_Int_Field: description_type_t = 4; -pub const description_type_t_Description_Type_Float_Field: description_type_t = 5; -#[doc = " description_type_t"] -pub type description_type_t = ::std::os::raw::c_uint; -#[doc = " No special role for the register."] -pub const reg_role_t_Reg_Role_None: reg_role_t = 0; -#[doc = " The register is the program counter."] -pub const reg_role_t_Reg_Role_Program_Counter: reg_role_t = 1; -#[doc = " reg_role_t"] -pub type reg_role_t = ::std::os::raw::c_uint; -pub const reg_bitorder_t_Reg_Bitorder_Little_Endian: reg_bitorder_t = 0; -pub const reg_bitorder_t_Reg_Bitorder_Big_Endian: reg_bitorder_t = 1; -#[doc = " reg_bitorder_t"] -pub type reg_bitorder_t = ::std::os::raw::c_uint; -#[doc = " Describes a named value. */\n/* named_value_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct named_value_t { - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " Little endian byte order"] - pub value: bytes_t, -} -#[test] -fn bindgen_test_layout_named_value_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(named_value_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(named_value_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(named_value_t), - "::", - stringify!(value) - ) - ); -} -impl Default for named_value_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " description_t"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct description_t { - #[doc = " Common fields"] - pub type_: description_type_t, - pub name: *const ::std::os::raw::c_char, - pub description: *const ::std::os::raw::c_char, - #[doc = " id used by dwarf for this register\nor -1 if no such id is defined. This\nis ABI specific, but the CPU will\ngive the ids for the most common ABI\nfor that architecture."] - pub dwarf_id: int16, - #[doc = " Bitorder convention used in the\ndocumentation for this register or\nfield."] - pub bitorder: reg_bitorder_t, - #[doc = " Role of this register in the ABI/HW."] - pub role: reg_role_t, - #[doc = " True if the register is memory mapped."] - pub memory_mapped: bool, - #[doc = " Offset into the bank for memory mapped\nregisters."] - pub offset: uint64, - #[doc = " True if Core_Control_Register_Write and\nCore_Control_Register_Read are triggered\nwhen this register is written or read."] - pub catchable: bool, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub msb: ::std::os::raw::c_int, - #[doc = " Most and least significant bit of the\nregister or field. Always given in le\nbitorder. For groups msb == -1 and\nlsb == 0."] - pub lsb: ::std::os::raw::c_int, - #[doc = " Number of bits in the register, or the\nregister this field is a part of."] - pub regsize: ::std::os::raw::c_int, - #[doc = " For registers and fields the id to pass\nto the get and set methods to access the\nregister's value. Fields have the same\nreg_id as the register they are a part\nof. Not valid for groups."] - pub reg_id: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_description_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(description_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(description_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dwarf_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(dwarf_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bitorder) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).role) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(role) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).memory_mapped) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(memory_mapped) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).catchable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(catchable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msb) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(msb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lsb) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(lsb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).regsize) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(regsize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_id) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(description_t), - "::", - stringify!(reg_id) - ) - ); -} -impl Default for description_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type describe_registers_interface_t = describe_registers_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct describe_registers_interface { - pub first_child: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const description_t, - >, - pub next_description: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const description_t, - ) -> *const description_t, - >, - pub free_description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, desc: *const description_t), - >, - pub first_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent: *const description_t, - ) -> *const named_value_t, - >, - pub next_named_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prev: *const named_value_t, - ) -> *const named_value_t, - >, - pub free_named_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, nv: *const named_value_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - dest: buffer_t, - ), - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_id: ::std::os::raw::c_int, - value: bytes_t, - ), - >, -} -#[test] -fn bindgen_test_layout_describe_registers_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(describe_registers_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(describe_registers_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_child) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_child) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_description) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_description) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).first_named_value) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(first_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next_named_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(next_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).free_named_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(free_named_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(describe_registers_interface), - "::", - stringify!(set) - ) - ); -} -pub type device_identification_interface_t = device_identification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct device_identification_interface { - pub get_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char, - >, - pub get_key: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_device_identification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(device_identification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(device_identification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_key) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(device_identification_interface), - "::", - stringify!(get_key) - ) - ); -} -pub type direct_memory_interface_t = direct_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_interface { - pub get_handle: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - subsystem: uint64, - offs: uint64, - size: ::std::os::raw::c_uint, - ) -> direct_memory_handle_t, - >, - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - permission: access_t, - inhibit: access_t, - ) -> direct_memory_t, - >, - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: access_t, - permission: access_t, - inhibit: access_t, - ), - >, - pub get_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> *mut ::std::os::raw::c_void, - >, - pub set_user_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - user_data: *mut ::std::os::raw::c_void, - ), - >, - pub release: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: direct_memory_handle_t), - >, - pub ack: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: direct_memory_ack_id_t), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(direct_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_handle) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_handle) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_user_data) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(get_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_user_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(set_user_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_interface), - "::", - stringify!(ack) - ) - ); -} -pub type direct_memory_lookup_interface_t = direct_memory_lookup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - addr: physical_address_t, - size: ::std::os::raw::c_uint, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_lookup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_lookup_v2_interface_t = direct_memory_lookup_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_lookup_v2_interface { - pub lookup: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - transaction: *mut transaction_t, - addr: physical_address_t, - access: access_t, - ) -> direct_memory_lookup_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_lookup_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_lookup_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(direct_memory_lookup_v2_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lookup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_lookup_v2_interface), - "::", - stringify!(lookup) - ) - ); -} -pub type direct_memory_update_interface_t = direct_memory_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_update_interface { - pub release: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - id: direct_memory_ack_id_t, - ), - >, - pub update_permission: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - lost_access: access_t, - lost_permission: access_t, - lost_inhibit: access_t, - id: direct_memory_ack_id_t, - ), - >, - pub conflicting_access: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - target: *mut conf_object_t, - handle: direct_memory_handle_t, - conflicting_permission: access_t, - id: direct_memory_ack_id_t, - ), - >, -} -#[test] -fn bindgen_test_layout_direct_memory_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_permission) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(update_permission) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).conflicting_access) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_update_interface), - "::", - stringify!(conflicting_access) - ) - ); -} -pub type direct_memory_flush_interface_t = direct_memory_flush_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_flush_interface { - pub revoke: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - perm: access_t, - inhibit: access_t, - ), - >, - pub set_access_bits: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - requester: *mut conf_object_t, - base: uint64, - size: uint64, - access: access_t, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_flush_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_flush_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).revoke) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(revoke) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_access_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_flush_interface), - "::", - stringify!(set_access_bits) - ) - ); -} -pub type direct_memory_tags_interface_t = direct_memory_tags_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct direct_memory_tags_interface { - pub get_tags_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: direct_memory_handle_t, - ) -> direct_memory_tags_t, - >, -} -#[test] -fn bindgen_test_layout_direct_memory_tags_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(direct_memory_tags_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tags_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(direct_memory_tags_interface), - "::", - stringify!(get_tags_data) - ) - ); -} -pub type event_delta_interface_t = event_delta_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_delta_interface { - pub set_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - next_event_ec: *const event_class_t, - delta: uint64, - ) -> uint64, - >, - pub get_delta: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - event_handler_obj: *mut conf_object_t, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_event_delta_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_delta_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_delta_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_delta) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(set_delta) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_delta) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_delta_interface), - "::", - stringify!(get_delta) - ) - ); -} -pub type event_handler_interface_t = event_handler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct event_handler_interface { - pub handle_event: ::std::option::Option bool>, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_event_handler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(event_handler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(event_handler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).handle_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(handle_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(event_handler_interface), - "::", - stringify!(stop) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct step_instrumentation { - _unused: [u8; 0], -} -pub type step_handle_t = step_instrumentation; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct clock_instrumentation { - _unused: [u8; 0], -} -pub type cycle_handle_t = clock_instrumentation; -pub type step_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - steps: pc_step_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type step_event_instrumentation_interface_t = step_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_event_instrumentation_interface { - pub register_step_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: step_event_cb_t, - data: *mut lang_void, - ) -> *mut step_handle_t, - >, - pub remove_step_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut step_handle_t), - >, -} -#[test] -fn bindgen_test_layout_step_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(step_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_step_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(register_step_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_step_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_event_instrumentation_interface), - "::", - stringify!(remove_step_event_cb) - ) - ); -} -#[doc = " ADD INTERFACE step_event_instrumentation"] -pub type cycle_event_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - step_obj: *mut conf_object_t, - event_obj: *mut conf_object_t, - cycles: cycles_t, - event_class_name: *const ::std::os::raw::c_char, - description: *const ::std::os::raw::c_char, - value: attr_value_t, - user_data: *mut lang_void, - ), ->; -pub type cycle_event_instrumentation_interface_t = cycle_event_instrumentation_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cycle_event_instrumentation_interface { - pub register_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn( - cpu: *mut conf_object_t, - connection: *mut conf_object_t, - cb: cycle_event_cb_t, - data: *mut lang_void, - ) -> *mut cycle_handle_t, - >, - pub remove_cycle_event_cb: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, handle: *mut cycle_handle_t), - >, -} -#[test] -fn bindgen_test_layout_cycle_event_instrumentation_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(cycle_event_instrumentation_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_cycle_event_cb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(register_cycle_event_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_cycle_event_cb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cycle_event_instrumentation_interface), - "::", - stringify!(remove_cycle_event_cb) - ) - ); -} -pub type exception_interface_t = exception_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exception_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub get_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - exc: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - pub all_exceptions: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_exception_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(exception_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exception_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_source) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(get_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_exceptions) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(exception_interface), - "::", - stringify!(all_exceptions) - ) - ); -} -#[doc = " "] -pub type instruction_trace_callback_t = ::std::option::Option< - unsafe extern "C" fn( - tracer_data: *mut lang_void, - cpu: *mut conf_object_t, - la: linear_address_t, - va: logical_address_t, - pa: physical_address_t, - opcode: byte_string_t, - ), ->; -pub type exec_trace_interface_t = exec_trace_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct exec_trace_interface { - pub register_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, - pub unregister_tracer: ::std::option::Option< - unsafe extern "C" fn( - cpu_obj: *mut conf_object_t, - tracer: instruction_trace_callback_t, - tracer_data: *mut lang_void, - ), - >, -} -#[test] -fn bindgen_test_layout_exec_trace_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(exec_trace_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(exec_trace_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_tracer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(register_tracer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_tracer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(exec_trace_interface), - "::", - stringify!(unregister_tracer) - ) - ); -} -pub type execute_interface_t = execute_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_interface { - pub run: ::std::option::Option, - pub stop: ::std::option::Option, - pub switch_in: ::std::option::Option, - pub switch_out: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(execute_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).run) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(run) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_in) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_in) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).switch_out) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(execute_interface), - "::", - stringify!(switch_out) - ) - ); -} -pub type cell_inspection_interface_t = cell_inspection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct cell_inspection_interface { - pub set_current_processor_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu_obj: *mut conf_object_t), - >, - pub set_current_step_obj: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, step_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_cell_inspection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cell_inspection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_processor_obj) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_processor_obj) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_current_step_obj) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cell_inspection_interface), - "::", - stringify!(set_current_step_obj) - ) - ); -} -pub type execute_control_interface_t = execute_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct execute_control_interface { - pub message_pending: ::std::option::Option, - pub yield_request: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_execute_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(execute_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(execute_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).message_pending) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(message_pending) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).yield_request) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(execute_control_interface), - "::", - stringify!(yield_request) - ) - ); -} -#[doc = " run in global context"] -pub const exec_mode_t_Sim_EM_Global: exec_mode_t = 0; -#[doc = " run in standalone thread"] -pub const exec_mode_t_Sim_EM_Thread: exec_mode_t = 1; -#[doc = " TODO: these constants should likely migrate to simics/simulator/callbacks.h."] -pub type exec_mode_t = ::std::os::raw::c_uint; -pub type external_connection_ctl_interface_t = external_connection_ctl_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_ctl_interface { - #[doc = " Call this with a NULL cookie to indicate non-acceptance.\nIf blocking_read is true then this connection will\nuse blocking reads, i.e. calls to read will not return until the\ncomplete buffer has been filled."] - pub accept: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - id: uint64, - cookie: *mut lang_void, - blocking_read: bool, - ), - >, - #[doc = " Return number of bytes read, -1 on error,\nor -2 if there is no data and the read would have blocked\n(only possible if non-blocking reads are used)."] - pub read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - buffer: buffer_t, - ) -> isize, - >, - #[doc = " Return number of bytes written, or -1 on error."] - pub write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - bytes: bytes_t, - ) -> isize, - >, - pub write_async: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void, bytes: bytes_t), - >, - #[doc = " Indicate if an error was detected during read/write."] - pub has_error: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bool, - >, - pub notify: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cookie: *mut lang_void, - notify_mode: notify_mode_t, - exec_mode: exec_mode_t, - active: bool, - ), - >, - pub close: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_ctl_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(external_connection_ctl_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_ctl_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_async) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(write_async) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_error) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(has_error) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(external_connection_ctl_interface), - "::", - stringify!(close) - ) - ); -} -pub type external_connection_events_interface_t = external_connection_events_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct external_connection_events_interface { - pub on_accept: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, server: *mut conf_object_t, id: uint64), - >, - pub on_input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, - pub can_write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_external_connection_events_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(external_connection_events_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_accept) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_accept) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).on_input) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(on_input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).can_write) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(external_connection_events_interface), - "::", - stringify!(can_write) - ) - ); -} -pub type tcp_connection_info_interface_t = tcp_connection_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_connection_info_interface { - pub remote_port: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> uint16, - >, - pub remote_ip: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cookie: *mut lang_void) -> bytes_t, - >, -} -#[test] -fn bindgen_test_layout_tcp_connection_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_connection_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_connection_info_interface), - "::", - stringify!(remote_ip) - ) - ); -} -pub type freerun_interface_t = freerun_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct freerun_interface { - pub enabled: ::std::option::Option bool>, - pub advance_clock: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ps_limit: int64, - steps: int64, - idle: bool, - ) -> int64, - >, - pub start_clock: ::std::option::Option, - pub stop_clock: ::std::option::Option, - pub current_itime: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_freerun_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(freerun_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(freerun_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance_clock) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(advance_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start_clock) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(start_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop_clock) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(stop_clock) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).current_itime) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(freerun_interface), - "::", - stringify!(current_itime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct monitored_attribute { - _unused: [u8; 0], -} -#[doc = "This is a collection of API calls that allows a customized connection\nbetween frontend extensions and custom target modules.\n\nThe function register_monitored_attribute should be called by an\nobject that wishes to communicate the value of an attribute to a frontend\nplug-in. The attr_obj and attr_name parameters\nindicate the attribute to communicate. The function returns a handle that will\nbe used to refer to this instance of the attribute. The function should be\ncalled before the object is configured, typically from the\nfinalize_instance method.\n\nAfter an object has registered an attribute with\nregister_monitored_attribute, the object should call the\nfunction monitored_attribute_changed with the returned\nattribute ID whenever the value of that attribute changes, including\nfrom the attribute setter."] -pub type attribute_id_t = monitored_attribute; -pub type attribute_monitor_interface_t = attribute_monitor_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct attribute_monitor_interface { - pub register_monitored_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - attr_obj: *mut conf_object_t, - attr_name: *const ::std::os::raw::c_char, - ) -> *mut attribute_id_t, - >, - pub monitored_attribute_changed: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: *mut attribute_id_t), - >, -} -#[test] -fn bindgen_test_layout_attribute_monitor_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(attribute_monitor_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).register_monitored_attribute) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(register_monitored_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).monitored_attribute_changed) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(attribute_monitor_interface), - "::", - stringify!(monitored_attribute_changed) - ) - ); -} -pub type vga_update_interface_t = vga_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_update_interface { - pub refresh: ::std::option::Option, - pub refresh_all: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vga_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vga_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_all) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_update_interface), - "::", - stringify!(refresh_all) - ) - ); -} -#[doc = " 0xII"] -pub const gfx_con_pixel_fmt_t_GFX_8BIT_INDEXED: gfx_con_pixel_fmt_t = 8; -#[doc = " 0bRRRRRGGGGGGBBBBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_565: gfx_con_pixel_fmt_t = 16; -#[doc = " 0xRRGGBB"] -pub const gfx_con_pixel_fmt_t_GFX_RGB_888: gfx_con_pixel_fmt_t = 24; -#[doc = " 0xXXRRGGBB (X=unused)"] -pub const gfx_con_pixel_fmt_t_GFX_xRGB_8888: gfx_con_pixel_fmt_t = 32; -#[doc = " \ngfx_con_pixel_fmt_t\ngfx_con_pixel_fmt_t\n\n\ngfx_con_pixel_fmt_t\n\n These constants are used when calling the\nput_block method in the gfx_con, to specify the\npixel format of the provided buffer.\n\nSpecifying GFX_8BIT_INDEXED means that the buffer uses VGA style\n8-bit per pixel indexed colors, and that the console palette, specified by\nthe set_color method, should be used.\n\nSpecifying GFX_RGB_565 means that the buffer uses 16 bits per\npixel, with format 0bRRRRRGGGGGGBBBBB (in little endian).\n\nSpecifying GFX_RGB_888 means that the buffer uses 24 bits per\npixel, with format 0xRRGGBB (in little endian).\n\nSpecifying GFX_xRGB_8888 means that the buffer uses 32 bits per\npixel, with format 0xXXRRGGBB (in little endian), where X\nis unused.\n\n"] -pub type gfx_con_pixel_fmt_t = ::std::os::raw::c_uint; -pub type gfx_con_interface_t = gfx_con_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_con_interface { - pub set_color: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - index: uint8, - r: uint8, - g: uint8, - b: uint8, - ) -> ::std::os::raw::c_int, - >, - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub put_pixel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - index: uint8, - ), - >, - pub put_pixel_rgb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - rgb: uint32, - ), - >, - pub put_block_old: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - src: *mut uint8, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: ::std::os::raw::c_int, - src_stride: ::std::os::raw::c_int, - unused: ::std::os::raw::c_int, - ), - >, - pub redraw: ::std::option::Option, - pub update_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, led_change: ::std::os::raw::c_int), - >, - pub put_pixel_col: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - r: ::std::os::raw::c_int, - g: ::std::os::raw::c_int, - b: ::std::os::raw::c_int, - ), - >, - pub put_block: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - block: bytes_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - src_fmt: gfx_con_pixel_fmt_t, - src_stride: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_con_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(gfx_con_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_con_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_color) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_color) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_rgb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_rgb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block_old) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block_old) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).redraw) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(redraw) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update_keyboard_leds) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(update_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_pixel_col) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_pixel_col) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).put_block) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_con_interface), - "::", - stringify!(put_block) - ) - ); -} -pub type hap_listen_interface_t = hap_listen_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct hap_listen_interface { - pub occurred: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - origin: *mut conf_object_t, - hap: hap_type_t, - value: int64, - ap: *mut __va_list_tag, - always: bool, - ), - >, -} -#[test] -fn bindgen_test_layout_hap_listen_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(hap_listen_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(hap_listen_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).occurred) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(hap_listen_interface), - "::", - stringify!(occurred) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct image_spage { - _unused: [u8; 0], -} -#[doc = " "] -pub type image_spage_t = image_spage; -pub type image_interface_t = image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_interface { - pub read: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - to_buf: *mut ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub write: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - from_buf: *const ::std::os::raw::c_void, - start: uint64, - length: usize, - ), - >, - pub for_all_spages: ::std::option::Option< - unsafe extern "C" fn( - img: *mut conf_object_t, - f: ::std::option::Option< - unsafe extern "C" fn( - p: *mut image_spage_t, - ofs: uint64, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - arg: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub set_persistent: ::std::option::Option, - pub save_to_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - start: uint64, - length: uint64, - ), - >, - pub save_diff: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, file: *const ::std::os::raw::c_char), - >, - pub clear_range: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64), - >, - pub fill: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, start: uint64, length: uint64, value: uint8), - >, - pub size: ::std::option::Option uint64>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, b: bytes_t), - >, - pub get: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ofs: uint64, size: usize) -> bytes_t, - >, - pub flush_writable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).for_all_spages) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(for_all_spages) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_persistent) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set_persistent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_to_file) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_to_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_diff) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(save_diff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_range) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(clear_range) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fill) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(fill) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush_writable) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(image_interface), - "::", - stringify!(flush_writable) - ) - ); -} -pub type linear_image_interface_t = linear_image_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linear_image_interface { - pub get_base: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, retsize: *mut usize) -> *mut uint8, - >, - pub set_base: - ::std::option::Option, - pub prepare_range: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - type_: read_or_write_t, - offs: usize, - size: usize, - ), - >, -} -#[test] -fn bindgen_test_layout_linear_image_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(linear_image_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(linear_image_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(get_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(set_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_range) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(linear_image_interface), - "::", - stringify!(prepare_range) - ) - ); -} -pub type image_snoop_interface_t = image_snoop_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct image_snoop_interface { - pub page_modified: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - img: *mut conf_object_t, - offset: uint64, - page_data: *mut uint8, - spage: *mut image_spage_t, - ), - >, -} -#[test] -fn bindgen_test_layout_image_snoop_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(image_snoop_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(image_snoop_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).page_modified) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(image_snoop_interface), - "::", - stringify!(page_modified) - ) - ); -} -pub type pool_protect_interface_t = pool_protect_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct pool_protect_interface { - pub create_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - image_obj: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - pub protect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_pool_protect_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(pool_protect_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pool_protect_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create_group) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(create_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).protect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(pool_protect_interface), - "::", - stringify!(protect) - ) - ); -} -#[doc = " No instruction fetch sent to memory hierarchy"] -pub const instruction_fetch_mode_t_Instruction_Fetch_None: instruction_fetch_mode_t = 0; -#[doc = " Memory hierarchy gets fetch for each cache line access"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Cache_Access_Trace: instruction_fetch_mode_t = - 1; -#[doc = " Memory hierarchy gets fetch for each instruction fetch. Only\nx86/x86-64"] -pub const instruction_fetch_mode_t_Instruction_Fetch_Trace: instruction_fetch_mode_t = 2; -#[doc = "\n\nThe instruction_fetch interface is implemented by\nprocessors. The interface controls how instruction fetches should\nbe modeled.\n\nThe get_mode and set_mode functions get and\nset the instruction fetch mode. There are three available\nmodes. All modes are not supported by all processor types. The\ninstruction_fetch_none mode is the least accurate but the\nfastest mode. The other modes are more accurate but slower.\n\nThe get_line_size and set_line_size functions\nget and set the fetch size on each instruction fetch. This is often\nrelated to cache line size or similar. The line size must be power\nof 2.\n\n\n\n\n\n\n\n\n\n\n
get_modeCell Context
set_modeGlobal Context
get_line_sizeCell Context
set_line_sizeGlobal Context
\n
"] -pub type instruction_fetch_mode_t = ::std::os::raw::c_uint; -pub type instruction_fetch_interface_t = instruction_fetch_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instruction_fetch_interface { - pub get_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> instruction_fetch_mode_t, - >, - pub set_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, mode: instruction_fetch_mode_t), - >, - pub get_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub set_line_size: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, size: ::std::os::raw::c_int), - >, -} -#[test] -fn bindgen_test_layout_instruction_fetch_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instruction_fetch_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mode) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_line_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(get_line_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_line_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instruction_fetch_interface), - "::", - stringify!(set_line_size) - ) - ); -} -pub const ireg_info_t_Sim_RegInfo_Catchable: ireg_info_t = 0; -#[doc = " used in register_info() interface function */\n/* ireg_info_t"] -pub type ireg_info_t = ::std::os::raw::c_uint; -pub type int_register_interface_t = int_register_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct int_register_interface { - pub get_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub get_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> *const ::std::os::raw::c_char, - >, - pub read: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int) -> uint64, - >, - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_int, val: uint64), - >, - pub all_registers: - ::std::option::Option attr_value_t>, - pub register_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg: ::std::os::raw::c_int, - info: ireg_info_t, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_int_register_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(int_register_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(int_register_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_number) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(get_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).all_registers) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(all_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(int_register_interface), - "::", - stringify!(register_info) - ) - ); -} -pub type jit_control_interface_t = jit_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct jit_control_interface { - pub set_compile_enable: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_jit_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(jit_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(jit_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_compile_enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(jit_control_interface), - "::", - stringify!(set_compile_enable) - ) - ); -} -pub type keyboard_interface_t = keyboard_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_interface { - pub keyboard_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key_up: ::std::os::raw::c_int, - key: uint8, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_keyboard_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_interface), - "::", - stringify!(keyboard_event) - ) - ); -} -pub type keyboard_console_interface_t = keyboard_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct keyboard_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_keyboard_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(keyboard_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(keyboard_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type kbd_console_interface_t = kbd_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct kbd_console_interface { - pub keyboard_ready: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_kbd_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(kbd_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kbd_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).keyboard_ready) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kbd_console_interface), - "::", - stringify!(keyboard_ready) - ) - ); -} -pub type mouse_interface_t = mouse_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mouse_interface { - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - xmicro: ::std::os::raw::c_int, - ymicro: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_mouse_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(mouse_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mouse_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mouse_interface), - "::", - stringify!(mouse_event) - ) - ); -} -pub type dummy_memory_page_interface_t = dummy_memory_page_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct dummy_memory_page_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_dummy_memory_page_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(dummy_memory_page_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(dummy_memory_page_interface), - "::", - stringify!(dummy) - ) - ); -} -pub type memory_profiler_interface_t = memory_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct memory_profiler_interface { - pub get: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - ) -> *mut conf_object_t, - >, - pub set: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - access: read_or_write_t, - prof: *mut conf_object_t, - ) -> bool, - >, - pub get_granularity_log2: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_memory_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(memory_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(set) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_granularity_log2) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(memory_profiler_interface), - "::", - stringify!(get_granularity_log2) - ) - ); -} -pub type mmc_interface_t = mmc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct mmc_interface { - pub send_command: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cmd: uint8, - args: uint32, - response: buffer_t, - ) -> ::std::os::raw::c_int, - >, - pub read_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: buffer_t) -> ::std::os::raw::c_int, - >, - pub write_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_mmc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(mmc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(mmc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).send_command) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(send_command) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(read_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(mmc_interface), - "::", - stringify!(write_data) - ) - ); -} -pub type packet_interface_t = packet_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct packet_interface { - pub transfer: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_packet_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(packet_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(packet_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).transfer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(packet_interface), - "::", - stringify!(transfer) - ) - ); -} -pub type processor_info_interface_t = processor_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(processor_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_info_v2_interface_t = processor_info_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_info_v2_interface { - pub disassemble: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: generic_address_t, - instruction_data: attr_value_t, - sub_operation: ::std::os::raw::c_int, - ) -> tuple_int_string_t, - >, - pub set_program_counter: - ::std::option::Option, - pub get_program_counter: - ::std::option::Option logical_address_t>, - pub logical_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - address: logical_address_t, - access_type: access_t, - ) -> physical_block_t, - >, - pub get_processor_mode: - ::std::option::Option processor_mode_t>, - pub enable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disable_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_enabled: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_endian: - ::std::option::Option cpu_endian_t>, - pub get_physical_memory: - ::std::option::Option *mut conf_object_t>, - pub get_logical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub get_physical_address_width: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub architecture: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_processor_info_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_info_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disassemble) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disassemble) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_program_counter) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(set_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_program_counter) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_program_counter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_to_physical) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(logical_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processor_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_processor_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_processor) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(enable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_processor) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(disable_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_enabled) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_endian) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_memory) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_logical_address_width) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_logical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_physical_address_width) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(get_physical_address_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).architecture) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(processor_info_v2_interface), - "::", - stringify!(architecture) - ) - ); -} -pub type processor_endian_interface_t = processor_endian_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_endian_interface { - pub get_instruction_endian: - ::std::option::Option cpu_endian_t>, - pub get_data_endian: - ::std::option::Option cpu_endian_t>, -} -#[test] -fn bindgen_test_layout_processor_endian_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(processor_endian_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_endian_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_instruction_endian) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_instruction_endian) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_data_endian) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_endian_interface), - "::", - stringify!(get_data_endian) - ) - ); -} -pub type processor_cli_interface_t = processor_cli_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_cli_interface { - pub get_disassembly: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - addr_prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - print_cpu: bool, - mnemonic: *const ::std::os::raw::c_char, - ) -> tuple_int_string_t, - >, - pub get_pregs: ::std::option::Option< - unsafe extern "C" fn(cpu: *mut conf_object_t, all: bool) -> *mut ::std::os::raw::c_char, - >, - pub get_diff_regs: - ::std::option::Option attr_value_t>, - pub get_pending_exception_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub get_address_prefix: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, - pub translate_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - prefix: *const ::std::os::raw::c_char, - address: generic_address_t, - ) -> physical_block_t, - >, -} -#[test] -fn bindgen_test_layout_processor_cli_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(processor_cli_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_cli_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disassembly) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_disassembly) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_pregs) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pregs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_diff_regs) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_diff_regs) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_pending_exception_string) as usize - ptr as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_pending_exception_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_address_prefix) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(get_address_prefix) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).translate_to_physical) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(processor_cli_interface), - "::", - stringify!(translate_to_physical) - ) - ); -} -#[doc = "\n\nThe opcode_info interface is implemented by\nprocessors that need to communicate information about the encoding\nof instructions to the GUI.\n\nThe get_opcode_length function returns information about\ninstruction encoding in the current operating mode of the\nprocessor. The min_alignment field indicates the\nsmallest allowed alignment of instructions, typically 4 for regular\nRISC architectures. The max_length field specifies the\nmaximum instruction length in bytes. The avg_length is\nan approximation of the average instruction size.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_length_info_t { - pub min_alignment: ::std::os::raw::c_int, - pub max_length: ::std::os::raw::c_int, - pub avg_length: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_opcode_length_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(opcode_length_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).min_alignment) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(min_alignment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(max_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).avg_length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(opcode_length_info_t), - "::", - stringify!(avg_length) - ) - ); -} -pub type opcode_info_interface_t = opcode_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct opcode_info_interface { - pub get_opcode_length_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> opcode_length_info_t, - >, -} -#[test] -fn bindgen_test_layout_opcode_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(opcode_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(opcode_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_opcode_length_info) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(opcode_info_interface), - "::", - stringify!(get_opcode_length_info) - ) - ); -} -pub type processor_gui_interface_t = processor_gui_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct processor_gui_interface { - pub dummy: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_processor_gui_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(processor_gui_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(processor_gui_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dummy) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(processor_gui_interface), - "::", - stringify!(dummy) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct ram_callback_entry { - _unused: [u8; 0], -} -pub type ram_cb_handle_t = ram_callback_entry; -#[doc = " \naccess_filter_cb_t\naccess_filter_cb_t\n\naccess_filter_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_direct_memory_filter_cb method in the\nram_access_subscribe_interface_t interfaces to get a callback\nwhen a direct page is cached in the CPU. The obj is the\nobject that registered the callback, and the cpu is the\nprocessor which cached the direct page. The target object of the direct page\nlookup is passed in the target argument, typically a ram\nobject. The offset, size and\naccess are the ram offset, the size of the cached page,\nand the access type, respectively. The user_data is the user\ndata for the callback. To allow caching of a page, the corresponding bits in\nan access_t should be returned. If 0 is returned the page will\nbe not be cached.\n\n\n\n\n\n"] -pub type access_filter_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - initiator: *mut conf_object_t, - offset: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - user_data: *mut lang_void, - ) -> access_t, ->; -#[doc = " \nram_access_cb_t\nram_access_cb_t\n\nram_access_cb_t\n\n\n\n\nInstrumentation callback function registered through the\nregister_access_before_cb or register_access_after_cb\nmethods in the ram_access_subscribe_interface_t interface to\nget a callback when a ram/rom object is accessed. obj is the\nobject that registered the callback, and the ram is the\nram/rom object that is accessed. The ram_offset is the offset\nin the ram/rom object where the transaction hits. The t\nargument is a pointer to the transaction_t that is\nperformed. See the access primitives of the transaction_t type\nto see how to examine and modify the transaction. Depending on if the\nregister function is of before or after type, the transaction will be, or\nalready has been completed, at the time of this callback. This places\nrestrictions on what can be done with the transaction.\n\n\n\n\n"] -pub type ram_access_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ram: *mut conf_object_t, - ram_offset: uint64, - t: *mut transaction_t, - user_data: *mut lang_void, - ), ->; -pub type ram_access_subscribe_interface_t = ram_access_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ram_access_subscribe_interface { - pub remove_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub enable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub disable_callback: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: *mut ram_cb_handle_t), - >, - pub register_access_before_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_after_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - conn_obj: *mut conf_object_t, - cb: ram_access_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, - pub register_access_filter_cb: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - connection: *mut conf_object_t, - cb: access_filter_cb_t, - data: *mut lang_void, - ) -> *mut ram_cb_handle_t, - >, -} -#[test] -fn bindgen_test_layout_ram_access_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ram_access_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_callback) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(remove_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable_callback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(enable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable_callback) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(disable_callback) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_before_cb) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_before_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_after_cb) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_after_cb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_access_filter_cb) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ram_access_subscribe_interface), - "::", - stringify!(register_access_filter_cb) - ) - ); -} -pub type register_view_read_only_interface_t = register_view_read_only_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_read_only_interface { - pub is_read_only: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> bool, - >, -} -#[test] -fn bindgen_test_layout_register_view_read_only_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(register_view_read_only_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(register_view_read_only_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_read_only) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_read_only_interface), - "::", - stringify!(is_read_only) - ) - ); -} -pub type register_view_interface_t = register_view_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_view_interface { - pub description: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub big_endian_bitorder: - ::std::option::Option bool>, - pub number_of_registers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, - #[doc = " Returns the static information about a register in the list\n[NAME, DESC, SIZE, OFFSET, BITFIELDS, BIG_ENDIAN_BYTE_ORDER].\nAll but the two last\nelement in the list are required and the client should\ntolerate if more than 6 elements are presented in the list.\nNAME must be a valid identifier. DESC is a short description\nof the register. SIZE is the number of bytes of the register,\ncould only be 1, 2, 4, or 8. OFFSET is the offset into the bank\nand can be Nil denoting non-memory-mapped registers.\nBITFIELDS is optional and if present, is a list where each\nelement itself being a list of [NAME, DESC, LSB, MSB] where\nNAME and DESC is the identifier and description of the field\nand LSB and MSB are the least significant and the most significant\nbit in little-endian bitorder. MSB is optional and if omitted,\nis assumed to be the same as LSB, i.e., the bitfield specifies\na single bit.\nBIG_ENDIAN_BYTE_ORDER is an optional boolean value, assumed to be\nFalse if omitted. It controls the byte order of the register's\nmemory-mapped representation; the byte at OFFSET is the\nmost significant byte if BIG_ENDIAN_BYTE_ORDER is True, and\nthe least significant byte otherwise."] - pub register_info: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> attr_value_t, - >, - #[doc = " Get the current value of a register, must be side-effect free."] - pub get_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint) -> uint64, - >, - #[doc = " Set the current value of a register, must be side-effect free except\nfrom updating the value."] - pub set_register_value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, reg: ::std::os::raw::c_uint, val: uint64), - >, -} -#[test] -fn bindgen_test_layout_register_view_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(register_view_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_view_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).big_endian_bitorder) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(big_endian_bitorder) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).number_of_registers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(number_of_registers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(register_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_value) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(get_register_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_register_value) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(register_view_interface), - "::", - stringify!(set_register_value) - ) - ); -} -pub const state_save_kind_t_Sim_State_Default: state_save_kind_t = 1; -#[doc = " not actually used - kept for source compatibility"] -pub type state_save_kind_t = ::std::os::raw::c_uint; -pub type save_state_interface_t = save_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct save_state_interface { - #[doc = " return the CVS version of the object"] - pub get_version: - ::std::option::Option ::std::os::raw::c_int>, - #[doc = " return the size needed for the current state"] - pub get_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " return the alignment needed for the structure"] - pub get_align: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " save the state in dest. dest must contains enough space\n(get_size with the same parameter should return the size needed)"] - pub save_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " load the state from src"] - pub load_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same"] - pub compare_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - #[doc = " compare the state and return 0 if the same. print out\nall/the difference according to flags"] - pub print_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " host-endian functions (eventually faster, not mandatory)"] - pub save_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - dest: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub load_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub compare_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - ) -> ::std::os::raw::c_int, - >, - pub print_state_he: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object, - stype: state_save_kind_t, - src: *mut ::std::os::raw::c_void, - symnames: ::std::os::raw::c_int, - diff: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_save_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(save_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(save_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_version) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_align) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(get_align) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_state_he) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(save_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).load_state_he) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(load_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compare_state_he) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(compare_state_he) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).print_state_he) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(save_state_interface), - "::", - stringify!(print_state_he) - ) - ); -} -pub const sim_key_t_SK_ILLEGAL: sim_key_t = 0; -pub const sim_key_t_SK_ESC: sim_key_t = 1; -pub const sim_key_t_SK_F1: sim_key_t = 2; -pub const sim_key_t_SK_F2: sim_key_t = 3; -pub const sim_key_t_SK_F3: sim_key_t = 4; -pub const sim_key_t_SK_F4: sim_key_t = 5; -pub const sim_key_t_SK_F5: sim_key_t = 6; -pub const sim_key_t_SK_F6: sim_key_t = 7; -pub const sim_key_t_SK_F7: sim_key_t = 8; -pub const sim_key_t_SK_F8: sim_key_t = 9; -pub const sim_key_t_SK_F9: sim_key_t = 10; -pub const sim_key_t_SK_F10: sim_key_t = 11; -pub const sim_key_t_SK_F11: sim_key_t = 12; -pub const sim_key_t_SK_F12: sim_key_t = 13; -pub const sim_key_t_SK_PRNT_SCRN: sim_key_t = 14; -pub const sim_key_t_SK_SCROLL_LOCK: sim_key_t = 15; -pub const sim_key_t_SK_NUM_LOCK: sim_key_t = 16; -pub const sim_key_t_SK_CAPS_LOCK: sim_key_t = 17; -pub const sim_key_t_SK_0: sim_key_t = 18; -pub const sim_key_t_SK_1: sim_key_t = 19; -pub const sim_key_t_SK_2: sim_key_t = 20; -pub const sim_key_t_SK_3: sim_key_t = 21; -pub const sim_key_t_SK_4: sim_key_t = 22; -pub const sim_key_t_SK_5: sim_key_t = 23; -pub const sim_key_t_SK_6: sim_key_t = 24; -pub const sim_key_t_SK_7: sim_key_t = 25; -pub const sim_key_t_SK_8: sim_key_t = 26; -pub const sim_key_t_SK_9: sim_key_t = 27; -pub const sim_key_t_SK_A: sim_key_t = 28; -pub const sim_key_t_SK_B: sim_key_t = 29; -pub const sim_key_t_SK_C: sim_key_t = 30; -pub const sim_key_t_SK_D: sim_key_t = 31; -pub const sim_key_t_SK_E: sim_key_t = 32; -pub const sim_key_t_SK_F: sim_key_t = 33; -pub const sim_key_t_SK_G: sim_key_t = 34; -pub const sim_key_t_SK_H: sim_key_t = 35; -pub const sim_key_t_SK_I: sim_key_t = 36; -pub const sim_key_t_SK_J: sim_key_t = 37; -pub const sim_key_t_SK_K: sim_key_t = 38; -pub const sim_key_t_SK_L: sim_key_t = 39; -pub const sim_key_t_SK_M: sim_key_t = 40; -pub const sim_key_t_SK_N: sim_key_t = 41; -pub const sim_key_t_SK_O: sim_key_t = 42; -pub const sim_key_t_SK_P: sim_key_t = 43; -pub const sim_key_t_SK_Q: sim_key_t = 44; -pub const sim_key_t_SK_R: sim_key_t = 45; -pub const sim_key_t_SK_S: sim_key_t = 46; -pub const sim_key_t_SK_T: sim_key_t = 47; -pub const sim_key_t_SK_U: sim_key_t = 48; -pub const sim_key_t_SK_V: sim_key_t = 49; -pub const sim_key_t_SK_W: sim_key_t = 50; -pub const sim_key_t_SK_X: sim_key_t = 51; -pub const sim_key_t_SK_Y: sim_key_t = 52; -pub const sim_key_t_SK_Z: sim_key_t = 53; -pub const sim_key_t_SK_APOSTROPHE: sim_key_t = 54; -pub const sim_key_t_SK_COMMA: sim_key_t = 55; -pub const sim_key_t_SK_PERIOD: sim_key_t = 56; -pub const sim_key_t_SK_SEMICOLON: sim_key_t = 57; -pub const sim_key_t_SK_EQUAL: sim_key_t = 58; -pub const sim_key_t_SK_SLASH: sim_key_t = 59; -pub const sim_key_t_SK_BACKSLASH: sim_key_t = 60; -pub const sim_key_t_SK_SPACE: sim_key_t = 61; -pub const sim_key_t_SK_LEFT_BRACKET: sim_key_t = 62; -pub const sim_key_t_SK_RIGHT_BRACKET: sim_key_t = 63; -pub const sim_key_t_SK_MINUS: sim_key_t = 64; -pub const sim_key_t_SK_GRAVE: sim_key_t = 65; -pub const sim_key_t_SK_TAB: sim_key_t = 66; -pub const sim_key_t_SK_ENTER: sim_key_t = 67; -pub const sim_key_t_SK_BACKSPACE: sim_key_t = 68; -pub const sim_key_t_SK_CTRL_L: sim_key_t = 69; -pub const sim_key_t_SK_CTRL_R: sim_key_t = 70; -pub const sim_key_t_SK_SHIFT_L: sim_key_t = 71; -pub const sim_key_t_SK_SHIFT_R: sim_key_t = 72; -pub const sim_key_t_SK_ALT_L: sim_key_t = 73; -pub const sim_key_t_SK_ALT_R: sim_key_t = 74; -pub const sim_key_t_SK_GR_DIVIDE: sim_key_t = 75; -pub const sim_key_t_SK_GR_MULTIPLY: sim_key_t = 76; -pub const sim_key_t_SK_GR_MINUS: sim_key_t = 77; -pub const sim_key_t_SK_GR_PLUS: sim_key_t = 78; -pub const sim_key_t_SK_GR_ENTER: sim_key_t = 79; -pub const sim_key_t_SK_GR_INSERT: sim_key_t = 80; -pub const sim_key_t_SK_GR_HOME: sim_key_t = 81; -pub const sim_key_t_SK_GR_PG_UP: sim_key_t = 82; -pub const sim_key_t_SK_GR_DELETE: sim_key_t = 83; -pub const sim_key_t_SK_GR_END: sim_key_t = 84; -pub const sim_key_t_SK_GR_PG_DOWN: sim_key_t = 85; -pub const sim_key_t_SK_GR_UP: sim_key_t = 86; -pub const sim_key_t_SK_GR_DOWN: sim_key_t = 87; -pub const sim_key_t_SK_GR_LEFT: sim_key_t = 88; -pub const sim_key_t_SK_GR_RIGHT: sim_key_t = 89; -pub const sim_key_t_SK_KP_HOME: sim_key_t = 90; -pub const sim_key_t_SK_KP_UP: sim_key_t = 91; -pub const sim_key_t_SK_KP_PG_UP: sim_key_t = 92; -pub const sim_key_t_SK_KP_LEFT: sim_key_t = 93; -pub const sim_key_t_SK_KP_CENTER: sim_key_t = 94; -pub const sim_key_t_SK_KP_RIGHT: sim_key_t = 95; -pub const sim_key_t_SK_KP_END: sim_key_t = 96; -pub const sim_key_t_SK_KP_DOWN: sim_key_t = 97; -pub const sim_key_t_SK_KP_PG_DOWN: sim_key_t = 98; -pub const sim_key_t_SK_KP_INSERT: sim_key_t = 99; -pub const sim_key_t_SK_KP_DELETE: sim_key_t = 100; -pub const sim_key_t_SK_PAUSE: sim_key_t = 101; -pub const sim_key_t_SK_LEFT_WIN: sim_key_t = 102; -pub const sim_key_t_SK_RIGHT_WIN: sim_key_t = 103; -pub const sim_key_t_SK_LIST_BIT: sim_key_t = 104; -pub const sim_key_t_SK_KEYB: sim_key_t = 105; -pub const sim_key_t_SK_BREAK: sim_key_t = 106; -pub const sim_key_t_SK_SYSREQ: sim_key_t = 107; -pub const sim_key_t_SK_SUN_STOP: sim_key_t = 108; -pub const sim_key_t_SK_SUN_AGAIN: sim_key_t = 109; -pub const sim_key_t_SK_SUN_PROPS: sim_key_t = 110; -pub const sim_key_t_SK_SUN_UNDO: sim_key_t = 111; -pub const sim_key_t_SK_SUN_FRONT: sim_key_t = 112; -pub const sim_key_t_SK_SUN_COPY: sim_key_t = 113; -pub const sim_key_t_SK_SUN_OPEN: sim_key_t = 114; -pub const sim_key_t_SK_SUN_PASTE: sim_key_t = 115; -pub const sim_key_t_SK_SUN_FIND: sim_key_t = 116; -pub const sim_key_t_SK_SUN_CUT: sim_key_t = 117; -pub const sim_key_t_SK_SUN_HELP: sim_key_t = 118; -pub const sim_key_t_SK_SUN_COMPOSE: sim_key_t = 119; -pub const sim_key_t_SK_SUN_META_L: sim_key_t = 120; -pub const sim_key_t_SK_SUN_META_R: sim_key_t = 121; -pub const sim_key_t_SK_SUN_POWER: sim_key_t = 122; -pub const sim_key_t_SK_SUN_AUDIO_D: sim_key_t = 123; -pub const sim_key_t_SK_SUN_AUDIO_U: sim_key_t = 124; -pub const sim_key_t_SK_SUN_AUDIO_M: sim_key_t = 125; -pub const sim_key_t_SK_SUN_EMPTY: sim_key_t = 126; -pub type sim_key_t = ::std::os::raw::c_uint; -pub type simulator_cache_interface_t = simulator_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct simulator_cache_interface { - pub flush: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_simulator_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(simulator_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flush) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(simulator_cache_interface), - "::", - stringify!(flush) - ) - ); -} -pub type uint64_state_interface_t = uint64_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct uint64_state_interface { - pub set: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_uint64_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(uint64_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(uint64_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(uint64_state_interface), - "::", - stringify!(set) - ) - ); -} -pub type step_interface_t = step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_interface { - pub get_step_count: - ::std::option::Option pc_step_t>, - pub post_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - steps: pc_step_t, - user_data: *mut lang_void, - ), - >, - pub cancel_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ), - >, - pub find_next_step: ::std::option::Option< - unsafe extern "C" fn( - queue: *mut conf_object_t, - evclass: *mut event_class_t, - obj: *mut conf_object_t, - pred: ::std::option::Option< - unsafe extern "C" fn( - data: *mut lang_void, - match_data: *mut lang_void, - ) -> ::std::os::raw::c_int, - >, - match_data: *mut lang_void, - ) -> pc_step_t, - >, - pub events: - ::std::option::Option attr_value_t>, - pub advance: ::std::option::Option< - unsafe extern "C" fn(queue: *mut conf_object_t, steps: pc_step_t) -> pc_step_t, - >, -} -#[test] -fn bindgen_test_layout_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_step_count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(get_step_count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).post_step) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(post_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_step) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(cancel_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).find_next_step) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(find_next_step) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).advance) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_interface), - "::", - stringify!(advance) - ) - ); -} -#[doc = "\n\nThe step_cycle_ratio interface is implemented by\nprocessors that support a changeable ratio between steps and\ncycles. The set-step-rate command uses this interface to\nset the ratio between steps and cycles.\n\nThe set_ratio sets the ratio between steps and\ncycles. Note that the introduction of stall cycles can\nskew the ratio. The get_ratio simply returns the current\nratio.\n\nThe cycles and step arguments must be in the range\n[1..128] and cycles must be a power of two. Implementers of this\ninterface may choose to ignore other values of cycles and\nstep and may log an error.\n\n\n\n\nCell Context for all methods.\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_t { - pub steps: uint32, - pub cycles: uint32, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cycles) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_t), - "::", - stringify!(cycles) - ) - ); -} -pub type step_cycle_ratio_interface_t = step_cycle_ratio_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_cycle_ratio_interface { - pub get_ratio: - ::std::option::Option step_cycle_ratio_t>, - pub set_ratio: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, steps: uint32, cycles: uint32), - >, -} -#[test] -fn bindgen_test_layout_step_cycle_ratio_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_cycle_ratio_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ratio) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(get_ratio) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ratio) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_cycle_ratio_interface), - "::", - stringify!(set_ratio) - ) - ); -} -pub type stall_interface_t = stall_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct stall_interface { - pub get_stall_cycles: - ::std::option::Option cycles_t>, - pub set_stall_cycles: - ::std::option::Option, - pub get_total_stall_cycles: - ::std::option::Option cycles_t>, -} -#[test] -fn bindgen_test_layout_stall_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(stall_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stall_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_stall_cycles) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_stall_cycles) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(set_stall_cycles) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_total_stall_cycles) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stall_interface), - "::", - stringify!(get_total_stall_cycles) - ) - ); -} -pub type step_info_interface_t = step_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct step_info_interface { - pub get_halt_steps: - ::std::option::Option pc_step_t>, - pub set_halt_steps: - ::std::option::Option, - pub get_ffwd_steps: - ::std::option::Option pc_step_t>, - pub set_ffwd_steps: - ::std::option::Option, - pub get_ma_steps: - ::std::option::Option pc_step_t>, - pub set_ma_steps: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_step_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(step_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(step_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_halt_steps) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_halt_steps) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_halt_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ffwd_steps) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ffwd_steps) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ffwd_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_ma_steps) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(get_ma_steps) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ma_steps) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(step_info_interface), - "::", - stringify!(set_ma_steps) - ) - ); -} -pub type temporal_state_interface_t = temporal_state_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct temporal_state_interface { - pub save: - ::std::option::Option *mut lang_void>, - pub merge: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, prev: *mut lang_void, killed: *mut lang_void), - >, - pub prepare_restore: ::std::option::Option, - pub finish_restore: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_temporal_state_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(temporal_state_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(temporal_state_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).merge) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(merge) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prepare_restore) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(prepare_restore) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish_restore) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(temporal_state_interface), - "::", - stringify!(finish_restore) - ) - ); -} -pub type timing_model_interface_t = timing_model_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct timing_model_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_timing_model_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(timing_model_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timing_model_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timing_model_interface), - "::", - stringify!(operate) - ) - ); -} -pub type snoop_memory_interface_t = snoop_memory_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct snoop_memory_interface { - pub operate: ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, - >, -} -#[test] -fn bindgen_test_layout_snoop_memory_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(snoop_memory_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).operate) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(snoop_memory_interface), - "::", - stringify!(operate) - ) - ); -} -#[doc = " ADD INTERFACE timing_model_interface\n ADD INTERFACE snoop_memory_interface"] -pub type operate_func_t = ::std::option::Option< - unsafe extern "C" fn( - mem_hier: *mut conf_object_t, - space: *mut conf_object_t, - map_list: *mut map_list_t, - mem_op: *mut generic_transaction_t, - ) -> cycles_t, ->; -pub type transaction_interface_t = transaction_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_interface { - pub issue: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - t: *mut transaction_t, - addr: uint64, - ) -> exception_type_t, - >, -} -#[test] -fn bindgen_test_layout_transaction_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(transaction_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(transaction_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).issue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(transaction_interface), - "::", - stringify!(issue) - ) - ); -} -pub type vga_text_interface_t = vga_text_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_interface { - pub add_string_notification: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - substring: *mut ::std::os::raw::c_char, - sample_interval: f64, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_vga_text_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_string_notification) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_interface), - "::", - stringify!(add_string_notification) - ) - ); -} -pub type vga_text_info_interface_t = vga_text_info_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_info_interface { - pub text_mode: ::std::option::Option bool>, - pub font_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: *mut ::std::os::raw::c_int, - height: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub screen_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - columns: *mut ::std::os::raw::c_int, - rows: *mut ::std::os::raw::c_int, - ) -> bool, - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - text: *mut uint8, - line_lengths: *mut uint8, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_vga_text_info_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_info_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_size) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(font_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).screen_size) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(screen_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vga_text_info_interface), - "::", - stringify!(text) - ) - ); -} -pub type vga_text_update_interface_t = vga_text_update_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vga_text_update_interface { - pub write: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, value: ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_vga_text_update_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vga_text_update_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vga_text_update_interface), - "::", - stringify!(write) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_breakpoint { - pub id: ::std::os::raw::c_int, - pub enabled: ::std::os::raw::c_int, - pub format: ::std::os::raw::c_int, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, - pub data: *mut uint8, - pub next: *mut gfx_breakpoint, - pub prev: *mut gfx_breakpoint, -} -#[test] -fn bindgen_test_layout_gfx_breakpoint() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_breakpoint)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enabled) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(maxy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(next) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).prev) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_breakpoint), - "::", - stringify!(prev) - ) - ); -} -impl Default for gfx_breakpoint { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_breakpoint_t = gfx_breakpoint; -pub type video_interface_t = video_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct video_interface { - pub get_breakpoint_data: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - w: ::std::os::raw::c_int, - h: ::std::os::raw::c_int, - format: *mut uint32, - bytes: *mut uint32, - ) -> *mut ::std::os::raw::c_char, - >, - pub check_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - breakpts: *mut gfx_breakpoint, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_video_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(video_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(video_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoint_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(get_breakpoint_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(video_interface), - "::", - stringify!(check_breakpoint) - ) - ); -} -pub type address_profiler_interface_t = address_profiler_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct address_profiler_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - stop: generic_address_t, - ) -> *mut addr_prof_iter_t, - >, - pub sum: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub max: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - start: generic_address_t, - end: generic_address_t, - ) -> uint64, - >, - pub granularity_log2: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_uint, - >, - pub address_bits: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub physical_addresses: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_int, - >, - pub description: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - view: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char, - >, - pub num_views: ::std::option::Option< - unsafe extern "C" fn(prof_obj: *mut conf_object_t) -> ::std::os::raw::c_uint, - >, -} -#[test] -fn bindgen_test_layout_address_profiler_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(address_profiler_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(address_profiler_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(iter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sum) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(max) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).granularity_log2) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(granularity_log2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_bits) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(address_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_addresses) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(physical_addresses) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).description) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(description) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_views) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(address_profiler_interface), - "::", - stringify!(num_views) - ) - ); -} -pub type branch_arc_interface_t = branch_arc_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct branch_arc_interface { - pub iter: ::std::option::Option< - unsafe extern "C" fn( - prof_obj: *mut conf_object_t, - start: generic_address_t, - stop: generic_address_t, - dir: branch_recorder_direction_t, - ) -> *mut branch_arc_iter_t, - >, -} -#[test] -fn bindgen_test_layout_branch_arc_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(branch_arc_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(branch_arc_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iter) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(branch_arc_interface), - "::", - stringify!(iter) - ) - ); -} -pub type breakpoint_registration_interface_t = breakpoint_registration_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_registration_interface { - pub register_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - delete_breakpoint: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64), - >, - delete_data: cbdata_register_t, - get_properties: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64) -> attr_value_t, - >, - get_properties_data: cbdata_register_t, - set_enabled: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, enabled: bool), - >, - set_enabled_data: cbdata_register_t, - set_temporary: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, temporary: bool), - >, - set_temporary_data: cbdata_register_t, - set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, id: uint64, ignore_count: uint64), - >, - set_ignore_count_data: cbdata_register_t, - ) -> uint64, - >, - pub deleted: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_breakpoint_registration_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(breakpoint_registration_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_registration_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(register_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deleted) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_registration_interface), - "::", - stringify!(deleted) - ) - ); -} -pub type breakpoint_type_interface_t = breakpoint_type_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_interface { - #[doc = " Returns false if type is already registered."] - pub register_type: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - provider: *mut conf_object_t, - args: attr_value_t, - cls: *const ::std::os::raw::c_char, - iface: *const ::std::os::raw::c_char, - docs: attr_value_t, - object_required: bool, - temporary_default: bool, - recursive: bool, - ) -> bool, - >, - #[doc = " Notify manager that breakpoint has triggered, given ID returned by\nadd_bp. Returns true if simulation was stopped or otherwise the\nbreakpoint action happened. Optionally provide trigger object and\nmessage, used if the simulation is stopped."] - pub trigger: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - trigger: *mut conf_object_t, - msg: *const ::std::os::raw::c_char, - ) -> bool, - >, - #[doc = " Return provider ID from breakpoint manager ID."] - pub get_break_id: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, bm_id: uint64) -> uint64, - >, - pub get_manager_id: ::std::option::Option< - unsafe extern "C" fn( - mgr: *mut conf_object_t, - provider: *mut conf_object_t, - bp_id: uint64, - ) -> uint64, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_type_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_type) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(register_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trigger) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(trigger) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_break_id) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_break_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_manager_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_interface), - "::", - stringify!(get_manager_id) - ) - ); -} -pub const sim_bp_type_t_Breakpoint_Type_Default: sim_bp_type_t = 0; -pub const sim_bp_type_t_Breakpoint_Type_Break: sim_bp_type_t = 1; -pub const sim_bp_type_t_Breakpoint_Type_Run_Until: sim_bp_type_t = 2; -pub const sim_bp_type_t_Breakpoint_Type_Wait_For: sim_bp_type_t = 3; -pub const sim_bp_type_t_Breakpoint_Type_Trace: sim_bp_type_t = 4; -#[doc = " Sent as flags to breakpoint_type_provider.add_bp, for providers that need\nto know from which command the breakpoint comes."] -pub type sim_bp_type_t = ::std::os::raw::c_uint; -pub type breakpoint_type_provider_interface_t = breakpoint_type_provider_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_type_provider_interface { - #[doc = " Register breakpoint in manager.\nReturn breakpoint manager ID, or 0 on error."] - pub register_bp: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> uint64, - >, - #[doc = " Add breakpoint and return provider specific ID, or 0 on error."] - pub add_bp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - flags: ::std::os::raw::c_int, - data: attr_value_t, - ) -> uint64, - >, - #[doc = " Remove breakpoint, given ID returned by add_bp."] - pub remove_bp: - ::std::option::Option, - #[doc = " Return trace message, given ID returned by add_bp."] - pub trace_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Message returned by break command, given ID returned by add_bp."] - pub break_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Script branch wait message, given ID returned by add_bp."] - pub wait_msg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - bp_id: uint64, - ) -> *const ::std::os::raw::c_char, - >, - #[doc = " Optional return value from wait-for and run-until commands,\ngiven ID returned by add_bp."] - pub break_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, bp_id: uint64) -> attr_value_t, - >, - #[doc = " Return possible values for command argument.\nOptional unless expanders used."] - pub values: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - arg: *const ::std::os::raw::c_char, - prev_args: attr_value_t, - ) -> attr_value_t, - >, - #[doc = " Optional trace output function. The default is to log on the\nprovider with level 1 and group 0."] - pub trace: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, msg: *const ::std::os::raw::c_char), - >, -} -#[test] -fn bindgen_test_layout_breakpoint_type_provider_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(breakpoint_type_provider_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(breakpoint_type_provider_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_bp) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(register_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(add_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_bp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(remove_bp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace_msg) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_msg) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).wait_msg) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(wait_msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).break_data) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(break_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).values) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(values) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).trace) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_type_provider_interface), - "::", - stringify!(trace) - ) - ); -} -pub type breakpoint_manager_interface_t = breakpoint_manager_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct breakpoint_manager_interface { - #[doc = " Return a list of the breakpoint ids of all breakpoints."] - pub list_breakpoints: - ::std::option::Option attr_value_t>, - pub delete_breakpoint: - ::std::option::Option, - #[doc = " Return a dictionary with the properties for a specific breakpoint"] - pub get_properties: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64) -> attr_value_t, - >, - pub set_enabled: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, enabled: bool) -> bool, - >, - pub set_temporary: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, temporary: bool) -> bool, - >, - pub set_ignore_count: ::std::option::Option< - unsafe extern "C" fn(mgr: *mut conf_object_t, id: uint64, ignore_count: uint64) -> bool, - >, -} -#[test] -fn bindgen_test_layout_breakpoint_manager_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(breakpoint_manager_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_breakpoints) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(list_breakpoints) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).delete_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(delete_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(get_properties) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_enabled) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_enabled) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_temporary) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_temporary) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_ignore_count) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(breakpoint_manager_interface), - "::", - stringify!(set_ignore_count) - ) - ); -} -pub type checkpoint_interface_t = checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct checkpoint_interface { - pub save: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, path: *const ::std::os::raw::c_char), - >, - pub finish: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, success: ::std::os::raw::c_int), - >, - pub has_persistent_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(save) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finish) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(finish) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_persistent_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(checkpoint_interface), - "::", - stringify!(has_persistent_data) - ) - ); -} -pub type serial_console_frontend_interface_t = serial_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct serial_console_frontend_interface { - pub write: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_serial_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(serial_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(serial_console_frontend_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).write) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(serial_console_frontend_interface), - "::", - stringify!(write) - ) - ); -} -pub type con_input_interface_t = con_input_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_interface { - pub input_str: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, str_: *const ::std::os::raw::c_char), - >, - pub input_data: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_con_input_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(con_input_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_str) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_str) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input_data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(con_input_interface), - "::", - stringify!(input_data) - ) - ); -} -pub type con_input_code_interface_t = con_input_code_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct con_input_code_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, -} -#[test] -fn bindgen_test_layout_con_input_code_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(con_input_code_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(con_input_code_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(con_input_code_interface), - "::", - stringify!(input) - ) - ); -} -#[doc = " \nbreak_string_cb_t\nbreak_string_cb_t\n\nbreak_string_cb_t\n\n Callback function used by the string\nbreakpoint system, called when the associated string breakpoint has\nmatched. The obj parameter is the console where the breakpoint\nmatched, str is the break string that matched,\nbreak_id is the associated breakpoint id, returned by the\nadd or add_single method in the\nbreak_strings interface, and arg is the callback\ndata passed to that method. The return value is ignored.\n\n"] -pub type break_string_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -pub type break_strings_interface_t = break_strings_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(break_strings_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_interface), - "::", - stringify!(remove) - ) - ); -} -pub type break_strings_v2_interface_t = break_strings_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct break_strings_v2_interface { - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_single: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub add_regexp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - str_: *const ::std::os::raw::c_char, - cb: break_string_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_break_strings_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(break_strings_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_single) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_single) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_regexp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(add_regexp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(break_strings_v2_interface), - "::", - stringify!(remove) - ) - ); -} -#[doc = " \ngfx_break_cb_t\ngfx_break_cb_t\n\ngfx_break_cb_t\n\n Callback function used by the graphics\nbreakpoint system, called when the associated graphical breakpoint has\nmatched. The obj parameter is the graphics console where the\nbreakpoint matched, break_id is the associated breakpoint id,\nreturned by the add method in the gfx_break\ninterface, and arg is the callback data passed to that method.\n\n"] -pub type gfx_break_cb_t = ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - break_id: int64, - arg: *mut lang_void, - ) -> ::std::os::raw::c_int, ->; -#[doc = " \ngbp_header_t\ngbp_header_t\n\ngbp_header_t\n\n Header for graphical breakpoint files, also\nreturned by the info method of the gfx_break\ninterface.\n\nThe fields magic and format are always\nGBP_MAGIC and GBP_FMT_V3_32, respectively.\n\nThe field bytes is the size of the image data in the file, not\nincluding the header.\n\nThe other fields specify the breakpoint image patch location on the screen.\n\n"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gbp_header_t { - pub magic: uint32, - pub format: uint32, - pub bytes: uint64, - pub minx: uint32, - pub miny: uint32, - pub maxx: uint32, - pub maxy: uint32, -} -#[test] -fn bindgen_test_layout_gbp_header_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(gbp_header_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gbp_header_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).magic) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(magic) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).format) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(format) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bytes) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).minx) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(minx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).miny) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(miny) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxx) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).maxy) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gbp_header_t), - "::", - stringify!(maxy) - ) - ); -} -pub type gfx_break_interface_t = gfx_break_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_break_interface { - pub store: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - minx: ::std::os::raw::c_int, - miny: ::std::os::raw::c_int, - maxx: ::std::os::raw::c_int, - maxy: ::std::os::raw::c_int, - ) -> bool, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, break_id: int64) -> bool, - >, - pub match_: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - ) -> gbp_header_t, - >, - pub export_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - file: *const ::std::os::raw::c_char, - png_file: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub add_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - data: bytes_t, - name: *const ::std::os::raw::c_char, - oneshot: bool, - interval: f64, - cb: gfx_break_cb_t, - arg: *mut lang_void, - ) -> int64, - >, -} -#[test] -fn bindgen_test_layout_gfx_break_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(gfx_break_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_break_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).store) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(store) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).match_) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(match_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).export_png) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(export_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_bytes) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_break_interface), - "::", - stringify!(add_bytes) - ) - ); -} -pub type telnet_connection_interface_t = telnet_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub remote_port: ::std::option::Option uint16>, - pub remote_ip: ::std::option::Option bytes_t>, - pub local_port: ::std::option::Option uint16>, - pub disconnect: ::std::option::Option, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remote_ip) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(remote_ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(disconnect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type telnet_connection_v2_interface_t = telnet_connection_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct telnet_connection_v2_interface { - pub listening: ::std::option::Option bool>, - pub connected: ::std::option::Option bool>, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_telnet_connection_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(telnet_connection_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connected) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(connected) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(telnet_connection_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type vnc_server_interface_t = vnc_server_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_interface { - pub setup: - ::std::option::Option bool>, - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub local_port: ::std::option::Option uint16>, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(vnc_server_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_port) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(local_port) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type vnc_server_v2_interface_t = vnc_server_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vnc_server_v2_interface { - pub listening: ::std::option::Option bool>, - pub num_clients: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub disconnect: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_vnc_server_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vnc_server_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).listening) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(listening) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_clients) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(num_clients) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vnc_server_v2_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type host_serial_interface_t = host_serial_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct host_serial_interface { - pub setup: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, name: *const ::std::os::raw::c_char) -> bool, - >, - pub name: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *const ::std::os::raw::c_char, - >, - pub shutdown: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_host_serial_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(host_serial_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(host_serial_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).setup) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(setup) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).shutdown) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(host_serial_interface), - "::", - stringify!(shutdown) - ) - ); -} -pub type screenshot_interface_t = screenshot_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct screenshot_interface { - pub save_png: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, - pub save_bmp: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - ) -> bool, - >, -} -#[test] -fn bindgen_test_layout_screenshot_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(screenshot_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(screenshot_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_png) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_png) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).save_bmp) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(screenshot_interface), - "::", - stringify!(save_bmp) - ) - ); -} -pub const text_console_text_attrib_t_Text_Console_Attrib_Bold: text_console_text_attrib_t = 1; -pub const text_console_text_attrib_t_Text_Console_Attrib_Underline: text_console_text_attrib_t = 2; -#[doc = " Text console character attributes.\nInverse video is represented by swapping the foreground and background\ncolours, so there is no bit for it here."] -pub type text_console_text_attrib_t = ::std::os::raw::c_uint; -pub const text_console_colour_t_Text_Console_Colour_Black: text_console_colour_t = 0; -pub const text_console_colour_t_Text_Console_Colour_Red: text_console_colour_t = 1; -pub const text_console_colour_t_Text_Console_Colour_Green: text_console_colour_t = 2; -pub const text_console_colour_t_Text_Console_Colour_Yellow: text_console_colour_t = 3; -pub const text_console_colour_t_Text_Console_Colour_Blue: text_console_colour_t = 4; -pub const text_console_colour_t_Text_Console_Colour_Magenta: text_console_colour_t = 5; -pub const text_console_colour_t_Text_Console_Colour_Cyan: text_console_colour_t = 6; -pub const text_console_colour_t_Text_Console_Colour_White: text_console_colour_t = 7; -pub const text_console_colour_t_Text_Console_Colour_Black_Bright: text_console_colour_t = 8; -pub const text_console_colour_t_Text_Console_Colour_Red_Bright: text_console_colour_t = 9; -pub const text_console_colour_t_Text_Console_Colour_Green_Bright: text_console_colour_t = 10; -pub const text_console_colour_t_Text_Console_Colour_Yellow_Bright: text_console_colour_t = 11; -pub const text_console_colour_t_Text_Console_Colour_Blue_Bright: text_console_colour_t = 12; -pub const text_console_colour_t_Text_Console_Colour_Magenta_Bright: text_console_colour_t = 13; -pub const text_console_colour_t_Text_Console_Colour_Cyan_Bright: text_console_colour_t = 14; -pub const text_console_colour_t_Text_Console_Colour_White_Bright: text_console_colour_t = 15; -pub const text_console_colour_t_Text_Console_Colour_Cube_16: text_console_colour_t = 16; -pub const text_console_colour_t_Text_Console_Colour_Cube_17: text_console_colour_t = 17; -pub const text_console_colour_t_Text_Console_Colour_Cube_18: text_console_colour_t = 18; -pub const text_console_colour_t_Text_Console_Colour_Cube_19: text_console_colour_t = 19; -pub const text_console_colour_t_Text_Console_Colour_Cube_20: text_console_colour_t = 20; -pub const text_console_colour_t_Text_Console_Colour_Cube_21: text_console_colour_t = 21; -pub const text_console_colour_t_Text_Console_Colour_Cube_22: text_console_colour_t = 22; -pub const text_console_colour_t_Text_Console_Colour_Cube_23: text_console_colour_t = 23; -pub const text_console_colour_t_Text_Console_Colour_Cube_24: text_console_colour_t = 24; -pub const text_console_colour_t_Text_Console_Colour_Cube_25: text_console_colour_t = 25; -pub const text_console_colour_t_Text_Console_Colour_Cube_26: text_console_colour_t = 26; -pub const text_console_colour_t_Text_Console_Colour_Cube_27: text_console_colour_t = 27; -pub const text_console_colour_t_Text_Console_Colour_Cube_28: text_console_colour_t = 28; -pub const text_console_colour_t_Text_Console_Colour_Cube_29: text_console_colour_t = 29; -pub const text_console_colour_t_Text_Console_Colour_Cube_30: text_console_colour_t = 30; -pub const text_console_colour_t_Text_Console_Colour_Cube_31: text_console_colour_t = 31; -pub const text_console_colour_t_Text_Console_Colour_Cube_32: text_console_colour_t = 32; -pub const text_console_colour_t_Text_Console_Colour_Cube_33: text_console_colour_t = 33; -pub const text_console_colour_t_Text_Console_Colour_Cube_34: text_console_colour_t = 34; -pub const text_console_colour_t_Text_Console_Colour_Cube_35: text_console_colour_t = 35; -pub const text_console_colour_t_Text_Console_Colour_Cube_36: text_console_colour_t = 36; -pub const text_console_colour_t_Text_Console_Colour_Cube_37: text_console_colour_t = 37; -pub const text_console_colour_t_Text_Console_Colour_Cube_38: text_console_colour_t = 38; -pub const text_console_colour_t_Text_Console_Colour_Cube_39: text_console_colour_t = 39; -pub const text_console_colour_t_Text_Console_Colour_Cube_40: text_console_colour_t = 40; -pub const text_console_colour_t_Text_Console_Colour_Cube_41: text_console_colour_t = 41; -pub const text_console_colour_t_Text_Console_Colour_Cube_42: text_console_colour_t = 42; -pub const text_console_colour_t_Text_Console_Colour_Cube_43: text_console_colour_t = 43; -pub const text_console_colour_t_Text_Console_Colour_Cube_44: text_console_colour_t = 44; -pub const text_console_colour_t_Text_Console_Colour_Cube_45: text_console_colour_t = 45; -pub const text_console_colour_t_Text_Console_Colour_Cube_46: text_console_colour_t = 46; -pub const text_console_colour_t_Text_Console_Colour_Cube_47: text_console_colour_t = 47; -pub const text_console_colour_t_Text_Console_Colour_Cube_48: text_console_colour_t = 48; -pub const text_console_colour_t_Text_Console_Colour_Cube_49: text_console_colour_t = 49; -pub const text_console_colour_t_Text_Console_Colour_Cube_50: text_console_colour_t = 50; -pub const text_console_colour_t_Text_Console_Colour_Cube_51: text_console_colour_t = 51; -pub const text_console_colour_t_Text_Console_Colour_Cube_52: text_console_colour_t = 52; -pub const text_console_colour_t_Text_Console_Colour_Cube_53: text_console_colour_t = 53; -pub const text_console_colour_t_Text_Console_Colour_Cube_54: text_console_colour_t = 54; -pub const text_console_colour_t_Text_Console_Colour_Cube_55: text_console_colour_t = 55; -pub const text_console_colour_t_Text_Console_Colour_Cube_56: text_console_colour_t = 56; -pub const text_console_colour_t_Text_Console_Colour_Cube_57: text_console_colour_t = 57; -pub const text_console_colour_t_Text_Console_Colour_Cube_58: text_console_colour_t = 58; -pub const text_console_colour_t_Text_Console_Colour_Cube_59: text_console_colour_t = 59; -pub const text_console_colour_t_Text_Console_Colour_Cube_60: text_console_colour_t = 60; -pub const text_console_colour_t_Text_Console_Colour_Cube_61: text_console_colour_t = 61; -pub const text_console_colour_t_Text_Console_Colour_Cube_62: text_console_colour_t = 62; -pub const text_console_colour_t_Text_Console_Colour_Cube_63: text_console_colour_t = 63; -pub const text_console_colour_t_Text_Console_Colour_Cube_64: text_console_colour_t = 64; -pub const text_console_colour_t_Text_Console_Colour_Cube_65: text_console_colour_t = 65; -pub const text_console_colour_t_Text_Console_Colour_Cube_66: text_console_colour_t = 66; -pub const text_console_colour_t_Text_Console_Colour_Cube_67: text_console_colour_t = 67; -pub const text_console_colour_t_Text_Console_Colour_Cube_68: text_console_colour_t = 68; -pub const text_console_colour_t_Text_Console_Colour_Cube_69: text_console_colour_t = 69; -pub const text_console_colour_t_Text_Console_Colour_Cube_70: text_console_colour_t = 70; -pub const text_console_colour_t_Text_Console_Colour_Cube_71: text_console_colour_t = 71; -pub const text_console_colour_t_Text_Console_Colour_Cube_72: text_console_colour_t = 72; -pub const text_console_colour_t_Text_Console_Colour_Cube_73: text_console_colour_t = 73; -pub const text_console_colour_t_Text_Console_Colour_Cube_74: text_console_colour_t = 74; -pub const text_console_colour_t_Text_Console_Colour_Cube_75: text_console_colour_t = 75; -pub const text_console_colour_t_Text_Console_Colour_Cube_76: text_console_colour_t = 76; -pub const text_console_colour_t_Text_Console_Colour_Cube_77: text_console_colour_t = 77; -pub const text_console_colour_t_Text_Console_Colour_Cube_78: text_console_colour_t = 78; -pub const text_console_colour_t_Text_Console_Colour_Cube_79: text_console_colour_t = 79; -pub const text_console_colour_t_Text_Console_Colour_Cube_80: text_console_colour_t = 80; -pub const text_console_colour_t_Text_Console_Colour_Cube_81: text_console_colour_t = 81; -pub const text_console_colour_t_Text_Console_Colour_Cube_82: text_console_colour_t = 82; -pub const text_console_colour_t_Text_Console_Colour_Cube_83: text_console_colour_t = 83; -pub const text_console_colour_t_Text_Console_Colour_Cube_84: text_console_colour_t = 84; -pub const text_console_colour_t_Text_Console_Colour_Cube_85: text_console_colour_t = 85; -pub const text_console_colour_t_Text_Console_Colour_Cube_86: text_console_colour_t = 86; -pub const text_console_colour_t_Text_Console_Colour_Cube_87: text_console_colour_t = 87; -pub const text_console_colour_t_Text_Console_Colour_Cube_88: text_console_colour_t = 88; -pub const text_console_colour_t_Text_Console_Colour_Cube_89: text_console_colour_t = 89; -pub const text_console_colour_t_Text_Console_Colour_Cube_90: text_console_colour_t = 90; -pub const text_console_colour_t_Text_Console_Colour_Cube_91: text_console_colour_t = 91; -pub const text_console_colour_t_Text_Console_Colour_Cube_92: text_console_colour_t = 92; -pub const text_console_colour_t_Text_Console_Colour_Cube_93: text_console_colour_t = 93; -pub const text_console_colour_t_Text_Console_Colour_Cube_94: text_console_colour_t = 94; -pub const text_console_colour_t_Text_Console_Colour_Cube_95: text_console_colour_t = 95; -pub const text_console_colour_t_Text_Console_Colour_Cube_96: text_console_colour_t = 96; -pub const text_console_colour_t_Text_Console_Colour_Cube_97: text_console_colour_t = 97; -pub const text_console_colour_t_Text_Console_Colour_Cube_98: text_console_colour_t = 98; -pub const text_console_colour_t_Text_Console_Colour_Cube_99: text_console_colour_t = 99; -pub const text_console_colour_t_Text_Console_Colour_Cube_100: text_console_colour_t = 100; -pub const text_console_colour_t_Text_Console_Colour_Cube_101: text_console_colour_t = 101; -pub const text_console_colour_t_Text_Console_Colour_Cube_102: text_console_colour_t = 102; -pub const text_console_colour_t_Text_Console_Colour_Cube_103: text_console_colour_t = 103; -pub const text_console_colour_t_Text_Console_Colour_Cube_104: text_console_colour_t = 104; -pub const text_console_colour_t_Text_Console_Colour_Cube_105: text_console_colour_t = 105; -pub const text_console_colour_t_Text_Console_Colour_Cube_106: text_console_colour_t = 106; -pub const text_console_colour_t_Text_Console_Colour_Cube_107: text_console_colour_t = 107; -pub const text_console_colour_t_Text_Console_Colour_Cube_108: text_console_colour_t = 108; -pub const text_console_colour_t_Text_Console_Colour_Cube_109: text_console_colour_t = 109; -pub const text_console_colour_t_Text_Console_Colour_Cube_110: text_console_colour_t = 110; -pub const text_console_colour_t_Text_Console_Colour_Cube_111: text_console_colour_t = 111; -pub const text_console_colour_t_Text_Console_Colour_Cube_112: text_console_colour_t = 112; -pub const text_console_colour_t_Text_Console_Colour_Cube_113: text_console_colour_t = 113; -pub const text_console_colour_t_Text_Console_Colour_Cube_114: text_console_colour_t = 114; -pub const text_console_colour_t_Text_Console_Colour_Cube_115: text_console_colour_t = 115; -pub const text_console_colour_t_Text_Console_Colour_Cube_116: text_console_colour_t = 116; -pub const text_console_colour_t_Text_Console_Colour_Cube_117: text_console_colour_t = 117; -pub const text_console_colour_t_Text_Console_Colour_Cube_118: text_console_colour_t = 118; -pub const text_console_colour_t_Text_Console_Colour_Cube_119: text_console_colour_t = 119; -pub const text_console_colour_t_Text_Console_Colour_Cube_120: text_console_colour_t = 120; -pub const text_console_colour_t_Text_Console_Colour_Cube_121: text_console_colour_t = 121; -pub const text_console_colour_t_Text_Console_Colour_Cube_122: text_console_colour_t = 122; -pub const text_console_colour_t_Text_Console_Colour_Cube_123: text_console_colour_t = 123; -pub const text_console_colour_t_Text_Console_Colour_Cube_124: text_console_colour_t = 124; -pub const text_console_colour_t_Text_Console_Colour_Cube_125: text_console_colour_t = 125; -pub const text_console_colour_t_Text_Console_Colour_Cube_126: text_console_colour_t = 126; -pub const text_console_colour_t_Text_Console_Colour_Cube_127: text_console_colour_t = 127; -pub const text_console_colour_t_Text_Console_Colour_Cube_128: text_console_colour_t = 128; -pub const text_console_colour_t_Text_Console_Colour_Cube_129: text_console_colour_t = 129; -pub const text_console_colour_t_Text_Console_Colour_Cube_130: text_console_colour_t = 130; -pub const text_console_colour_t_Text_Console_Colour_Cube_131: text_console_colour_t = 131; -pub const text_console_colour_t_Text_Console_Colour_Cube_132: text_console_colour_t = 132; -pub const text_console_colour_t_Text_Console_Colour_Cube_133: text_console_colour_t = 133; -pub const text_console_colour_t_Text_Console_Colour_Cube_134: text_console_colour_t = 134; -pub const text_console_colour_t_Text_Console_Colour_Cube_135: text_console_colour_t = 135; -pub const text_console_colour_t_Text_Console_Colour_Cube_136: text_console_colour_t = 136; -pub const text_console_colour_t_Text_Console_Colour_Cube_137: text_console_colour_t = 137; -pub const text_console_colour_t_Text_Console_Colour_Cube_138: text_console_colour_t = 138; -pub const text_console_colour_t_Text_Console_Colour_Cube_139: text_console_colour_t = 139; -pub const text_console_colour_t_Text_Console_Colour_Cube_140: text_console_colour_t = 140; -pub const text_console_colour_t_Text_Console_Colour_Cube_141: text_console_colour_t = 141; -pub const text_console_colour_t_Text_Console_Colour_Cube_142: text_console_colour_t = 142; -pub const text_console_colour_t_Text_Console_Colour_Cube_143: text_console_colour_t = 143; -pub const text_console_colour_t_Text_Console_Colour_Cube_144: text_console_colour_t = 144; -pub const text_console_colour_t_Text_Console_Colour_Cube_145: text_console_colour_t = 145; -pub const text_console_colour_t_Text_Console_Colour_Cube_146: text_console_colour_t = 146; -pub const text_console_colour_t_Text_Console_Colour_Cube_147: text_console_colour_t = 147; -pub const text_console_colour_t_Text_Console_Colour_Cube_148: text_console_colour_t = 148; -pub const text_console_colour_t_Text_Console_Colour_Cube_149: text_console_colour_t = 149; -pub const text_console_colour_t_Text_Console_Colour_Cube_150: text_console_colour_t = 150; -pub const text_console_colour_t_Text_Console_Colour_Cube_151: text_console_colour_t = 151; -pub const text_console_colour_t_Text_Console_Colour_Cube_152: text_console_colour_t = 152; -pub const text_console_colour_t_Text_Console_Colour_Cube_153: text_console_colour_t = 153; -pub const text_console_colour_t_Text_Console_Colour_Cube_154: text_console_colour_t = 154; -pub const text_console_colour_t_Text_Console_Colour_Cube_155: text_console_colour_t = 155; -pub const text_console_colour_t_Text_Console_Colour_Cube_156: text_console_colour_t = 156; -pub const text_console_colour_t_Text_Console_Colour_Cube_157: text_console_colour_t = 157; -pub const text_console_colour_t_Text_Console_Colour_Cube_158: text_console_colour_t = 158; -pub const text_console_colour_t_Text_Console_Colour_Cube_159: text_console_colour_t = 159; -pub const text_console_colour_t_Text_Console_Colour_Cube_160: text_console_colour_t = 160; -pub const text_console_colour_t_Text_Console_Colour_Cube_161: text_console_colour_t = 161; -pub const text_console_colour_t_Text_Console_Colour_Cube_162: text_console_colour_t = 162; -pub const text_console_colour_t_Text_Console_Colour_Cube_163: text_console_colour_t = 163; -pub const text_console_colour_t_Text_Console_Colour_Cube_164: text_console_colour_t = 164; -pub const text_console_colour_t_Text_Console_Colour_Cube_165: text_console_colour_t = 165; -pub const text_console_colour_t_Text_Console_Colour_Cube_166: text_console_colour_t = 166; -pub const text_console_colour_t_Text_Console_Colour_Cube_167: text_console_colour_t = 167; -pub const text_console_colour_t_Text_Console_Colour_Cube_168: text_console_colour_t = 168; -pub const text_console_colour_t_Text_Console_Colour_Cube_169: text_console_colour_t = 169; -pub const text_console_colour_t_Text_Console_Colour_Cube_170: text_console_colour_t = 170; -pub const text_console_colour_t_Text_Console_Colour_Cube_171: text_console_colour_t = 171; -pub const text_console_colour_t_Text_Console_Colour_Cube_172: text_console_colour_t = 172; -pub const text_console_colour_t_Text_Console_Colour_Cube_173: text_console_colour_t = 173; -pub const text_console_colour_t_Text_Console_Colour_Cube_174: text_console_colour_t = 174; -pub const text_console_colour_t_Text_Console_Colour_Cube_175: text_console_colour_t = 175; -pub const text_console_colour_t_Text_Console_Colour_Cube_176: text_console_colour_t = 176; -pub const text_console_colour_t_Text_Console_Colour_Cube_177: text_console_colour_t = 177; -pub const text_console_colour_t_Text_Console_Colour_Cube_178: text_console_colour_t = 178; -pub const text_console_colour_t_Text_Console_Colour_Cube_179: text_console_colour_t = 179; -pub const text_console_colour_t_Text_Console_Colour_Cube_180: text_console_colour_t = 180; -pub const text_console_colour_t_Text_Console_Colour_Cube_181: text_console_colour_t = 181; -pub const text_console_colour_t_Text_Console_Colour_Cube_182: text_console_colour_t = 182; -pub const text_console_colour_t_Text_Console_Colour_Cube_183: text_console_colour_t = 183; -pub const text_console_colour_t_Text_Console_Colour_Cube_184: text_console_colour_t = 184; -pub const text_console_colour_t_Text_Console_Colour_Cube_185: text_console_colour_t = 185; -pub const text_console_colour_t_Text_Console_Colour_Cube_186: text_console_colour_t = 186; -pub const text_console_colour_t_Text_Console_Colour_Cube_187: text_console_colour_t = 187; -pub const text_console_colour_t_Text_Console_Colour_Cube_188: text_console_colour_t = 188; -pub const text_console_colour_t_Text_Console_Colour_Cube_189: text_console_colour_t = 189; -pub const text_console_colour_t_Text_Console_Colour_Cube_190: text_console_colour_t = 190; -pub const text_console_colour_t_Text_Console_Colour_Cube_191: text_console_colour_t = 191; -pub const text_console_colour_t_Text_Console_Colour_Cube_192: text_console_colour_t = 192; -pub const text_console_colour_t_Text_Console_Colour_Cube_193: text_console_colour_t = 193; -pub const text_console_colour_t_Text_Console_Colour_Cube_194: text_console_colour_t = 194; -pub const text_console_colour_t_Text_Console_Colour_Cube_195: text_console_colour_t = 195; -pub const text_console_colour_t_Text_Console_Colour_Cube_196: text_console_colour_t = 196; -pub const text_console_colour_t_Text_Console_Colour_Cube_197: text_console_colour_t = 197; -pub const text_console_colour_t_Text_Console_Colour_Cube_198: text_console_colour_t = 198; -pub const text_console_colour_t_Text_Console_Colour_Cube_199: text_console_colour_t = 199; -pub const text_console_colour_t_Text_Console_Colour_Cube_200: text_console_colour_t = 200; -pub const text_console_colour_t_Text_Console_Colour_Cube_201: text_console_colour_t = 201; -pub const text_console_colour_t_Text_Console_Colour_Cube_202: text_console_colour_t = 202; -pub const text_console_colour_t_Text_Console_Colour_Cube_203: text_console_colour_t = 203; -pub const text_console_colour_t_Text_Console_Colour_Cube_204: text_console_colour_t = 204; -pub const text_console_colour_t_Text_Console_Colour_Cube_205: text_console_colour_t = 205; -pub const text_console_colour_t_Text_Console_Colour_Cube_206: text_console_colour_t = 206; -pub const text_console_colour_t_Text_Console_Colour_Cube_207: text_console_colour_t = 207; -pub const text_console_colour_t_Text_Console_Colour_Cube_208: text_console_colour_t = 208; -pub const text_console_colour_t_Text_Console_Colour_Cube_209: text_console_colour_t = 209; -pub const text_console_colour_t_Text_Console_Colour_Cube_210: text_console_colour_t = 210; -pub const text_console_colour_t_Text_Console_Colour_Cube_211: text_console_colour_t = 211; -pub const text_console_colour_t_Text_Console_Colour_Cube_212: text_console_colour_t = 212; -pub const text_console_colour_t_Text_Console_Colour_Cube_213: text_console_colour_t = 213; -pub const text_console_colour_t_Text_Console_Colour_Cube_214: text_console_colour_t = 214; -pub const text_console_colour_t_Text_Console_Colour_Cube_215: text_console_colour_t = 215; -pub const text_console_colour_t_Text_Console_Colour_Cube_216: text_console_colour_t = 216; -pub const text_console_colour_t_Text_Console_Colour_Cube_217: text_console_colour_t = 217; -pub const text_console_colour_t_Text_Console_Colour_Cube_218: text_console_colour_t = 218; -pub const text_console_colour_t_Text_Console_Colour_Cube_219: text_console_colour_t = 219; -pub const text_console_colour_t_Text_Console_Colour_Cube_220: text_console_colour_t = 220; -pub const text_console_colour_t_Text_Console_Colour_Cube_221: text_console_colour_t = 221; -pub const text_console_colour_t_Text_Console_Colour_Cube_222: text_console_colour_t = 222; -pub const text_console_colour_t_Text_Console_Colour_Cube_223: text_console_colour_t = 223; -pub const text_console_colour_t_Text_Console_Colour_Cube_224: text_console_colour_t = 224; -pub const text_console_colour_t_Text_Console_Colour_Cube_225: text_console_colour_t = 225; -pub const text_console_colour_t_Text_Console_Colour_Cube_226: text_console_colour_t = 226; -pub const text_console_colour_t_Text_Console_Colour_Cube_227: text_console_colour_t = 227; -pub const text_console_colour_t_Text_Console_Colour_Cube_228: text_console_colour_t = 228; -pub const text_console_colour_t_Text_Console_Colour_Cube_229: text_console_colour_t = 229; -pub const text_console_colour_t_Text_Console_Colour_Cube_230: text_console_colour_t = 230; -pub const text_console_colour_t_Text_Console_Colour_Cube_231: text_console_colour_t = 231; -pub const text_console_colour_t_Text_Console_Colour_Grey_232: text_console_colour_t = 232; -pub const text_console_colour_t_Text_Console_Colour_Grey_233: text_console_colour_t = 233; -pub const text_console_colour_t_Text_Console_Colour_Grey_234: text_console_colour_t = 234; -pub const text_console_colour_t_Text_Console_Colour_Grey_235: text_console_colour_t = 235; -pub const text_console_colour_t_Text_Console_Colour_Grey_236: text_console_colour_t = 236; -pub const text_console_colour_t_Text_Console_Colour_Grey_237: text_console_colour_t = 237; -pub const text_console_colour_t_Text_Console_Colour_Grey_238: text_console_colour_t = 238; -pub const text_console_colour_t_Text_Console_Colour_Grey_239: text_console_colour_t = 239; -pub const text_console_colour_t_Text_Console_Colour_Grey_240: text_console_colour_t = 240; -pub const text_console_colour_t_Text_Console_Colour_Grey_241: text_console_colour_t = 241; -pub const text_console_colour_t_Text_Console_Colour_Grey_242: text_console_colour_t = 242; -pub const text_console_colour_t_Text_Console_Colour_Grey_243: text_console_colour_t = 243; -pub const text_console_colour_t_Text_Console_Colour_Grey_244: text_console_colour_t = 244; -pub const text_console_colour_t_Text_Console_Colour_Grey_245: text_console_colour_t = 245; -pub const text_console_colour_t_Text_Console_Colour_Grey_246: text_console_colour_t = 246; -pub const text_console_colour_t_Text_Console_Colour_Grey_247: text_console_colour_t = 247; -pub const text_console_colour_t_Text_Console_Colour_Grey_248: text_console_colour_t = 248; -pub const text_console_colour_t_Text_Console_Colour_Grey_249: text_console_colour_t = 249; -pub const text_console_colour_t_Text_Console_Colour_Grey_250: text_console_colour_t = 250; -pub const text_console_colour_t_Text_Console_Colour_Grey_251: text_console_colour_t = 251; -pub const text_console_colour_t_Text_Console_Colour_Grey_252: text_console_colour_t = 252; -pub const text_console_colour_t_Text_Console_Colour_Grey_253: text_console_colour_t = 253; -pub const text_console_colour_t_Text_Console_Colour_Grey_254: text_console_colour_t = 254; -pub const text_console_colour_t_Text_Console_Colour_Grey_255: text_console_colour_t = 255; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Foreground: text_console_colour_t = 256; -#[doc = " These values represent the chosen default colours."] -pub const text_console_colour_t_Text_Console_Colour_Default_Background: text_console_colour_t = 257; -#[doc = " Text console colours.\nhttps://www.wikipedia.org/wiki/ANSI_escape_code#8-bit"] -pub type text_console_colour_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_attrib_t { - #[doc = " Bitmask of text_console_text_attrib_t"] - pub attrib: uint8, - #[doc = " text_console_colour_t specifying fg colour"] - pub fg: uint16, - #[doc = " text_console_colour_t specifying bg colour."] - pub bg: uint16, -} -#[test] -fn bindgen_test_layout_text_console_attrib_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 5usize, - concat!("Size of: ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(text_console_attrib_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fg) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(fg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bg) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(text_console_attrib_t), - "::", - stringify!(bg) - ) - ); -} -pub type text_console_frontend_interface_t = text_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_frontend_interface { - #[doc = " Called when the console is finalised.\n'backend' is the calling text console."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the console is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set the window title.\nTwo title strings are given, where the long title is\nmeant for a window title bar and the short for a window list.\nThe long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the console changes.\nThe width (columns) and height (rows) are given in characters."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify the maximum scrollback size (in lines)."] - pub set_max_scrollback_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - ), - >, - #[doc = " Specify new default text colours for the console.\nThese are used for characters whose colours were set to\nText_Console_Colour_Default_Background or\nText_Console_Colour_Default_Foreground."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, - #[doc = " Show/hide the console window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update characters and attributes in a rectangle in the console.\n(top, left) is the line and column of the upper left corner;\n(bottom, right) is the line and column of the lower right corner\n(inclusive).\nLines and columns are 0-based. Lines are counted from the top of\nthe visible screen.\n\n'text' and 'attrib' are the text and attribute arrays, respectively,\ninto which the lines and columns are used as indices.\nFor example, the start of the rectangle in the text array is\n&text[width * top + left], where width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Move the cursor to a new position.\nrow is the new cursor row (0-based), within the visible screen.\ncol is the new cursor column (0-based)."] - pub set_cursor_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - row: ::std::os::raw::c_int, - col: ::std::os::raw::c_int, - ), - >, - #[doc = " Append text at the bottom of the screen of the console,\nimplicitly scrolling the text upwards.\nnum_lines is the number of lines to append_scroll.\n'text' and 'attrib' are the start of the newly scrolled-in data,\nrepresenting the num_lines bottommost lines of the screen after\nscrolling."] - pub append_text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - num_lines: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - ), - >, - #[doc = " Replace the screen and scrollback data with new information.\n'text' and 'attrib' each contain\nwidth * height elements,\nwhere width and height were set by set_size.\n'sb_text' and 'sb_attrib' each contain\nwidth * scrollback_size elements."] - pub refresh_screen: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text: *const ::std::os::raw::c_char, - attrib: *const text_console_attrib_t, - sb_text: *const ::std::os::raw::c_char, - sb_attrib: *const text_console_attrib_t, - scrollback_size: ::std::os::raw::c_int, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_max_scrollback_size) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_max_scrollback_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_default_colours) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_cursor_pos) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(set_cursor_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append_text) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(append_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh_screen) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(text_console_frontend_interface), - "::", - stringify!(refresh_screen) - ) - ); -} -pub const text_console_key_t_Text_Console_Key_Tab: text_console_key_t = 9; -pub const text_console_key_t_Text_Console_Key_Return: text_console_key_t = 13; -pub const text_console_key_t_Text_Console_Key_Escape: text_console_key_t = 27; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Backspace: text_console_key_t = 128; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Left: text_console_key_t = 129; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Up: text_console_key_t = 130; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Right: text_console_key_t = 131; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Down: text_console_key_t = 132; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Home: text_console_key_t = 133; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_End: text_console_key_t = 134; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Ins: text_console_key_t = 135; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Del: text_console_key_t = 136; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgup: text_console_key_t = 137; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_Pgdn: text_console_key_t = 138; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F1: text_console_key_t = 139; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F2: text_console_key_t = 140; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F3: text_console_key_t = 141; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F4: text_console_key_t = 142; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F5: text_console_key_t = 143; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F6: text_console_key_t = 144; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F7: text_console_key_t = 145; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F8: text_console_key_t = 146; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F9: text_console_key_t = 147; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F10: text_console_key_t = 148; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F11: text_console_key_t = 149; -#[doc = " Backspace has a special code (not 8) to distinguish it from ^H."] -pub const text_console_key_t_Text_Console_Key_F12: text_console_key_t = 150; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_0: text_console_key_t = 151; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_1: text_console_key_t = 152; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_2: text_console_key_t = 153; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_3: text_console_key_t = 154; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_4: text_console_key_t = 155; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_5: text_console_key_t = 156; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_6: text_console_key_t = 157; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_7: text_console_key_t = 158; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_8: text_console_key_t = 159; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_9: text_console_key_t = 160; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Plus: text_console_key_t = 161; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Minus: text_console_key_t = 162; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Mul: text_console_key_t = 163; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Div: text_console_key_t = 164; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Dot: text_console_key_t = 165; -#[doc = " Numeric keypad keys."] -pub const text_console_key_t_Text_Console_Key_KP_Enter: text_console_key_t = 166; -#[doc = " Text console keys sent from the GUI to the console."] -pub type text_console_key_t = ::std::os::raw::c_uint; -pub const text_console_modifier_t_Text_Console_Modifier_Alt: text_console_modifier_t = 1; -pub const text_console_modifier_t_Text_Console_Modifier_Ctrl: text_console_modifier_t = 2; -pub const text_console_modifier_t_Text_Console_Modifier_Shift: text_console_modifier_t = 4; -#[doc = " Text console input key modifiers."] -pub type text_console_modifier_t = ::std::os::raw::c_uint; -pub type text_console_backend_interface_t = text_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct text_console_backend_interface { - #[doc = " Send a key press to the backend."] - pub input: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - key: text_console_key_t, - modifiers: text_console_modifier_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\nShortly after this call, the frontend can expect a call to\ntext_console_frontend.refresh_screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\nthe console window is hidden by other windows or minimised.\nThe backend may then choose not to call any text or cursor update\nfunctions in the text_console_frontend interface."] - pub set_visible: - ::std::option::Option, - #[doc = " Returns 1 + the maximum column on the given line\nwith a printable character. The frontend may use this information\nfor e.g. user marking and copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_length: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - line_num: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Indicate whether the specified line was not finished with an explicit\ncarriage return by the user, and hence wraps to the next line.\nThe frontend may use this information for e.g. user marking\nand copying text.\nline_num is 0-based and indexes over the screen for positive values\nand negative values to indicate scrollback lines."] - pub line_wrap: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, line_num: ::std::os::raw::c_int) -> bool, - >, - #[doc = " Tell the console to change the screen size. Note that this is\nvisible to the target software this call therefore impacts the\nsimulation. An immediate call to text_console_frontend.set_size\nwill follow a call to this function."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the console to change the default text colours. An immediate\ncall to text_console_frontend.set_default_colours will follow a\ncall to this function."] - pub set_default_colours: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - default_fg_col: uint32, - default_bg_col: uint32, - ), - >, -} -#[test] -fn bindgen_test_layout_text_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(text_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_length) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_wrap) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(line_wrap) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_default_colours) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(text_console_backend_interface), - "::", - stringify!(set_default_colours) - ) - ); -} -pub const gfx_console_led_t_Gfx_Console_Led_None: gfx_console_led_t = 0; -pub const gfx_console_led_t_Gfx_Console_Led_Caps: gfx_console_led_t = 1; -pub const gfx_console_led_t_Gfx_Console_Led_Num: gfx_console_led_t = 2; -pub const gfx_console_led_t_Gfx_Console_Led_Scroll: gfx_console_led_t = 4; -#[doc = " Keyboard LED status bitmask."] -pub type gfx_console_led_t = ::std::os::raw::c_uint; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Left: gfx_console_mouse_button_t = 1; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Right: gfx_console_mouse_button_t = 2; -pub const gfx_console_mouse_button_t_Gfx_Console_Mouse_Button_Middle: gfx_console_mouse_button_t = - 4; -#[doc = " Identifiers for graphics console mouse input."] -pub type gfx_console_mouse_button_t = ::std::os::raw::c_uint; -pub type gfx_console_frontend_interface_t = gfx_console_frontend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_frontend_interface { - #[doc = " Called when the backend is finalised. Should return a unique handle\n identifying the given backend object to the frontend."] - pub start: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - backend: *mut conf_object_t, - ) -> ::std::os::raw::c_int, - >, - #[doc = " Called when the backend is being destroyed."] - pub stop: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Set window title of the frontend associated to the specified backend.\n Two title strings are given, where the long title is\n meant for a window title bar and the short for a window list.\n The long title string is at least as long as the short."] - pub set_title: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - short_title: *const ::std::os::raw::c_char, - long_title: *const ::std::os::raw::c_char, - ), - >, - #[doc = " Called when the screen size of the specified backend changes."] - pub set_size: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - #[doc = " Tell the frontend to show/hide its GUI window."] - pub set_visible: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, visible: bool), - >, - #[doc = " Update the screen contents in the rectangle between (left, top)\nand (right, bottom), inclusive.\n'data' is the start of the screen pixel array, so the first\npixel of the rectangle is at &data[width * top + left],\nwhere width was set by set_size."] - pub set_contents: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - left: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: *const uint32, - ), - >, - #[doc = " Tell the frontend that the data argument passed to set_contents\n is no longer valid.\n This must be called upon a screen size change, before set_size."] - pub invalidate_contents: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend whether or not we are currently in VGA text mode."] - pub set_text_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - text_mode: bool, - ), - >, - #[doc = " Tell the frontend that text arrived to the backend from the attached\n device, using vga_text_update."] - pub signal_text_update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int), - >, - #[doc = " Inform the frontend that the grab mode of the specified backend\n has changed."] - pub set_grab_mode: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, handle: ::std::os::raw::c_int, active: bool), - >, - #[doc = " Tell the frontend to set the host mouse cursor to (x, y),\nwith ranges [0, width - 1] and [0, height - 1], where\nwidth and height were set by set_size."] - pub set_mouse_pos: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - ), - >, - #[doc = " Inform frontend that the keyboard LED state have been updated.\nThe new state of the LEDs is given as a bitmask."] - pub set_keyboard_leds: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - led_state: gfx_console_led_t, - ), - >, - #[doc = " Inform frontend that the grab modifier has changed."] - pub set_grab_modifier: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - modifier: sim_key_t, - ), - >, - #[doc = " Inform frontend that the grab button has changed."] - pub set_grab_button: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - handle: ::std::os::raw::c_int, - button: gfx_console_mouse_button_t, - ), - >, -} -#[test] -fn bindgen_test_layout_gfx_console_frontend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_frontend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(stop) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_title) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_title) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_size) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_contents) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).invalidate_contents) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(invalidate_contents) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_text_mode) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_text_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).signal_text_update) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(signal_text_update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_mode) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_mouse_pos) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_mouse_pos) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_keyboard_leds) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_keyboard_leds) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_modifier) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_modifier) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_grab_button) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_frontend_interface), - "::", - stringify!(set_grab_button) - ) - ); -} -#[doc = " VGA text mode data.\n Stored in this file since we have the VGA device pointer here."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_screen_text_t { - #[doc = " Screen text (text_width × text_height), in some 8-bit ASCII\nsuperset (we assume CP437)."] - pub text: bytes_t, - #[doc = " Text screen size in character cells."] - pub rows: ::std::os::raw::c_int, - #[doc = " Text screen size in character cells."] - pub columns: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_width: ::std::os::raw::c_int, - #[doc = " Text cell size in pixels."] - pub font_height: ::std::os::raw::c_int, - #[doc = " Length of each line (text_height elements), beyond which there\nis only empty space. Each element is in [0, columns]."] - pub line_lengths: bytes_t, -} -#[test] -fn bindgen_test_layout_gfx_console_screen_text_t() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_screen_text_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rows) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(rows) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).columns) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(columns) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).font_height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(font_height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).line_lengths) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_screen_text_t), - "::", - stringify!(line_lengths) - ) - ); -} -impl Default for gfx_console_screen_text_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type gfx_console_backend_interface_t = gfx_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gfx_console_backend_interface { - #[doc = " Indicate to the backend that a key has been pressed or released."] - pub kbd_event: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, code: sim_key_t, down: bool), - >, - #[doc = " Indicate to the backend that the mouse state has changed.\n(x, y) are in screen coordinates (pixels).\nz is the mouse wheel: 1 if the wheel has rolled upwards, -1 for\ndownwards, 0 for no change.\n'buttons' is the current button state."] - pub mouse_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - x: ::std::os::raw::c_int, - y: ::std::os::raw::c_int, - z: ::std::os::raw::c_int, - buttons: gfx_console_mouse_button_t, - ), - >, - #[doc = " Request that the backend should refresh the whole console screen.\n Shortly after this call, the frontend can expect a call to\n gfx_console_frontend.set_contents, updating the whole screen."] - pub request_refresh: ::std::option::Option, - #[doc = " Indicate to the backend whether the frontend is visible, e.g. if\n the console window is hidden by other windows or minimised.\n If the frontend is invisible, the backend may choose not to call\n gfx_console_frontend.set_contents."] - pub set_visible: - ::std::option::Option, - #[doc = " Obtain VGA text data from console backend. If the console is not in\n VGA text mode, the result is undefined."] - pub text_data: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> gfx_console_screen_text_t, - >, - #[doc = " Inform the backed that the grab mode keys were pressed."] - pub got_grab_keys: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gfx_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gfx_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).kbd_event) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(kbd_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mouse_event) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(mouse_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request_refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(request_refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_visible) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(set_visible) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_data) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(text_data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).got_grab_keys) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(gfx_console_backend_interface), - "::", - stringify!(got_grab_keys) - ) - ); -} -pub const winsome_update_type_t_Winsome_Update_Nothing: winsome_update_type_t = 0; -pub const winsome_update_type_t_Winsome_Update_Text_Cursor: winsome_update_type_t = 1; -pub const winsome_update_type_t_Winsome_Update_Append: winsome_update_type_t = 2; -pub const winsome_update_type_t_Winsome_Update_Refresh: winsome_update_type_t = 3; -pub const winsome_update_type_t_Winsome_Update_Gfx: winsome_update_type_t = 4; -pub const winsome_update_type_t_Winsome_Update_Resize: winsome_update_type_t = 5; -pub const winsome_update_type_t_Winsome_Update_Activity: winsome_update_type_t = 6; -#[doc = " Possible update messages that can be sent to Winsome in a winsome_update_t."] -pub type winsome_update_type_t = ::std::os::raw::c_uint; -#[doc = " Main structure for sending console updates to the Winsome GUI.\nThis is converted to a Python tuple with data corresponding to the\ndifferent parts of the union. Data buffers such as screen and attribute data\nare converted to Python strings."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct winsome_update_t { - #[doc = " Indicates which part of the union is used."] - pub type_: winsome_update_type_t, - pub u: winsome_update_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union winsome_update_t__bindgen_ty_1 { - pub text: winsome_update_t__bindgen_ty_1__bindgen_ty_1, - pub sb: winsome_update_t__bindgen_ty_1__bindgen_ty_2, - pub refresh: winsome_update_t__bindgen_ty_1__bindgen_ty_3, - pub resize: winsome_update_t__bindgen_ty_1__bindgen_ty_4, - pub gfx: winsome_update_t__bindgen_ty_1__bindgen_ty_5, -} -#[doc = " Data for a message containing text console screen update\nand cursor movement. This corresponds to calls to\nset_contents and set_cursor_pos in text_console_frontend,\naccumulated in the obvious way: take the bounding box of\nthe updated rectangles and the last cursor position."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - #[doc = " Heap-allocated contents of new screen rectangle.\n Each array has\n (right - left + 1) * (bottom - top + 1)\n elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Coordinates on screen of new data."] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console append and cursor\nmovement. This corresponds to calls to append_text and\nset_cursor_pos in text_console_frontend, accumulated in the\nobvious way: append the text lines and take the last cursor\nposition."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - #[doc = " Number of lines to append."] - pub num_lines: uint64, - #[doc = " Pointers to start of text at new lines."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Length of buffers in characters."] - pub text_len: uint64, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_lines) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(num_lines) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_len) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(text_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen refresh.\nThis corresponds to calls to refresh_screen\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - #[doc = " Heap-allocated contents of visible screen rectangle.\n Each array has width * height elements."] - pub text: *mut ::std::os::raw::c_char, - pub attrib: *mut text_console_attrib_t, - #[doc = " Heap-allocated contents of scrollback.\n Each array has width * sb_size elements."] - pub sb_text: *mut ::std::os::raw::c_char, - pub sb_attrib: *mut text_console_attrib_t, - #[doc = " Screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Number of scrollback lines."] - pub sb_size: ::std::os::raw::c_int, - #[doc = " New cursor position."] - pub cursor_x: ::std::os::raw::c_int, - pub cursor_y: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attrib) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_text) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_attrib) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_attrib) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(sb_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_x) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_x) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cursor_y) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(cursor_y) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_3 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Data for a message containing text console screen resize.\nThis corresponds to calls to set_size\nin text_console_frontend."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_4 { - #[doc = " New screen size."] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(height) - ) - ); -} -#[doc = " Data for a message containing graphics console updates.\nThis corresponds to calls to set_contents in\ngfx_console_frontend, accumulated in the\nobvious way: take the bounding box of the updated\nrectangles."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - #[doc = " New pixels for the dirty rectangle (owned)."] - pub data: *mut uint32, - #[doc = " Dirty rectangle"] - pub left: ::std::os::raw::c_int, - pub right: ::std::os::raw::c_int, - pub top: ::std::os::raw::c_int, - pub bottom: ::std::os::raw::c_int, - #[doc = " Current/new screen size"] - pub width: ::std::os::raw::c_int, - pub height: ::std::os::raw::c_int, - #[doc = " Are we currently in VGA text mode?"] - pub text_mode: bool, -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1__bindgen_ty_5() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!( - "Size of: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(left) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(right) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).top) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(top) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).bottom) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(bottom) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(width) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).height) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(height) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text_mode) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1__bindgen_ty_5), - "::", - stringify!(text_mode) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1__bindgen_ty_5 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sb) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(sb) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t__bindgen_ty_1), - "::", - stringify!(gfx) - ) - ); -} -impl Default for winsome_update_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_winsome_update_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(winsome_update_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_update_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_update_t), - "::", - stringify!(u) - ) - ); -} -impl Default for winsome_update_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type winsome_console_interface_t = winsome_console_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct winsome_console_interface { - pub gfx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - data: bytes_t, - text_mode: bool, - ), - >, - pub resize: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ), - >, - pub refresh: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - text: bytes_t, - attrib: bytes_t, - sb_text: bytes_t, - sb_attrib: bytes_t, - sb_size: ::std::os::raw::c_int, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub append: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - num_lines: uint64, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub text: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - console: *mut lang_void, - left: ::std::os::raw::c_int, - right: ::std::os::raw::c_int, - top: ::std::os::raw::c_int, - bottom: ::std::os::raw::c_int, - text: bytes_t, - attrib: bytes_t, - cursor_x: ::std::os::raw::c_int, - cursor_y: ::std::os::raw::c_int, - ), - >, - pub activity: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_winsome_console_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(winsome_console_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(winsome_console_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gfx) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(gfx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).resize) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(resize) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).refresh) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(refresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).append) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(append) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(text) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activity) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(winsome_console_interface), - "::", - stringify!(activity) - ) - ); -} -pub type gui_console_backend_interface_t = gui_console_backend_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct gui_console_backend_interface { - pub start: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, console: *mut lang_void), - >, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_gui_console_backend_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(gui_console_backend_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(gui_console_backend_interface), - "::", - stringify!(stop) - ) - ); -} -extern "C" { - pub fn VT_get_hide_consoles_flag() -> ::std::os::raw::c_int; -} -pub type debug_cancel_id_t = uint64; -pub const debugger_error_t_Debugger_No_Error: debugger_error_t = 0; -pub const debugger_error_t_Debugger_Not_Allowed_In_Execution_Context: debugger_error_t = 1; -pub const debugger_error_t_Debugger_Unknown_Context: debugger_error_t = 2; -pub const debugger_error_t_Debugger_Not_Supported_For_Context: debugger_error_t = 3; -pub const debugger_error_t_Debugger_Context_Does_Not_Have_State: debugger_error_t = 4; -pub const debugger_error_t_Debugger_Context_Is_Not_Active: debugger_error_t = 5; -pub const debugger_error_t_Debugger_Lookup_Failure: debugger_error_t = 6; -pub const debugger_error_t_Debugger_Failed_To_Get_Stack_Frame: debugger_error_t = 7; -pub const debugger_error_t_Debugger_Failed_To_Get_PC: debugger_error_t = 8; -pub const debugger_error_t_Debugger_Failed_To_Read: debugger_error_t = 9; -pub const debugger_error_t_Debugger_Failed_To_Write: debugger_error_t = 10; -pub const debugger_error_t_Debugger_Frame_Outside_Of_Known_Stack: debugger_error_t = 11; -pub const debugger_error_t_Debugger_Failed_To_Evaluate_Expression: debugger_error_t = 12; -pub const debugger_error_t_Debugger_Incorrect_Type: debugger_error_t = 13; -pub const debugger_error_t_Debugger_Incorrect_Size: debugger_error_t = 14; -pub const debugger_error_t_Debugger_Incorrect_Context_Query: debugger_error_t = 15; -pub const debugger_error_t_Debugger_Unknown_Id: debugger_error_t = 16; -pub const debugger_error_t_Debugger_Source_Not_Found: debugger_error_t = 17; -pub const debugger_error_t_Debugger_File_Not_Found: debugger_error_t = 18; -pub const debugger_error_t_Debugger_Unrecognized_File_Format: debugger_error_t = 19; -pub const debugger_error_t_Debugger_Unsupported_For_File_Format: debugger_error_t = 20; -pub const debugger_error_t_Debugger_Failed_To_Open_File: debugger_error_t = 21; -pub const debugger_error_t_Debugger_Not_Relocatable: debugger_error_t = 22; -pub const debugger_error_t_Debugger_Segment_Info_Missing: debugger_error_t = 23; -pub const debugger_error_t_Debugger_Section_Info_Missing: debugger_error_t = 24; -pub const debugger_error_t_Debugger_Segment_Not_Found: debugger_error_t = 25; -pub const debugger_error_t_Debugger_Section_Not_Found: debugger_error_t = 26; -pub const debugger_error_t_Debugger_Already_Running: debugger_error_t = 27; -pub const debugger_error_t_Debugger_Failed_To_Continue: debugger_error_t = 28; -pub const debugger_error_t_Debugger_No_Context_For_Object: debugger_error_t = 29; -pub const debugger_error_t_Debugger_Invalid_Path: debugger_error_t = 30; -pub const debugger_error_t_Debugger_Missing_Object: debugger_error_t = 31; -pub const debugger_error_t_Debugger_Unexpected_Error: debugger_error_t = 32; -pub const debugger_error_t_Debugger_Step_Interrupted: debugger_error_t = 33; -#[doc = " \n\n"] -pub type debugger_error_t = ::std::os::raw::c_uint; -pub type debug_notification_interface_t = debug_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_notification_interface { - pub notify_context_creation: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - updated: bool, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_context_destruction: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_location: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - location: *const ::std::os::raw::c_char, - size: ::std::os::raw::c_uint, - access: access_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - access: access_t, - physical: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_line: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - file: *const ::std::os::raw::c_char, - line: ::std::os::raw::c_uint, - column: ::std::os::raw::c_uint, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - instruction_address: uint64, - data_address: uint64, - size: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_activated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_deactivated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - cpu: *mut conf_object_t, - ), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cid: debug_cancel_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(debug_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_notification_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_creation) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_creation) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_context_destruction) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_context_destruction) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_location) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_location) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_address) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_line) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_line) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_activated) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_activated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_deactivated) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_deactivated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_notification_interface), - "::", - stringify!(cancel) - ) - ); -} -#[doc = " \ndebug_setup_interface_t\ndebug_setup_interface_t\n\nFunctions in the debug_setup interfaces are used to provide\nthe debugger with symbol files and paths. There are also functions for\nlisting what symbol files and paths have been added.\n\n\n\nUpon success, all functions for adding symbols will return an id\nthat can be used with remove_symbol_file.\n\nadd_symbol_file!debug_setup interface method\nadd_symbol_file adds a symbol file, symbol_file, used\nfor debugging contexts that match the context-query query. The\naddress argument specifies the address that the file should be\nmapped to. If absolute_address is set then the given\naddress will be the absolute address of the first relocatable\nsegment and other segments will be added with their given offsets to that\nsegment.\n\nErrors specific to this function:\n\n
    \n\n
  • Debugger_Failed_To_Open_File - File cannot be opened.
  • \n\n
  • Debugger_Unrecognized_File_Format - The file format is not\nrecognized.
  • \n\n
  • Debugger_Segment_Info_Missing - If an ELF file is being added,\nbut no valid segments can be found.
  • \n\n
\n\nadd_symbol_segment!debug_setup interface method\nadd_symbol_segment adds symbols from the specified\nsegment of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the segment is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that segment.\n\nErrors specific to this function:
    \n\n
  • Debugger_Segment_Not_Found - Segment not found when adding a\nsegment.
  • \n\n
  • Debugger_Segment_Info_Missing - Segment information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The segment is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nadd_symbol_section!debug_setup interface method\nadd_symbol_section adds symbols from the specified\nsection of an ELF symbol file. Other arguments are the same as\nfor add_symbol_file. The address of the section is specified with\nthe address argument. If absolute_address is set this\naddress will be an absolute address otherwise it will be an\noffset to the address found in the symbol file for that section.\n\nErrors specific to this function:
    \n\n
  • Debugger_Section_Not_Found - Section not found when adding a\nsection.
  • \n\n
  • Debugger_Section_Info_Missing - Section information is missing\nor incomplete.
  • \n\n
  • Debugger_Not_Relocatable - The section is not relocatable.
  • \n\n
  • Debugger_Unsupported_For_File_Format - File format is not\nELF.
  • \n\n
\n\nAdding the same symbol file, section or segment more than once might\nresult in unexpected behavior and is not supported.\n\nremove_symbol_file!debug_setup interface method\nremove_symbol_file removes the debugger's knowledge of symbols\nthat was added with any of the functions for adding symbols. The\nid argument is the id returned from the add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The id is unknown.
  • \n\n
\n\nclear_symbol_files!debug_setup interface method\nclear_symbol_files removes the debugger's knowledge about all\nsymbol files added by add_symbol_file.\n\nsymbol_files!debug_setup interface method symbol_files\nlists all added symbol files. A dictionary, with id as key will be\nreturned. An id is always bound to one query and one symbol file, but it can\ncontain several memory maps. The listed id is the argument passed\nto remove_symbol_file. The dictionary values have the following\nformat:\n\n
    \n\n
  • query (string) - The context query the symbol is\nvalid for.
  • \n\n
  • relocation (uint64) - The relocation address\nprovided when the symbol file was added.
  • \n\n
  • symbol-file (string) - The file containing the\nsymbol information.
  • \n\n
  • memory-maps ([<dict>, ...]) - A list of\nmemory maps that are added togheter as the same id, see format\nbelow:
  • \n\n
\n\nThe dictionary describing a memory map has the following format:\n
    \n\n
  • address (uint64) - The address of the section in\nmemory.
  • \n\n
  • size (uint64) - The section size in memory.
  • \n\n
  • flags (uint64) - Format specific flags describing\nthe section.
  • \n\n
  • section (string) - The name of the section.
  • \n\n
  • file-offset (uint64) - Offset in symbol file for\nthe section.
  • \n\n
  • file-size (uint64) - Size of the section in the\nsymbol file.
  • \n\n
\n\nsymbol_files_for_ctx!debug_setup interface method\nsymbol_files_for_ctx is the same as symbol_files\nexcept that it only returns symbol files that are valid for the given\ncontext id, ctx_id.\n\nlist_all_mappings!debug_setup interface method\nlist_all_mappings lists all symbol mappings for a certain context\nctx_id. This will be all mappings from symbol files added by\nusers plus any symbol mappings added elsewhere, from trackers for example.\nThe returned value is a dictionary on the following format:\n\n
    \n\n
  • filename (string) - The file backing the memory\nmap.
  • \n\n
  • query (string) - The query the map is valid\nfor.
  • \n\n
  • address (uint64) - The map's address in context\nmemory.
  • \n\n
  • size (uint64) - The size of the map in\nmemory.
  • \n\n
  • flags (uint64) - Read, write, and execute flags,\nbit 0 is set if readable, bit 1 if writeable and bit 2 if executable. If this\nvalue is 0 this is the same as if all flags are set.
  • \n\n
  • section-name (string) - The section name, or\nNIL.
  • \n\n
  • file-offset (int64) - Offset into the backing\nfile.
  • \n\n
  • file-size (uint64) - Size of the map in the\nbacking file.
  • \n\n
  • relocation (uint64) - The offset from the address\nin the symbol file to where the mappings is actually loaded in memory. This\nis not always present in the dictionary.
  • \n\n
\n\nSome other internal entries could possibly also be present in the\ndictionary.\n\n\nadd_path_map_entry!debug_setup interface method\nadd_path_map_entry adds a path math entry that maps a source\nfile from the source in the symbol file to the actual\ndestination, dest, where it is located on disk. The\nquery argument specifies for which context-queries the mapping\nshould apply. The returned id can be used with\nremove_path_map_entry to remove the added path map. The source\npath may not be empty or be just \".\" or \"./\".\n\nErrors specific to this function:
    \n\n
  • Debugger_Invalid_Path - The source path is not valid.
  • \n\n
\n\nremove_path_map_entry!debug_setup interface method\nremove_path_map_entry removes an entry that was added with\nadd_path_map_entry. The id is the value returned from\nthe add function.\n\nErrors specific to this function:
    \n\n
  • Debugger_Unknown_Id - The provided id is\nunknown.
  • \n\n
\n\nclear_path_map_entries!debug_setup interface method\nclear_path_map_entries removes all knowledge about all path map\nentries added with add_path_map_entry.\n\npath_map_entries!debug_setup interface method\npath_map_entries lists all path map entries that have been added\nwith add_path_map_entry, that matches the given context id. If\nthe context id is nil, then all path maps will be listed. The format of the\nentries in the returned list are dictionaries, with an id of type\ndebug_setup_id_t as key:\n\n
    \n\n
  • query (string) - The context query the path map\nis valid for.
  • \n\n
  • source (string) - The source to translate\nfrom.
  • \n\n
  • destination (string) - The destination to\ntranslate to.
  • \n\n
\n\npath_map_entries_for_ctx!debug_setup interface method\npath_map_entries_for_ctx is the same as\npath_map_entries except that it only lists path maps that are\nvalid for the given context id, ctx_id.\n\n\napply_path_map!debug_setup interface method\napply_path_map applies any added path map to a file path,\nfilename, for a given context with ID ctx_id. The path\nwith the path map applied will be returned. The path map will only apply if\nthe destination file exists and if the path given in filename\ndoes not, otherwise the provided file will be returned. The returned path\nwill always contain forward slashes as path separator, regardless of what\nthe host system uses, or if any path map was applied or not.\n\nFor functions that take query as argument, having this set\nto nil will work the same way as for \"*\". A bad context query will\nresult in a Debugger_Incorrect_Context_Query error.\n\n\n
\n\n\nGlobal Context for all methods.\n"] -pub type debug_setup_id_t = int64; -pub type debug_setup_interface_t = debug_setup_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_setup_interface { - pub add_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_segment: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - segment: ::std::os::raw::c_uint, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub add_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - symbol_file: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub remove_symbol_file: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_symbol_files: ::std::option::Option, - pub symbol_files: - ::std::option::Option attr_value_t>, - pub symbol_files_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_all_mappings: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub add_path_map_entry: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - source: *const ::std::os::raw::c_char, - dest: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub remove_path_map_entry: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: debug_setup_id_t) -> attr_value_t, - >, - pub clear_path_map_entries: - ::std::option::Option, - pub path_map_entries: - ::std::option::Option attr_value_t>, - pub path_map_entries_for_ctx: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub apply_path_map: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_setup_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(debug_setup_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_setup_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_segment) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_segment) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_symbol_section) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_symbol_section) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_symbol_file) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_symbol_files) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_files_for_ctx) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(symbol_files_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_all_mappings) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(list_all_mappings) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_path_map_entry) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(add_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_path_map_entry) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(remove_path_map_entry) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_path_map_entries) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(clear_path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).path_map_entries_for_ctx) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(path_map_entries_for_ctx) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).apply_path_map) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_setup_interface), - "::", - stringify!(apply_path_map) - ) - ); -} -pub type debug_query_interface_t = debug_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_query_interface { - pub matching_contexts: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - query: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_parent: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_context_children: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_group: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_id: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub query_for_context_tree: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_name: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_id_for_object: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, ctx_obj: *mut conf_object_t) -> attr_value_t, - >, - pub object_for_context: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub context_has_state: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub get_active_processor: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 96usize, - concat!("Size of: ", stringify!(debug_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_contexts) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(matching_contexts) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_group) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_parent) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_context_children) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_context_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_group) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_group) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_id) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).query_for_context_tree) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(query_for_context_tree) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_name) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_id_for_object) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_id_for_object) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).object_for_context) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(object_for_context) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).context_has_state) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(context_has_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_active_processor) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_query_interface), - "::", - stringify!(get_active_processor) - ) - ); -} -pub type debug_step_interface_t = debug_step_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_step_interface { - pub instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_into: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_instruction_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_over: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub reverse_out: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_step_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!("Size of: ", stringify!(debug_step_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_step_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_into) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).into) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).instruction_over) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).over) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).out) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(out) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_into) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_into) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_into) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_instruction_over) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_instruction_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_over) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_over) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reverse_out) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_step_interface), - "::", - stringify!(reverse_out) - ) - ); -} -pub type debug_symbol_interface_t = debug_symbol_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_interface { - pub address_source: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub source_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - filename: *const ::std::os::raw::c_char, - line: uint32, - column: uint32, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, code_area: attr_value_t), - >, - data: cbdata_register_t, - ) -> attr_value_t, - >, - pub address_symbol: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - ) -> attr_value_t, - >, - pub stack_depth: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub stack_frames: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - min: ::std::os::raw::c_int, - max: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub local_arguments: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub expression_value: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub expression_type: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - address_scope: uint64, - expr: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - type_: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub type_to_string: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, type_: attr_value_t) -> attr_value_t, - >, - pub symbol_address: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub address_string: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - maxlen: ::std::os::raw::c_int, - ) -> attr_value_t, - >, - pub lvalue_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - frame: int32, - symbol: *const ::std::os::raw::c_char, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_write: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - value: attr_value_t, - ) -> attr_value_t, - >, - pub address_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address: uint64, - size: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub struct_members: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub struct_field: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - address_scope: uint64, - struct_name: *const ::std::os::raw::c_char, - field: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_functions: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_global_variables: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub list_source_files: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 168usize, - concat!("Size of: ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source_address) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(source_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_symbol) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_symbol) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_depth) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_depth) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stack_frames) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(stack_frames) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_variables) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).local_arguments) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(local_arguments) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_value) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).expression_type) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(expression_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_info) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).type_to_string) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(type_to_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_address) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(symbol_address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_string) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_string) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).lvalue_write) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(lvalue_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_write) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_write) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address_read) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(address_read) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_members) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_members) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).struct_field) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(struct_field) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_functions) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_functions) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_global_variables) as usize - ptr as usize }, - 152usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_global_variables) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).list_source_files) as usize - ptr as usize }, - 160usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_interface), - "::", - stringify!(list_source_files) - ) - ); -} -pub type debug_symbol_file_interface_t = debug_symbol_file_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct debug_symbol_file_interface { - pub open_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, - pub close_symbol_file: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub symbol_file_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub sections_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub segments_info: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - ctx_id: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub open_symbol_section: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - filename: *const ::std::os::raw::c_char, - section: *const ::std::os::raw::c_char, - address: uint64, - absolute_address: bool, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_debug_symbol_file_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(debug_symbol_file_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_file) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).close_symbol_file) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(close_symbol_file) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).symbol_file_info) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(symbol_file_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections_info) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(sections_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).segments_info) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(segments_info) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).open_symbol_section) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(debug_symbol_file_interface), - "::", - stringify!(open_symbol_section) - ) - ); -} -#[doc = " "] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disasm_instr_t { - #[doc = " Where the instructions starts in the buffer"] - pub start: ::std::os::raw::c_int, - #[doc = " Length of instruction, or -1 if incomplete"] - pub length: ::std::os::raw::c_int, - #[doc = " Disassembly string (allocated)"] - pub string: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_disasm_instr_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disasm_instr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disasm_instr_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).string) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disasm_instr_t), - "::", - stringify!(string) - ) - ); -} -impl Default for disasm_instr_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type disassemble_interface_t = disassemble_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct disassemble_interface { - #[doc = " Set up new block to disassemble"] - pub init: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - buff: *mut uint8, - buff_len: ::std::os::raw::c_int, - address: uint64, - ), - >, - #[doc = " Disassemble the next instruction"] - pub next: - ::std::option::Option disasm_instr_t>, -} -#[test] -fn bindgen_test_layout_disassemble_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(disassemble_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(disassemble_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(init) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(disassemble_interface), - "::", - stringify!(next) - ) - ); -} -pub type instrumentation_filter_slave_interface_t = instrumentation_filter_slave_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_slave_interface { - pub disable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub enable: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_slave_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_slave_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_slave_interface), - "::", - stringify!(enable) - ) - ); -} -pub type instrumentation_filter_status_interface_t = instrumentation_filter_status_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_status_interface { - pub get_disabled_sources: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_status_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_status_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_disabled_sources) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_status_interface), - "::", - stringify!(get_disabled_sources) - ) - ); -} -pub type instrumentation_filter_master_interface_t = instrumentation_filter_master_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_filter_master_interface { - pub set_source_id: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, source_id: ::std::os::raw::c_uint), - >, - pub add_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ) -> bool, - >, - pub remove_slave: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - slave: *mut conf_object_t, - provider_obj: *mut conf_object_t, - ), - >, - pub short_filter_config: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> *mut ::std::os::raw::c_char, - >, -} -#[test] -fn bindgen_test_layout_instrumentation_filter_master_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_filter_master_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_source_id) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(set_source_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_slave) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(add_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_slave) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(remove_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).short_filter_config) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_filter_master_interface), - "::", - stringify!(short_filter_config) - ) - ); -} -pub type instrumentation_tool_interface_t = instrumentation_tool_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_tool_interface { - pub connect: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - provider: *mut conf_object_t, - args: attr_value_t, - ) -> *mut conf_object_t, - >, - pub disconnect: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, conn_obj: *mut conf_object_t), - >, -} -#[test] -fn bindgen_test_layout_instrumentation_tool_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(instrumentation_tool_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).connect) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(connect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disconnect) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_tool_interface), - "::", - stringify!(disconnect) - ) - ); -} -pub type instrumentation_connection_interface_t = instrumentation_connection_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct instrumentation_connection_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_instrumentation_connection_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(instrumentation_connection_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(instrumentation_connection_interface), - "::", - stringify!(disable) - ) - ); -} -pub type cancel_id_t = uint64; -pub type entity_id_t = uint64; -pub type node_id_t = uint64; -pub type transaction_id_t = uint64; -pub type request_id_t = uint64; -pub const cancel_id_error_t_Cancel_Error_ID: cancel_id_error_t = 0; -pub type cancel_id_error_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct maybe_node_id { - pub valid: bool, - pub id: node_id_t, -} -#[test] -fn bindgen_test_layout_maybe_node_id() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(maybe_node_id)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(maybe_node_id)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).valid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(valid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(maybe_node_id), - "::", - stringify!(id) - ) - ); -} -pub type maybe_node_id_t = maybe_node_id; -pub type osa_component_interface_t = osa_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_component_interface { - pub get_admin: - ::std::option::Option *mut conf_object_t>, - pub get_root_node: - ::std::option::Option maybe_node_id_t>, - pub notify_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub has_tracker: ::std::option::Option bool>, - pub get_processors: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(osa_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_admin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_admin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_root_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_tracker) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(notify_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_tracker) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(has_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_processors) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_component_interface), - "::", - stringify!(get_processors) - ) - ); -} -pub const request_id_error_t_OSA_Request_Error_ID: request_id_error_t = 0; -pub type request_id_error_t = ::std::os::raw::c_uint; -pub type osa_control_interface_t = osa_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> request_id_t, - >, - pub release: - ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_interface), - "::", - stringify!(release) - ) - ); -} -pub type osa_control_v2_interface_t = osa_control_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_control_v2_interface { - pub request: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub release: - ::std::option::Option, - pub clear_state: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_osa_control_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_control_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).request) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(request) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(release) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_control_v2_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_node_tree_query_interface_t = osa_node_tree_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_query_interface { - pub get_root_nodes: - ::std::option::Option attr_value_t>, - pub get_node: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_current_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - base_id: node_id_t, - cpu: *mut conf_object_t, - ) -> attr_value_t, - >, - pub get_current_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_all_processors: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, - pub get_parent: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_children: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, - pub get_formatted_properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: uint64) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 72usize, - concat!("Size of: ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_root_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_root_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_node) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_node) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_nodes) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_current_processors) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_current_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_mapper) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_children) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_children) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_formatted_properties) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_query_interface), - "::", - stringify!(get_formatted_properties) - ) - ); -} -pub type osa_node_tree_notification_interface_t = osa_node_tree_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_notification_interface { - pub notify_create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_destroy: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_property_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - old_val: attr_value_t, - new_val: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_from: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_cpu_move_to: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_path: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - recursive: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - obj: *mut conf_object_t, - cpu: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_enable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_disable: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel_notify: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cancel_id: cancel_id_t), - >, - pub notify_callbacks_done: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: uint64, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, obj: *mut conf_object_t), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 80usize, - concat!( - "Size of: ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_node_tree_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_create) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_destroy) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_destroy) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_property_change) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_property_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_from) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_from) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_cpu_move_to) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_cpu_move_to) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_event) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_enable) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_disable) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel_notify) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(cancel_notify) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_callbacks_done) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_notification_interface), - "::", - stringify!(notify_callbacks_done) - ) - ); -} -pub type osa_node_path_interface_t = osa_node_path_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_path_interface { - pub matching_nodes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - root_id: node_id_t, - node_path_pattern: attr_value_t, - ) -> attr_value_t, - >, - pub node_path: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_node_path_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_path_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).matching_nodes) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(matching_nodes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).node_path) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_path_interface), - "::", - stringify!(node_path) - ) - ); -} -pub const osa_read_len_t_OSA_Read_One_Byte: osa_read_len_t = 1; -pub const osa_read_len_t_OSA_Read_Two_Byte: osa_read_len_t = 2; -pub const osa_read_len_t_OSA_Read_Four_Byte: osa_read_len_t = 4; -pub const osa_read_len_t_OSA_Read_Eight_Byte: osa_read_len_t = 8; -#[doc = " \nosa_machine_notification_interface_t\nosa_machine_notification_interface_t\n\nnotify_mode_change!osa_machine_notification interface method\nnotify_mode_change registers a callback function that will be\ncalled when processor cpu changes processor mode. The\ncallback function will be called with the processor that changed mode\ncpu, the mode previous to the change old_mode and\nthe mode after the change new_mode.\n\nnotify_exception!osa_machine_notification interface method\nnotify_exception registers a callback function that will be\ncalled when processor cpu takes an exception with exception\nnumber exc_num. The callback function cb will be\ncalled with the processor cpu causing the exception and\nexception number exc_num of that exception.\n\nnotify_control_reg!osa_machine_notification interface method\nnotify_control_reg registers a callback function that will be\ncalled when a control register, with register number reg_num, in\nprocessor cpu is updated. The callback function cb\nwill be called with the processor cpu, register number\nreg_num and the written register value (see\nCore_Control_Register_Write documentation for more details) as\narguments. The register number for a certain register can be retrieved with\nthe get_register_number function.\n\nnotify_control_reg_read!osa_machine_notification interface method\nnotify_control_reg_read registers a callback function that will\nbe called when a control register, with register number reg_num,\nin processor cpu is read. The callback function cb\nwill be called with the processor cpu and register number\nreg_num as arguments. The register number for a certain register\ncan be retrieved with the get_register_number function.\n\nnotify_exec_breakpoint!osa_machine_notification interface method\nnotify_exec_breakpoint,\nnotify_read_breakpoint!osa_machine_notification interface method\nnotify_read_breakpoint and\nnotify_write_breakpoint!osa_machine_notification interface method\nnotify_write_breakpoint plant breakpoints of length\nlen for processor cpu on address.\nThe breakpoint is of type execution, read, write respectively. The\nvirt argument specifies if address is a virtual\nor physical address. The callback function cb is called when\nthe breakpoint is hit.\nThe arguments of the callback functions are the processor that the\nbreakpoint hit on cpu and the address\n(virtual or physical depending on what the breakpoint was registered as)\nthat was hit.\nCallbacks functions for notify_read_breakpoint and\nnotify_write_breakpoint also gets the access size len\nof the read or write.\nThe callback function for notify_write_breakpoint additionally\nhas the previous value old_val at the address written and the new\nvalue new_val that is being written passed as arguments. Reading\nthe actual memory from the callback will result in reading the new value that\nhas been written as the callback is called after the write is done.\nOn x86 virtual breakpoints use linear addresses (as opposed to logical\naddresses).\n\nFor all functions, the tracker argument should be the tracker\ncalling this interface. This makes it possible for a hypervisor tracker to\nhandle guests differently.\n\nAll methods that register a notification callback take data as an\nargument which will be passed on to callback function. These methods return\na cancel ID to be used with the cancel method to cancel the\ncallback. A returned value of 0 means that an error occurred and no callback\nwas registered, in which case the caller is responsible for freeing the\ncallback data.\n\ncancel!osa_machine_notification interface method\ncancel cancels the callback function with ID cancel_id\nand will free the callback data associated with the\nnotification. This ID will have been returned from the function that\nregistered the callback.\n\n\n\n\n\nCell Context for all methods.\n"] -pub type osa_read_len_t = ::std::os::raw::c_uint; -pub type osa_machine_notification_interface_t = osa_machine_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_notification_interface { - pub notify_mode_change: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - old_mode: processor_mode_t, - new_mode: processor_mode_t, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exception: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - exc_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_control_reg: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - value: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_exec_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: uint64, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn(data: cbdata_call_t, cpu: *mut conf_object_t, address: uint64), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_read_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub notify_write_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - virt: bool, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - address: uint64, - len: ::std::os::raw::c_uint, - old_val: uint64, - new_val: uint64, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, - pub cancel: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cancel_id: cancel_id_t, - ), - >, - pub notify_control_reg_read: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - cb: ::std::option::Option< - unsafe extern "C" fn( - data: cbdata_call_t, - cpu: *mut conf_object_t, - reg_num: ::std::os::raw::c_int, - ), - >, - data: cbdata_register_t, - ) -> cancel_id_t, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_notification_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_machine_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_mode_change) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_mode_change) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exception) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exception) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_exec_breakpoint) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_exec_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_read_breakpoint) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_read_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_write_breakpoint) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_write_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cancel) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(cancel) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).notify_control_reg_read) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_notification_interface), - "::", - stringify!(notify_control_reg_read) - ) - ); -} -pub type osa_machine_query_interface_t = osa_machine_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_machine_query_interface { - pub read_register: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: ::std::os::raw::c_int, - ) -> uint64, - >, - pub get_register_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - reg: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, - pub read_phys_memory: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - addr: physical_address_t, - len: osa_read_len_t, - ) -> attr_value_t, - >, - pub read_phys_bytes: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - paddr: physical_address_t, - len: ::std::os::raw::c_uint, - ) -> attr_value_t, - >, - pub virtual_to_physical: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - vaddr: uint64, - ) -> attr_value_t, - >, - pub cpu_mode: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - ) -> processor_mode_t, - >, - pub get_all_processors: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_exception_number: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - cpu: *mut conf_object_t, - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_osa_machine_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_machine_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_register) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_register) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_register_number) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_register_number) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_memory) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_memory) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).read_phys_bytes) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(read_phys_bytes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_to_physical) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(virtual_to_physical) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cpu_mode) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(cpu_mode) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_all_processors) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_all_processors) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_exception_number) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_machine_query_interface), - "::", - stringify!(get_exception_number) - ) - ); -} -pub type osa_mapper_admin_interface_t = osa_mapper_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_admin_interface { - pub tracker_updated: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - changeset: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tracker_updated) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_admin_interface), - "::", - stringify!(tracker_updated) - ) - ); -} -pub type osa_mapper_control_interface_t = osa_mapper_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_mapper_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_control_interface), - "::", - stringify!(clear_state) - ) - ); -} -pub type osa_mapper_query_interface_t = osa_mapper_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_mapper_query_interface { - pub get_process_list: - ::std::option::Option attr_value_t>, - pub get_mapper: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t) -> *mut conf_object_t, - >, -} -#[test] -fn bindgen_test_layout_osa_mapper_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_mapper_query_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_process_list) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_process_list) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_mapper_query_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_node_tree_admin_interface_t = osa_node_tree_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_node_tree_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, transaction_id: transaction_id_t), - >, - pub create: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - parent_id: node_id_t, - props: attr_value_t, - ) -> node_id_t, - >, - pub update: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub remove: - ::std::option::Option, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, - pub activate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub deactivate: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, cpu: *mut conf_object_t), - >, - pub register_formatter: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - recursive: bool, - formatter: ::std::option::Option< - unsafe extern "C" fn(val: attr_value_t) -> attr_value_t, - >, - ) -> cancel_id_t, - >, - pub unregister_formatter: - ::std::option::Option, - pub reset: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, node_id: node_id_t, props: attr_value_t), - >, - pub set_property: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - node_id: node_id_t, - key: *const ::std::os::raw::c_char, - value: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_node_tree_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_node_tree_admin_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).create) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(create) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(event) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).activate) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(activate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).deactivate) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(deactivate) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).register_formatter) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(register_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unregister_formatter) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(unregister_formatter) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reset) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(reset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_property) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(osa_node_tree_admin_interface), - "::", - stringify!(set_property) - ) - ); -} -pub type osa_parameters_interface_t = osa_parameters_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_parameters_interface { - pub get_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, include_children: bool) -> attr_value_t, - >, - pub set_parameters: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, parameters: attr_value_t) -> attr_value_t, - >, - pub is_kind_supported: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, kind: *const ::std::os::raw::c_char) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_parameters_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_parameters_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_parameters) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(get_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_parameters) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(set_parameters) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is_kind_supported) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_parameters_interface), - "::", - stringify!(is_kind_supported) - ) - ); -} -pub type osa_tracker_component_interface_t = osa_tracker_component_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_component_interface { - pub get_tracker: - ::std::option::Option *mut conf_object_t>, - pub get_mapper: - ::std::option::Option *mut conf_object_t>, -} -#[test] -fn bindgen_test_layout_osa_tracker_component_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_component_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_mapper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_component_interface), - "::", - stringify!(get_mapper) - ) - ); -} -pub type osa_tracker_state_admin_interface_t = osa_tracker_state_admin_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_admin_interface { - pub begin: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - initiator: *mut conf_object_t, - ) -> transaction_id_t, - >, - pub end: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, txid: transaction_id_t), - >, - pub add: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub remove: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, entity_id: entity_id_t), - >, - pub remove_all: ::std::option::Option, - pub set_attribute: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - key: *const ::std::os::raw::c_char, - val: attr_value_t, - ), - >, - pub update: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - attributes: attr_value_t, - ), - >, - pub event: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - entity_id: entity_id_t, - event_name: *const ::std::os::raw::c_char, - event_data: attr_value_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_admin_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 64usize, - concat!("Size of: ", stringify!(osa_tracker_state_admin_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_admin_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).begin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(begin) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(add) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_all) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(remove_all) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set_attribute) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(set_attribute) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).update) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(update) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).event) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_admin_interface), - "::", - stringify!(event) - ) - ); -} -pub type osa_tracker_state_notification_interface_t = osa_tracker_state_notification_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_notification_interface { - pub subscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, - pub unsubscribe_tracker: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - mapper: *mut conf_object_t, - tracker: *mut conf_object_t, - ), - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_notification_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_notification_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe_tracker) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(subscribe_tracker) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe_tracker) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_notification_interface), - "::", - stringify!(unsubscribe_tracker) - ) - ); -} -pub type osa_tracker_state_query_interface_t = osa_tracker_state_query_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_state_query_interface { - pub get_trackers: - ::std::option::Option attr_value_t>, - pub get_entities: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, tracker: *mut conf_object_t) -> attr_value_t, - >, - pub get_entity: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - tracker: *mut conf_object_t, - id: entity_id_t, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_state_query_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(osa_tracker_state_query_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(osa_tracker_state_query_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_trackers) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_trackers) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entities) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entities) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_entity) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_state_query_interface), - "::", - stringify!(get_entity) - ) - ); -} -pub type osa_tracker_control_interface_t = osa_tracker_control_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_tracker_control_interface { - pub disable: ::std::option::Option, - pub enable: ::std::option::Option bool>, - pub clear_state: ::std::option::Option, - pub add_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, - pub remove_processor: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, cpu: *mut conf_object_t) -> bool, - >, -} -#[test] -fn bindgen_test_layout_osa_tracker_control_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_tracker_control_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).clear_state) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(clear_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_processor) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(add_processor) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_processor) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(osa_tracker_control_interface), - "::", - stringify!(remove_processor) - ) - ); -} -pub type osa_micro_checkpoint_interface_t = osa_micro_checkpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osa_micro_checkpoint_interface { - pub started: ::std::option::Option, - pub finished: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_osa_micro_checkpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(osa_micro_checkpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).started) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(started) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).finished) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(osa_micro_checkpoint_interface), - "::", - stringify!(finished) - ) - ); -} -pub type preference_interface_t = preference_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct preference_interface { - pub get_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ) -> attr_value_t, - >, - pub set_preference_for_module_key: ::std::option::Option< - unsafe extern "C" fn( - prefs: *mut conf_object_t, - value: attr_value_t, - module: *const ::std::os::raw::c_char, - key: *const ::std::os::raw::c_char, - ), - >, -} -#[test] -fn bindgen_test_layout_preference_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(preference_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(preference_interface)) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).get_preference_for_module_key) as usize - ptr as usize - }, - 0usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(get_preference_for_module_key) - ) - ); - assert_eq!( - unsafe { - ::std::ptr::addr_of!((*ptr).set_preference_for_module_key) as usize - ptr as usize - }, - 8usize, - concat!( - "Offset of field: ", - stringify!(preference_interface), - "::", - stringify!(set_preference_for_module_key) - ) - ); -} -#[doc = " Identifier of the probe"] -pub const probe_key_t_Probe_Key_Name: probe_key_t = 0; -#[doc = " string, any of: {\n\"int\", \"float, \"fraction\",\n\"histogram\", \"int128\", \"string\"\n}"] -pub const probe_key_t_Probe_Key_Type: probe_key_t = 1; -#[doc = " list of strings"] -pub const probe_key_t_Probe_Key_Categories: probe_key_t = 2; -#[doc = " bool"] -pub const probe_key_t_Probe_Key_Cause_Slowdown: probe_key_t = 3; -#[doc = " object: owner object"] -pub const probe_key_t_Probe_Key_Owner_Object: probe_key_t = 4; -#[doc = " string: short narrow name"] -pub const probe_key_t_Probe_Key_Display_Name: probe_key_t = 5; -#[doc = " string"] -pub const probe_key_t_Probe_Key_Description: probe_key_t = 6; -pub const probe_key_t_Probe_Key_Float_Percent: probe_key_t = 7; -pub const probe_key_t_Probe_Key_Float_Decimals: probe_key_t = 8; -pub const probe_key_t_Probe_Key_Metric_Prefix: probe_key_t = 9; -pub const probe_key_t_Probe_Key_Unit: probe_key_t = 10; -pub const probe_key_t_Probe_Key_Binary_Prefix: probe_key_t = 11; -pub const probe_key_t_Probe_Key_Time_Format: probe_key_t = 12; -pub const probe_key_t_Probe_Key_Width: probe_key_t = 13; -pub const probe_key_t_Probe_Key_Value_Notifier: probe_key_t = 14; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Global_Sum: probe_key_t = 15; -#[doc = " [list of properties] OBSOLETE"] -pub const probe_key_t_Probe_Key_Cell_Sum: probe_key_t = 16; -#[doc = " Defines new probes which aggregate\nover this probe:\n[list of [list properties]]\nInvalid for Type: \"string\""] -pub const probe_key_t_Probe_Key_Aggregates: probe_key_t = 17; -#[doc = " Aggregate over all probes in the cells\nor all probes in the system.\nString and of [\"global\", \"cell\"]"] -pub const probe_key_t_Probe_Key_Aggregate_Scope: probe_key_t = 18; -#[doc = " How the aggregation should be done:\n\"sum\",\n\"weighted-arith-mean\", - only fractions"] -pub const probe_key_t_Probe_Key_Aggregate_Function: probe_key_t = 19; -#[doc = " string: how the probe is\ncalculated"] -pub const probe_key_t_Probe_Key_Definition: probe_key_t = 20; -#[doc = " "] -pub type probe_key_t = ::std::os::raw::c_uint; -pub type probe_interface_t = probe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_interface { - pub value: ::std::option::Option attr_value_t>, - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_probe_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_index_interface_t = probe_index_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_index_interface { - pub num_indices: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub value: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, - pub properties: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, idx: ::std::os::raw::c_int) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_probe_index_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_index_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_index_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_indices) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(num_indices) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(value) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_index_interface), - "::", - stringify!(properties) - ) - ); -} -pub type probe_subscribe_interface_t = probe_subscribe_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_subscribe_interface { - pub subscribe: ::std::option::Option, - pub unsubscribe: ::std::option::Option, - pub num_subscribers: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, -} -#[test] -fn bindgen_test_layout_probe_subscribe_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_subscribe_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).subscribe) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(subscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).unsubscribe) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(unsubscribe) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).num_subscribers) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_subscribe_interface), - "::", - stringify!(num_subscribers) - ) - ); -} -pub type probe_cache_interface_t = probe_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_cache_interface { - pub start: ::std::option::Option, - pub stop: ::std::option::Option, -} -#[test] -fn bindgen_test_layout_probe_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(probe_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stop) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_cache_interface), - "::", - stringify!(stop) - ) - ); -} -pub type probe_sampler_cache_interface_t = probe_sampler_cache_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_sampler_cache_interface { - pub enable: ::std::option::Option, - pub disable: ::std::option::Option, - pub get_generation: - ::std::option::Option uint64>, -} -#[test] -fn bindgen_test_layout_probe_sampler_cache_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(probe_sampler_cache_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(enable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).disable) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(disable) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_generation) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(probe_sampler_cache_interface), - "::", - stringify!(get_generation) - ) - ); -} -pub type probe_notification_context_interface_t = probe_notification_context_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct probe_notification_context_interface { - pub get: ::std::option::Option *mut lang_void>, - pub set: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, context: *mut lang_void), - >, -} -#[test] -fn bindgen_test_layout_probe_notification_context_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(probe_notification_context_interface) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(get) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).set) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(probe_notification_context_interface), - "::", - stringify!(set) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct recorder { - _unused: [u8; 0], -} -pub type recorder_t = recorder; -#[doc = " \nThis interface is deprecated; please use the\nrecorder_v2 instead.\n\nTo initiate recording, the object should call the attach method\nwith the recorder, the object itself, and an input handler as parameters.\nThis is done once, typically when the object instance is created.\n\nWhen the object receives data from outside the simulator, it should call\nthe input method with a dbuffer_t containing the\nraw data in unspecified form, along with an extra word of user data.\nThe data parameter can be NULL if not needed.\n\nThe input_from_recorder function is called with input data to the\nobject. When using live input, it is called with data given to\ninput; when playing back, it is called with recorded data.\nAn object should never use its input directly but only what it receives\nfrom input_from_recorder.\n\nThe playback function returns true if the recorder is currently\nplaying back recorded data and false if not.\n\nThe dbuffer_t parameters retain their respective ownership.\nThe input_from_recorder function must not modify the contents\nwithout cloning it first.\n\n\n\n\nCell Context for all methods.\n"] -pub type recorder_input_handler_t = ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: *mut dbuffer_t, uint_data: uint32), ->; -pub type recorder_interface_t = recorder_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_interface { - pub attach: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - obj: *mut conf_object_t, - input_from_recorder: recorder_input_handler_t, - ) -> *mut recorder_t, - >, - pub detach: - ::std::option::Option, - pub input: ::std::option::Option< - unsafe extern "C" fn( - rec: *mut conf_object_t, - r: *mut recorder_t, - data: *mut dbuffer_t, - uint_data: uint32, - ), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(recorder_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).attach) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(attach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).detach) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(detach) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(input) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(recorder_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorder_v2_interface_t = recorder_v2_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorder_v2_interface { - pub record: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, sender: *mut conf_object_t, data: bytes_t), - >, - pub playback: ::std::option::Option bool>, -} -#[test] -fn bindgen_test_layout_recorder_v2_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorder_v2_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).record) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(record) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).playback) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(recorder_v2_interface), - "::", - stringify!(playback) - ) - ); -} -pub type recorded_interface_t = recorded_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct recorded_interface { - pub input: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, data: bytes_t, playback: bool), - >, -} -#[test] -fn bindgen_test_layout_recorded_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(recorded_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(recorded_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).input) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(recorded_interface), - "::", - stringify!(input) - ) - ); -} -pub type register_breakpoint_interface_t = register_breakpoint_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct register_breakpoint_interface { - pub add_breakpoint: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - reg_name: *const ::std::os::raw::c_char, - value: uint64, - mask: uint64, - break_upon_change: bool, - ) -> ::std::os::raw::c_int, - >, - pub remove_breakpoint: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, id: ::std::os::raw::c_int) -> bool, - >, - pub get_breakpoints: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_register_breakpoint_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(register_breakpoint_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_breakpoint) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(add_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_breakpoint) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(remove_breakpoint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).get_breakpoints) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(register_breakpoint_interface), - "::", - stringify!(get_breakpoints) - ) - ); -} -pub type scalar_time_interface_t = scalar_time_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct scalar_time_interface { - pub add_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t) -> ::std::os::raw::c_int, - >, - pub remove_consumer: ::std::option::Option< - unsafe extern "C" fn(obj: *mut conf_object_t, consumer: ::std::os::raw::c_int), - >, - pub poll: ::std::option::Option< - unsafe extern "C" fn( - obj: *mut conf_object_t, - consumer: ::std::os::raw::c_int, - ) -> attr_value_t, - >, -} -#[test] -fn bindgen_test_layout_scalar_time_interface() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(scalar_time_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(scalar_time_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).add_consumer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(add_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).remove_consumer) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(remove_consumer) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).poll) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(scalar_time_interface), - "::", - stringify!(poll) - ) - ); -} -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Name: table_key_t = 1; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Description: table_key_t = 2; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Default_Sort_Column: table_key_t = 3; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Columns: table_key_t = 4; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Extra_Headers: table_key_t = 5; -#[doc = " Table property keys"] -pub const table_key_t_Table_Key_Stream_Header_Repeat: table_key_t = 6; -#[doc = " "] -pub type table_key_t = ::std::os::raw::c_uint; -#[doc = " Other number series than table-keys"] -pub const column_key_t_Column_Key_Name: column_key_t = 1000; -pub const column_key_t_Column_Key_Description: column_key_t = 1001; -pub const column_key_t_Column_Key_Alignment: column_key_t = 1002; -pub const column_key_t_Column_Key_Int_Radix: column_key_t = 1003; -pub const column_key_t_Column_Key_Float_Percent: column_key_t = 1004; -pub const column_key_t_Column_Key_Float_Decimals: column_key_t = 1005; -pub const column_key_t_Column_Key_Sort_Descending: column_key_t = 1006; -pub const column_key_t_Column_Key_Hide_Homogeneous: column_key_t = 1007; -pub const column_key_t_Column_Key_Generate_Percent_Column: column_key_t = 1008; -pub const column_key_t_Column_Key_Generate_Acc_Percent_Column: column_key_t = 1009; -pub const column_key_t_Column_Key_Footer_Sum: column_key_t = 1010; -pub const column_key_t_Column_Key_Footer_Mean: column_key_t = 1011; -pub const column_key_t_Column_Key_Int_Grouping: column_key_t = 1012; -pub const column_key_t_Column_Key_Int_Pad_Width: column_key_t = 1013; -pub const column_key_t_Column_Key_Metric_Prefix: column_key_t = 1014; -pub const column_key_t_Column_Key_Binary_Prefix: column_key_t = 1015; -pub const column_key_t_Column_Key_Time_Format: column_key_t = 1016; -pub const column_key_t_Column_Key_Unique_Id: column_key_t = 1017; -pub const column_key_t_Column_Key_Width: column_key_t = 1018; -pub const column_key_t_Column_Key_Word_Delimiters: column_key_t = 1019; -#[doc = " "] -pub type column_key_t = ::std::os::raw::c_uint; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Row: extra_header_key_t = 2000; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Name: extra_header_key_t = 2001; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Description: extra_header_key_t = 2002; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_First_Column: extra_header_key_t = 2003; -#[doc = " Header property keys"] -pub const extra_header_key_t_Extra_Header_Key_Last_Column: extra_header_key_t = 2004; -#[doc = " "] -pub type extra_header_key_t = ::std::os::raw::c_uint; -pub type table_interface_t = table_interface; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct table_interface { - #[doc = " Returns all rows and columns in the following format:\n[[[i|f|s|o|n*]*]] where the outer list is the row\nand the inner list is the data for each column."] - pub data: ::std::option::Option attr_value_t>, - #[doc = " Defines the table structure and meta-data for the table\nusing a list of key/value pairs.\n[[[ia]*]*] where the integer is the key taken from the\ntable_properties_t. The value is key-specific."] - pub properties: - ::std::option::Option attr_value_t>, -} -#[test] -fn bindgen_test_layout_table_interface() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(table_interface)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(table_interface)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(data) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).properties) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(table_interface), - "::", - stringify!(properties) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct craff_file { - _unused: [u8; 0], -} -pub type craff_file_t = craff_file; -pub const craff_compr_t_Compr_None: craff_compr_t = 0; -#[doc = " 1 used to be bz2 compression"] -pub const craff_compr_t_Compr_Gz: craff_compr_t = 2; -pub type craff_compr_t = ::std::os::raw::c_uint; -#[doc = " Craff file creation parameters; see vin0010 for a more thorough description\nof these."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_params_t { - #[doc = " log2(block size in bytes)"] - pub block_bits: ::std::os::raw::c_int, - #[doc = " log2(sub-blocks per block)"] - pub sub_bits: ::std::os::raw::c_int, - #[doc = " log2(directory entries per node)"] - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, -} -#[test] -fn bindgen_test_layout_craff_params_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_params_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(craff_params_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_params_t), - "::", - stringify!(compression) - ) - ); -} -impl Default for craff_params_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_info_t { - pub size: uint64, - pub block_bits: ::std::os::raw::c_int, - pub sub_bits: ::std::os::raw::c_int, - pub directory_bits: ::std::os::raw::c_int, - pub compression: craff_compr_t, - pub version: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_craff_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(craff_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_bits) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(block_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sub_bits) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(sub_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).directory_bits) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(directory_bits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).compression) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(compression) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(craff_info_t), - "::", - stringify!(version) - ) - ); -} -impl Default for craff_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_t { - pub ofs: uint64, - pub len: uint64, -} -#[test] -fn bindgen_test_layout_craff_interv_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ofs) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(ofs) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_t), - "::", - stringify!(len) - ) - ); -} -#[doc = " no error"] -pub const craff_errclass_t_Craff_Err_Success: craff_errclass_t = 0; -#[doc = " out of disk space or quota"] -pub const craff_errclass_t_Craff_Err_Nospace: craff_errclass_t = 1; -#[doc = " corrupt craff file"] -pub const craff_errclass_t_Craff_Err_Corrupt: craff_errclass_t = 2; -#[doc = " wrong magic number (not a craff file)"] -pub const craff_errclass_t_Craff_Err_Notcraff: craff_errclass_t = 3; -#[doc = " not a dmg image"] -pub const craff_errclass_t_Craff_Err_Notdmg: craff_errclass_t = 4; -#[doc = " image not writable (read-only)"] -pub const craff_errclass_t_Craff_Err_ReadOnly: craff_errclass_t = 5; -#[doc = " file not found"] -pub const craff_errclass_t_Craff_Err_Notfound: craff_errclass_t = 6; -#[doc = " Unsupported feature"] -pub const craff_errclass_t_Craff_Err_Nosupport: craff_errclass_t = 7; -#[doc = " any other error"] -pub const craff_errclass_t_Craff_Err_Other: craff_errclass_t = 8; -pub type craff_errclass_t = ::std::os::raw::c_uint; -#[doc = " craff error state - can be shared between multiple file objects"] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_error { - #[doc = " malloced, owned by this struct"] - pub msg: *mut ::std::os::raw::c_char, - pub errclass: craff_errclass_t, -} -#[test] -fn bindgen_test_layout_craff_error() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_error)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_error)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(msg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).errclass) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_error), - "::", - stringify!(errclass) - ) - ); -} -impl Default for craff_error { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " craff error state - can be shared between multiple file objects"] -pub type craff_error_t = craff_error; -pub const craff_mode_t_Craff_Read_Only: craff_mode_t = 0; -#[doc = " uncompressed craffs only"] -pub const craff_mode_t_Craff_Read_Write: craff_mode_t = 1; -#[doc = " craff_recover() not possible"] -pub const craff_mode_t_Craff_Read_Write_Allow_Compression: craff_mode_t = 2; -pub type craff_mode_t = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct craff_interv_vec_t { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut craff_interv_t, -} -#[test] -fn bindgen_test_layout_craff_interv_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(craff_interv_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(craff_interv_vec_t), - "::", - stringify!(elements) - ) - ); -} -impl Default for craff_interv_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn craff_new_error() -> *mut craff_error_t; -} -extern "C" { - pub fn craff_free_error(ce: *mut craff_error_t); -} -extern "C" { - pub fn craff_get_error_class(ce: *mut craff_error_t) -> craff_errclass_t; -} -extern "C" { - pub fn craff_get_error(ce: *mut craff_error_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn craff_open( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - mode: craff_mode_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_creat( - ce: *mut craff_error_t, - file: *const ::std::os::raw::c_char, - size: uint64, - params: *mut craff_params_t, - ) -> *mut craff_file_t; -} -extern "C" { - pub fn craff_close(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_flush(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_recover(cf: *mut craff_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_write( - cf: *mut craff_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_read( - cf: *mut craff_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn craff_next_data(cf: *mut craff_file_t, ofs: uint64, limit: uint64) -> uint64; -} -extern "C" { - pub fn craff_get_info(cf: *mut craff_file_t, info: *mut craff_info_t); -} -extern "C" { - pub fn craff_file_error(cf: *mut craff_file_t) -> *mut craff_error_t; -} -extern "C" { - pub fn craff_file_get_error(cf: *mut craff_file_t) -> *const ::std::os::raw::c_char; -} -#[doc = " Structure for scatter/gather I/O."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iovec { - #[doc = " Pointer to data."] - pub iov_base: *mut ::std::os::raw::c_void, - #[doc = " Length of data."] - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Sequenced, reliable, connection-based\nbyte streams."] -pub const __socket_type_SOCK_STREAM: __socket_type = 1; -#[doc = " Connectionless, unreliable datagrams\nof fixed maximum length."] -pub const __socket_type_SOCK_DGRAM: __socket_type = 2; -#[doc = " Raw protocol interface."] -pub const __socket_type_SOCK_RAW: __socket_type = 3; -#[doc = " Reliably-delivered messages."] -pub const __socket_type_SOCK_RDM: __socket_type = 4; -#[doc = " Sequenced, reliable, connection-based,\ndatagrams of fixed maximum length."] -pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5; -#[doc = " Datagram Congestion Control Protocol."] -pub const __socket_type_SOCK_DCCP: __socket_type = 6; -#[doc = " Linux specific way of getting packets\nat the dev level. For writing rarp and\nother similar things on the user level."] -pub const __socket_type_SOCK_PACKET: __socket_type = 10; -#[doc = " Atomically set close-on-exec flag for the\nnew descriptor(s)."] -pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288; -#[doc = " Atomically mark descriptor(s) as\nnon-blocking."] -pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; -#[doc = " Types of sockets."] -pub type __socket_type = ::std::os::raw::c_uint; -#[doc = " POSIX.1g specifies this type name for the `sa_family' member."] -pub type sa_family_t = ::std::os::raw::c_ushort; -#[doc = " Structure describing a generic socket address."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr { - pub sa_family: sa_family_t, - #[doc = " Address data."] - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::std::os::raw::c_char; 118usize], - #[doc = " Force desired alignment."] - pub __ss_align: ::std::os::raw::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Process out-of-band data."] -pub const MSG_OOB: _bindgen_ty_17 = 1; -#[doc = " Peek at incoming messages."] -pub const MSG_PEEK: _bindgen_ty_17 = 2; -#[doc = " Don't use local routing."] -pub const MSG_DONTROUTE: _bindgen_ty_17 = 4; -#[doc = " Control data lost before delivery."] -pub const MSG_CTRUNC: _bindgen_ty_17 = 8; -#[doc = " Supply or ask second address."] -pub const MSG_PROXY: _bindgen_ty_17 = 16; -pub const MSG_TRUNC: _bindgen_ty_17 = 32; -#[doc = " Nonblocking IO."] -pub const MSG_DONTWAIT: _bindgen_ty_17 = 64; -#[doc = " End of record."] -pub const MSG_EOR: _bindgen_ty_17 = 128; -#[doc = " Wait for a full request."] -pub const MSG_WAITALL: _bindgen_ty_17 = 256; -pub const MSG_FIN: _bindgen_ty_17 = 512; -pub const MSG_SYN: _bindgen_ty_17 = 1024; -#[doc = " Confirm path validity."] -pub const MSG_CONFIRM: _bindgen_ty_17 = 2048; -pub const MSG_RST: _bindgen_ty_17 = 4096; -#[doc = " Fetch message from error queue."] -pub const MSG_ERRQUEUE: _bindgen_ty_17 = 8192; -#[doc = " Do not generate SIGPIPE."] -pub const MSG_NOSIGNAL: _bindgen_ty_17 = 16384; -#[doc = " Sender will send more."] -pub const MSG_MORE: _bindgen_ty_17 = 32768; -#[doc = " Wait for at least one packet to return."] -pub const MSG_WAITFORONE: _bindgen_ty_17 = 65536; -#[doc = " sendmmsg: more messages coming."] -pub const MSG_BATCH: _bindgen_ty_17 = 262144; -#[doc = " Use user data in kernel path."] -pub const MSG_ZEROCOPY: _bindgen_ty_17 = 67108864; -#[doc = " Send data in TCP SYN."] -pub const MSG_FASTOPEN: _bindgen_ty_17 = 536870912; -#[doc = " Set close_on_exit for file\ndescriptor received through\nSCM_RIGHTS."] -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_17 = 1073741824; -#[doc = " Bits in the FLAGS argument to `send', `recv', et al."] -pub type _bindgen_ty_17 = ::std::os::raw::c_uint; -#[doc = " Structure describing messages sent by\n`sendmsg' and received by `recvmsg'."] -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct msghdr { - #[doc = " Address to send to/receive from."] - pub msg_name: *mut ::std::os::raw::c_void, - #[doc = " Length of address data."] - pub msg_namelen: socklen_t, - #[doc = " Vector of data to send/receive into."] - pub msg_iov: *mut iovec, - #[doc = " Number of elements in the vector."] - pub msg_iovlen: usize, - #[doc = " Ancillary data (eg BSD filedesc passing)."] - pub msg_control: *mut ::std::os::raw::c_void, - #[doc = " Ancillary data buffer length.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub msg_controllen: usize, - #[doc = " Flags on received message."] - pub msg_flags: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used for storage of ancillary data object information."] -#[repr(C)] -#[derive(Debug, Default)] -pub struct cmsghdr { - #[doc = " Length of data in cmsg_data plus length\nof cmsghdr structure.\n The type should be socklen_t but the\ndefinition of the kernel is incompatible\nwith this."] - pub cmsg_len: usize, - #[doc = " Originating protocol."] - pub cmsg_level: ::std::os::raw::c_int, - #[doc = " Protocol specific type."] - pub cmsg_type: ::std::os::raw::c_int, - #[doc = " Ancillary data."] - pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, -} -#[test] -fn bindgen_test_layout_cmsghdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_level) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(cmsg_type) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(cmsghdr), - "::", - stringify!(__cmsg_data) - ) - ); -} -extern "C" { - pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; -} -#[doc = " Transfer file descriptors."] -pub const SCM_RIGHTS: _bindgen_ty_18 = 1; -#[doc = " Socket level message types. This must match the definitions in\n."] -pub type _bindgen_ty_18 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fd_set { - pub fds_bits: [::std::os::raw::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___kernel_fd_set() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[doc = " Type of a signal handler."] -pub type __kernel_sighandler_t = - ::std::option::Option; -#[doc = " Type of a SYSV IPC key."] -pub type __kernel_key_t = ::std::os::raw::c_int; -pub type __kernel_mqd_t = ::std::os::raw::c_int; -#[doc = " This file is generally used by user-level software, so you need to\n be a little careful about namespace pollution etc. Also, we cannot\n assume GCC is being used."] -pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; -pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; -pub type __kernel_long_t = ::std::os::raw::c_long; -pub type __kernel_ulong_t = ::std::os::raw::c_ulong; -pub type __kernel_ino_t = __kernel_ulong_t; -pub type __kernel_mode_t = ::std::os::raw::c_uint; -pub type __kernel_pid_t = ::std::os::raw::c_int; -pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; -pub type __kernel_uid_t = ::std::os::raw::c_uint; -pub type __kernel_gid_t = ::std::os::raw::c_uint; -pub type __kernel_suseconds_t = __kernel_long_t; -pub type __kernel_daddr_t = ::std::os::raw::c_int; -pub type __kernel_uid32_t = ::std::os::raw::c_uint; -pub type __kernel_gid32_t = ::std::os::raw::c_uint; -pub type __kernel_size_t = __kernel_ulong_t; -pub type __kernel_ssize_t = __kernel_long_t; -pub type __kernel_ptrdiff_t = __kernel_long_t; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __kernel_fsid_t { - pub val: [::std::os::raw::c_int; 2usize], -} -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -#[doc = " anything below here should be completely generic"] -pub type __kernel_off_t = __kernel_long_t; -pub type __kernel_loff_t = ::std::os::raw::c_longlong; -pub type __kernel_old_time_t = __kernel_long_t; -pub type __kernel_time_t = __kernel_long_t; -pub type __kernel_time64_t = ::std::os::raw::c_longlong; -pub type __kernel_clock_t = __kernel_long_t; -pub type __kernel_timer_t = ::std::os::raw::c_int; -pub type __kernel_clockid_t = ::std::os::raw::c_int; -pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; -pub type __kernel_uid16_t = ::std::os::raw::c_ushort; -pub type __kernel_gid16_t = ::std::os::raw::c_ushort; -#[doc = " Structure used to manipulate the SO_LINGER option."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct linger { - #[doc = " Nonzero to linger on close."] - pub l_onoff: ::std::os::raw::c_int, - #[doc = " Time to linger."] - pub l_linger: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_linger() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -#[doc = " This is the 4.3 BSD `struct sockaddr' format, which is used as wire\nformat in the grotty old 4.3 `talk' protocol."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct osockaddr { - pub sa_family: ::std::os::raw::c_ushort, - pub sa_data: [::std::os::raw::c_uchar; 14usize], -} -#[test] -fn bindgen_test_layout_osockaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[doc = " No more receptions."] -pub const SHUT_RD: _bindgen_ty_19 = 0; -#[doc = " No more transmissions."] -pub const SHUT_WR: _bindgen_ty_19 = 1; -#[doc = " No more receptions or transmissions."] -pub const SHUT_RDWR: _bindgen_ty_19 = 2; -#[doc = " The following constants should be used for the second parameter of\n`shutdown'."] -pub type _bindgen_ty_19 = ::std::os::raw::c_uint; -extern "C" { - #[doc = " Create a new socket of type TYPE in domain DOMAIN, using\nprotocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.\nReturns a file descriptor for the new socket, or -1 for errors."] - pub fn socket( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Create two new sockets, of type TYPE in domain DOMAIN and using\nprotocol PROTOCOL, which are connected to each other, and put file\ndescriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero,\none will be chosen automatically. Returns 0 on success, -1 for errors."] - pub fn socketpair( - __domain: ::std::os::raw::c_int, - __type: ::std::os::raw::c_int, - __protocol: ::std::os::raw::c_int, - __fds: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Give the socket FD the local address ADDR (which is LEN bytes long)."] - pub fn bind( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the local address of FD into *ADDR and its length in *LEN."] - pub fn getsockname( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Open a connection on socket FD to peer at ADDR (which LEN bytes long).\nFor connectionless socket types, just set the default address to send to\nand the only address from which to accept transmissions.\nReturn 0 on success, -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn connect( - __fd: ::std::os::raw::c_int, - __addr: *const sockaddr, - __len: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Put the address of the peer connected to socket FD into *ADDR\n(which is *LEN bytes long), and its actual length into *LEN."] - pub fn getpeername( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Send N bytes of BUF to socket FD. Returns the number sent or -1.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn send( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF from socket FD.\nReturns the number read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recv( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - #[doc = " Send N bytes of BUF on socket FD to peer at address ADDR (which is\nADDR_LEN bytes long). Returns the number sent, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn sendto( - __fd: ::std::os::raw::c_int, - __buf: *const ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *const sockaddr, - __addr_len: socklen_t, - ) -> isize; -} -extern "C" { - #[doc = " Read N bytes into BUF through socket FD.\nIf ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of\nthe sender, and store the actual size of the address in *ADDR_LEN.\nReturns the number of bytes read or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn recvfrom( - __fd: ::std::os::raw::c_int, - __buf: *mut ::std::os::raw::c_void, - __n: usize, - __flags: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> isize; -} -extern "C" { - pub fn sendmsg( - __fd: ::std::os::raw::c_int, - __message: *const msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn recvmsg( - __fd: ::std::os::raw::c_int, - __message: *mut msghdr, - __flags: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn getsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *mut ::std::os::raw::c_void, - __optlen: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn setsockopt( - __fd: ::std::os::raw::c_int, - __level: ::std::os::raw::c_int, - __optname: ::std::os::raw::c_int, - __optval: *const ::std::os::raw::c_void, - __optlen: socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Prepare to accept connections on socket FD.\nN connection requests will be queued before further requests are refused.\nReturns 0 on success, -1 for errors."] - pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) - -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Await a connection on socket FD.\nWhen a connection arrives, open a new socket to communicate with it,\nset *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting\npeer and *ADDR_LEN to the address's actual length, and return the\nnew socket's descriptor, or -1 for errors.\n\nThis function is a cancellation point and therefore not marked with\n__THROW."] - pub fn accept( - __fd: ::std::os::raw::c_int, - __addr: *mut sockaddr, - __addr_len: *mut socklen_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Shut down all or part of the connection open on socket FD.\nHOW determines what to shut down:\nSHUT_RD = No more receptions;\nSHUT_WR = No more transmissions;\nSHUT_RDWR = No more receptions or transmissions.\nReturns 0 on success, -1 for errors."] - pub fn shutdown( - __fd: ::std::os::raw::c_int, - __how: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Determine whether socket is at a out-of-band mark."] - pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " FDTYPE is S_IFSOCK or another S_IF* macro defined in ;\nreturns 1 if FD is open on an object of the indicated type, 0 if not,\nor -1 for errors (setting errno)."] - pub fn isfdtype( - __fd: ::std::os::raw::c_int, - __fdtype: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -pub type tcp_seq = u32; -#[doc = " TCP header.\n Per RFC 793, September, 1981."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct tcphdr { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union tcphdr__bindgen_ty_1 { - pub __bindgen_anon_1: tcphdr__bindgen_ty_1__bindgen_ty_1, - pub __bindgen_anon_2: tcphdr__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[doc = " source port"] - pub th_sport: u16, - #[doc = " destination port"] - pub th_dport: u16, - #[doc = " sequence number"] - pub th_seq: tcp_seq, - #[doc = " acknowledgement number"] - pub th_ack: tcp_seq, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub th_flags: u8, - #[doc = " window"] - pub th_win: u16, - #[doc = " checksum"] - pub th_sum: u16, - #[doc = " urgent pointer"] - pub th_urp: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sport) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_dport) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_dport) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_ack) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_ack) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_flags) as usize - ptr as usize }, - 13usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_win) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_win) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_sum) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_sum) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).th_urp) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(th_urp) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_1 { - #[inline] - pub fn th_x2(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_x2(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn th_off(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_th_off(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1(th_x2: u8, th_off: u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let th_x2: u8 = unsafe { ::std::mem::transmute(th_x2) }; - th_x2 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let th_off: u8 = unsafe { ::std::mem::transmute(th_off) }; - th_off as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcphdr__bindgen_ty_1__bindgen_ty_2 { - pub source: u16, - pub dest: u16, - pub seq: u32, - pub ack_seq: u32, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, - pub window: u16, - pub check: u16, - pub urg_ptr: u16, -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).source) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dest) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ack_seq) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(ack_seq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).window) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).check) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(check) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).urg_ptr) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(tcphdr__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(urg_ptr) - ) - ); -} -impl tcphdr__bindgen_ty_1__bindgen_ty_2 { - #[inline] - pub fn res1(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } - } - #[inline] - pub fn set_res1(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn doff(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } - } - #[inline] - pub fn set_doff(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn fin(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } - } - #[inline] - pub fn set_fin(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(8usize, 1u8, val as u64) - } - } - #[inline] - pub fn syn(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } - } - #[inline] - pub fn set_syn(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(9usize, 1u8, val as u64) - } - } - #[inline] - pub fn rst(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } - } - #[inline] - pub fn set_rst(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(10usize, 1u8, val as u64) - } - } - #[inline] - pub fn psh(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } - } - #[inline] - pub fn set_psh(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(11usize, 1u8, val as u64) - } - } - #[inline] - pub fn ack(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } - } - #[inline] - pub fn set_ack(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(12usize, 1u8, val as u64) - } - } - #[inline] - pub fn urg(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } - } - #[inline] - pub fn set_urg(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(13usize, 1u8, val as u64) - } - } - #[inline] - pub fn res2(&self) -> u16 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 2u8) as u16) } - } - #[inline] - pub fn set_res2(&mut self, val: u16) { - unsafe { - let val: u16 = ::std::mem::transmute(val); - self._bitfield_1.set(14usize, 2u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - res1: u16, - doff: u16, - fin: u16, - syn: u16, - rst: u16, - psh: u16, - ack: u16, - urg: u16, - res2: u16, - ) -> __BindgenBitfieldUnit<[u8; 2usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let res1: u16 = unsafe { ::std::mem::transmute(res1) }; - res1 as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let doff: u16 = unsafe { ::std::mem::transmute(doff) }; - doff as u64 - }); - __bindgen_bitfield_unit.set(8usize, 1u8, { - let fin: u16 = unsafe { ::std::mem::transmute(fin) }; - fin as u64 - }); - __bindgen_bitfield_unit.set(9usize, 1u8, { - let syn: u16 = unsafe { ::std::mem::transmute(syn) }; - syn as u64 - }); - __bindgen_bitfield_unit.set(10usize, 1u8, { - let rst: u16 = unsafe { ::std::mem::transmute(rst) }; - rst as u64 - }); - __bindgen_bitfield_unit.set(11usize, 1u8, { - let psh: u16 = unsafe { ::std::mem::transmute(psh) }; - psh as u64 - }); - __bindgen_bitfield_unit.set(12usize, 1u8, { - let ack: u16 = unsafe { ::std::mem::transmute(ack) }; - ack as u64 - }); - __bindgen_bitfield_unit.set(13usize, 1u8, { - let urg: u16 = unsafe { ::std::mem::transmute(urg) }; - urg as u64 - }); - __bindgen_bitfield_unit.set(14usize, 2u8, { - let res2: u16 = unsafe { ::std::mem::transmute(res2) }; - res2 as u64 - }); - __bindgen_bitfield_unit - } -} -#[test] -fn bindgen_test_layout_tcphdr__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr__bindgen_ty_1)) - ); -} -impl Default for tcphdr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_tcphdr() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcphdr)) - ); -} -impl Default for tcphdr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const TCP_ESTABLISHED: _bindgen_ty_20 = 1; -pub const TCP_SYN_SENT: _bindgen_ty_20 = 2; -pub const TCP_SYN_RECV: _bindgen_ty_20 = 3; -pub const TCP_FIN_WAIT1: _bindgen_ty_20 = 4; -pub const TCP_FIN_WAIT2: _bindgen_ty_20 = 5; -pub const TCP_TIME_WAIT: _bindgen_ty_20 = 6; -pub const TCP_CLOSE: _bindgen_ty_20 = 7; -pub const TCP_CLOSE_WAIT: _bindgen_ty_20 = 8; -pub const TCP_LAST_ACK: _bindgen_ty_20 = 9; -pub const TCP_LISTEN: _bindgen_ty_20 = 10; -#[doc = " now a valid state"] -pub const TCP_CLOSING: _bindgen_ty_20 = 11; -pub type _bindgen_ty_20 = ::std::os::raw::c_uint; -pub const tcp_ca_state_TCP_CA_Open: tcp_ca_state = 0; -pub const tcp_ca_state_TCP_CA_Disorder: tcp_ca_state = 1; -pub const tcp_ca_state_TCP_CA_CWR: tcp_ca_state = 2; -pub const tcp_ca_state_TCP_CA_Recovery: tcp_ca_state = 3; -pub const tcp_ca_state_TCP_CA_Loss: tcp_ca_state = 4; -#[doc = " Values for tcpi_state."] -pub type tcp_ca_state = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_info { - pub tcpi_state: u8, - pub tcpi_ca_state: u8, - pub tcpi_retransmits: u8, - pub tcpi_probes: u8, - pub tcpi_backoff: u8, - pub tcpi_options: u8, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub tcpi_rto: u32, - pub tcpi_ato: u32, - pub tcpi_snd_mss: u32, - pub tcpi_rcv_mss: u32, - pub tcpi_unacked: u32, - pub tcpi_sacked: u32, - pub tcpi_lost: u32, - pub tcpi_retrans: u32, - pub tcpi_fackets: u32, - #[doc = " Times."] - pub tcpi_last_data_sent: u32, - #[doc = " Not remembered, sorry."] - pub tcpi_last_ack_sent: u32, - pub tcpi_last_data_recv: u32, - pub tcpi_last_ack_recv: u32, - #[doc = " Metrics."] - pub tcpi_pmtu: u32, - pub tcpi_rcv_ssthresh: u32, - pub tcpi_rtt: u32, - pub tcpi_rttvar: u32, - pub tcpi_snd_ssthresh: u32, - pub tcpi_snd_cwnd: u32, - pub tcpi_advmss: u32, - pub tcpi_reordering: u32, - pub tcpi_rcv_rtt: u32, - pub tcpi_rcv_space: u32, - pub tcpi_total_retrans: u32, -} -#[test] -fn bindgen_test_layout_tcp_info() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 104usize, - concat!("Size of: ", stringify!(tcp_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_info)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_state) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ca_state) as usize - ptr as usize }, - 1usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ca_state) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retransmits) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retransmits) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_probes) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_probes) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_backoff) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_backoff) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_options) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_options) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rto) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rto) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_ato) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_ato) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_mss) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_mss) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_mss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_unacked) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_unacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_sacked) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_sacked) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_lost) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_lost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_retrans) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_retrans) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_fackets) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_fackets) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_sent) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_sent) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_sent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_data_recv) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_data_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_last_ack_recv) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_last_ack_recv) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_pmtu) as usize - ptr as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_pmtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_ssthresh) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rtt) as usize - ptr as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rttvar) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rttvar) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_ssthresh) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_ssthresh) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_snd_cwnd) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_snd_cwnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_advmss) as usize - ptr as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_advmss) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_reordering) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_reordering) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_rtt) as usize - ptr as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_rtt) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_rcv_space) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_rcv_space) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpi_total_retrans) as usize - ptr as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(tcp_info), - "::", - stringify!(tcpi_total_retrans) - ) - ); -} -impl tcp_info { - #[inline] - pub fn tcpi_snd_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_snd_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 4u8, val as u64) - } - } - #[inline] - pub fn tcpi_rcv_wscale(&self) -> u8 { - unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } - } - #[inline] - pub fn set_tcpi_rcv_wscale(&mut self, val: u8) { - unsafe { - let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(4usize, 4u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - tcpi_snd_wscale: u8, - tcpi_rcv_wscale: u8, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 4u8, { - let tcpi_snd_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_snd_wscale) }; - tcpi_snd_wscale as u64 - }); - __bindgen_bitfield_unit.set(4usize, 4u8, { - let tcpi_rcv_wscale: u8 = unsafe { ::std::mem::transmute(tcpi_rcv_wscale) }; - tcpi_rcv_wscale as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_md5sig { - #[doc = " Address associated."] - pub tcpm_addr: sockaddr_storage, - #[doc = " Extension flags."] - pub tcpm_flags: u8, - #[doc = " Address prefix."] - pub tcpm_prefixlen: u8, - #[doc = " Key length."] - pub tcpm_keylen: u16, - #[doc = " Zero."] - pub __tcpm_pad: u32, - #[doc = " Key (binary)."] - pub tcpm_key: [u8; 80usize], -} -#[test] -fn bindgen_test_layout_tcp_md5sig() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 216usize, - concat!("Size of: ", stringify!(tcp_md5sig)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_md5sig)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_flags) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_prefixlen) as usize - ptr as usize }, - 129usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_prefixlen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_keylen) as usize - ptr as usize }, - 130usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_keylen) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpm_pad) as usize - ptr as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(__tcpm_pad) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpm_key) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(tcp_md5sig), - "::", - stringify!(tcpm_key) - ) - ); -} -impl Default for tcp_md5sig { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For socket repair options."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_opt { - pub opt_code: u32, - pub opt_val: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_opt() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_opt)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_code) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_code) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).opt_val) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_opt), - "::", - stringify!(opt_val) - ) - ); -} -pub const TCP_NO_QUEUE: _bindgen_ty_21 = 0; -pub const TCP_RECV_QUEUE: _bindgen_ty_21 = 1; -pub const TCP_SEND_QUEUE: _bindgen_ty_21 = 2; -pub const TCP_QUEUES_NR: _bindgen_ty_21 = 3; -#[doc = " Queue to repair, for TCP_REPAIR_QUEUE."] -pub type _bindgen_ty_21 = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_cookie_transactions { - pub tcpct_flags: u16, - pub __tcpct_pad1: u8, - pub tcpct_cookie_desired: u8, - pub tcpct_s_data_desired: u16, - pub tcpct_used: u16, - pub tcpct_value: [u8; 536usize], -} -#[test] -fn bindgen_test_layout_tcp_cookie_transactions() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 544usize, - concat!("Size of: ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tcp_cookie_transactions)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).__tcpct_pad1) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(__tcpct_pad1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_cookie_desired) as usize - ptr as usize }, - 3usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_cookie_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_s_data_desired) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_s_data_desired) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_used) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tcpct_value) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_cookie_transactions), - "::", - stringify!(tcpct_value) - ) - ); -} -impl Default for tcp_cookie_transactions { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " For use with TCP_REPAIR_WINDOW."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_repair_window { - pub snd_wl1: u32, - pub snd_wnd: u32, - pub max_window: u32, - pub rcv_wnd: u32, - pub rcv_wup: u32, -} -#[test] -fn bindgen_test_layout_tcp_repair_window() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(tcp_repair_window)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(tcp_repair_window)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wl1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wl1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).snd_wnd) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(snd_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).max_window) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(max_window) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wnd) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wnd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).rcv_wup) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(tcp_repair_window), - "::", - stringify!(rcv_wup) - ) - ); -} -#[doc = " For use with TCP_ZEROCOPY_RECEIVE."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct tcp_zerocopy_receive { - #[doc = " In: address of mapping."] - pub address: u64, - #[doc = " In/out: number of bytes to map/mapped."] - pub length: u32, - #[doc = " Out: amount of bytes to skip."] - pub recv_skip_hint: u32, -} -#[test] -fn bindgen_test_layout_tcp_zerocopy_receive() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(tcp_zerocopy_receive)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).address) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(address) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).length) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(length) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).recv_skip_hint) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(tcp_zerocopy_receive), - "::", - stringify!(recv_skip_hint) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct if_nameindex { - #[doc = " 1, 2, ..."] - pub if_index: ::std::os::raw::c_uint, - #[doc = " null terminated name: \"eth0\", ..."] - pub if_name: *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_if_nameindex() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_nameindex)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_nameindex)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_index) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_index) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).if_name) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(if_nameindex), - "::", - stringify!(if_name) - ) - ); -} -impl Default for if_nameindex { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Interface is up."] -pub const IFF_UP: _bindgen_ty_22 = 1; -#[doc = " Broadcast address valid."] -pub const IFF_BROADCAST: _bindgen_ty_22 = 2; -#[doc = " Turn on debugging."] -pub const IFF_DEBUG: _bindgen_ty_22 = 4; -#[doc = " Is a loopback net."] -pub const IFF_LOOPBACK: _bindgen_ty_22 = 8; -#[doc = " Interface is point-to-point link."] -pub const IFF_POINTOPOINT: _bindgen_ty_22 = 16; -#[doc = " Avoid use of trailers."] -pub const IFF_NOTRAILERS: _bindgen_ty_22 = 32; -#[doc = " Resources allocated."] -pub const IFF_RUNNING: _bindgen_ty_22 = 64; -#[doc = " No address resolution protocol."] -pub const IFF_NOARP: _bindgen_ty_22 = 128; -#[doc = " Receive all packets."] -pub const IFF_PROMISC: _bindgen_ty_22 = 256; -#[doc = " Receive all multicast packets."] -pub const IFF_ALLMULTI: _bindgen_ty_22 = 512; -#[doc = " Master of a load balancer."] -pub const IFF_MASTER: _bindgen_ty_22 = 1024; -#[doc = " Slave of a load balancer."] -pub const IFF_SLAVE: _bindgen_ty_22 = 2048; -#[doc = " Supports multicast."] -pub const IFF_MULTICAST: _bindgen_ty_22 = 4096; -#[doc = " Can set media type."] -pub const IFF_PORTSEL: _bindgen_ty_22 = 8192; -#[doc = " Auto media select active."] -pub const IFF_AUTOMEDIA: _bindgen_ty_22 = 16384; -#[doc = " Dialup device with changing addresses."] -pub const IFF_DYNAMIC: _bindgen_ty_22 = 32768; -#[doc = " Standard interface flags."] -pub type _bindgen_ty_22 = ::std::os::raw::c_uint; -#[doc = " The ifaddr structure contains information about one address of an\ninterface. They are maintained by the different address families,\nare allocated and attached when an address is set, and are linked\ntogether so all addresses for an interface can be located."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifaddr { - #[doc = " Address of interface."] - pub ifa_addr: sockaddr, - pub ifa_ifu: ifaddr__bindgen_ty_1, - #[doc = " Back-pointer to interface."] - pub ifa_ifp: *mut iface, - #[doc = " Next address for interface."] - pub ifa_next: *mut ifaddr, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifaddr__bindgen_ty_1 { - pub ifu_broadaddr: sockaddr, - pub ifu_dstaddr: sockaddr, -} -#[test] -fn bindgen_test_layout_ifaddr__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ifaddr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifu_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr__bindgen_ty_1), - "::", - stringify!(ifu_dstaddr) - ) - ); -} -impl Default for ifaddr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifaddr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ifaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifaddr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifu) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_ifp) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_ifp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifa_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ifaddr), - "::", - stringify!(ifa_next) - ) - ); -} -impl Default for ifaddr { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Device mapping structure. I'd just gone off and designed a\nbeautiful scheme using only loadable modules with arguments for\ndriver options and along come the PCMCIA people 8)\n\nAh well. The get() side of this is good for WDSETUP, and it'll be\nhandy for debugging things. The set side is fine for now and being\nvery small might be worth keeping for clean configuration."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ifmap { - pub mem_start: ::std::os::raw::c_ulong, - pub mem_end: ::std::os::raw::c_ulong, - pub base_addr: ::std::os::raw::c_ushort, - pub irq: ::std::os::raw::c_uchar, - pub dma: ::std::os::raw::c_uchar, - pub port: ::std::os::raw::c_uchar, -} -#[test] -fn bindgen_test_layout_ifmap() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mem_end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).base_addr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).irq) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dma) as usize - ptr as usize }, - 19usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).port) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -#[doc = " Interface request structure used for socket ioctl's. All interface\nioctl's must have parameter definitions which begin with ifr_name.\nThe remainder may be interface specific."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifreq { - pub ifr_ifrn: ifreq__bindgen_ty_1, - pub ifr_ifru: ifreq__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_1 { - #[doc = " Interface name, e.g. \"en0\"."] - pub ifrn_name: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifrn_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Default for ifreq__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifreq__bindgen_ty_2 { - pub ifru_addr: sockaddr, - pub ifru_dstaddr: sockaddr, - pub ifru_broadaddr: sockaddr, - pub ifru_netmask: sockaddr, - pub ifru_hwaddr: sockaddr, - pub ifru_flags: ::std::os::raw::c_short, - pub ifru_ivalue: ::std::os::raw::c_int, - pub ifru_mtu: ::std::os::raw::c_int, - pub ifru_map: ifmap, - #[doc = " Just fits the size"] - pub ifru_slave: [::std::os::raw::c_char; 16usize], - pub ifru_newname: [::std::os::raw::c_char; 16usize], - pub ifru_data: __caddr_t, -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_dstaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_broadaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_netmask) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_hwaddr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_ivalue) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_mtu) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_map) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_slave) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_newname) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifru_data) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); -} -impl Default for ifreq__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifrn) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifr_ifru) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Default for ifreq { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " Structure used in SIOCGIFCONF request. Used to retrieve interface\nconfiguration for machine (useful for programs which must know all\nnetworks accessible)."] -#[repr(C)] -#[derive(Copy, Clone)] -pub struct ifconf { - #[doc = " Size of buffer."] - pub ifc_len: ::std::os::raw::c_int, - pub ifc_ifcu: ifconf__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union ifconf__bindgen_ty_1 { - pub ifcu_buf: __caddr_t, - pub ifcu_req: *mut ifreq, -} -#[test] -fn bindgen_test_layout_ifconf__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_buf) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_buf) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifcu_req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf__bindgen_ty_1), - "::", - stringify!(ifcu_req) - ) - ); -} -impl Default for ifconf__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_ifconf() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifconf)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifconf)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_len) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_len) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ifc_ifcu) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ifconf), - "::", - stringify!(ifc_ifcu) - ) - ); -} -impl Default for ifconf { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - #[doc = " Convert an interface name to an index, and vice versa."] - pub fn if_nametoindex(__ifname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn if_indextoname( - __ifindex: ::std::os::raw::c_uint, - __ifname: *mut ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Return a list of all interfaces and their indices."] - pub fn if_nameindex() -> *mut if_nameindex; -} -extern "C" { - #[doc = " Free the data returned from if_nameindex."] - pub fn if_freenameindex(__ptr: *mut if_nameindex); -} -#[doc = " __xx is ok: it doesn't pollute the POSIX namespace. Use these in the\n header files exported to user space"] -pub type __s8 = ::std::os::raw::c_schar; -pub type __u8 = ::std::os::raw::c_uchar; -pub type __s16 = ::std::os::raw::c_short; -pub type __u16 = ::std::os::raw::c_ushort; -pub type __s32 = ::std::os::raw::c_int; -pub type __u32 = ::std::os::raw::c_uint; -pub type __s64 = ::std::os::raw::c_longlong; -pub type __u64 = ::std::os::raw::c_ulonglong; -pub type __le16 = __u16; -pub type __be16 = __u16; -pub type __le32 = __u32; -pub type __be32 = __u32; -pub type __le64 = __u64; -pub type __be64 = __u64; -pub type __sum16 = __u16; -pub type __wsum = __u32; -pub type __poll_t = ::std::os::raw::c_uint; -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ethhdr { - #[doc = " destination eth addr"] - pub h_dest: [::std::os::raw::c_uchar; 6usize], - #[doc = " source ether addr"] - pub h_source: [::std::os::raw::c_uchar; 6usize], - #[doc = " packet type ID field"] - pub h_proto: __be16, -} -#[test] -fn bindgen_test_layout_ethhdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_dest) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_source) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).h_proto) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -#[doc = " This is a name for the 48 bit ethernet address available on many\nsystems."] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_addr { - pub ether_addr_octet: [u8; 6usize], -} -#[test] -fn bindgen_test_layout_ether_addr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 6usize, - concat!("Size of: ", stringify!(ether_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_addr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_addr_octet) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_addr), - "::", - stringify!(ether_addr_octet) - ) - ); -} -#[doc = " 10Mb/s ethernet header"] -#[repr(C, packed)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_header { - #[doc = " destination eth addr"] - pub ether_dhost: [u8; 6usize], - #[doc = " source ether addr"] - pub ether_shost: [u8; 6usize], - #[doc = " packet type ID field"] - pub ether_type: u16, -} -#[test] -fn bindgen_test_layout_ether_header() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ether_header)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ether_header)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_dhost) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_dhost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_shost) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_shost) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ether_type) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ether_header), - "::", - stringify!(ether_type) - ) - ); -} -#[doc = " See RFC 826 for protocol description. ARP packets are variable\nin size; the arphdr structure defines the fixed-length portion.\nProtocol type values are the same as those for 10 Mb/s Ethernet.\nIt is followed by the variable-sized fields ar_sha, arp_spa,\narp_tha and arp_tpa in that order, according to the lengths\nspecified. Field names used correspond to RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arphdr { - #[doc = " Format of hardware address."] - pub ar_hrd: ::std::os::raw::c_ushort, - #[doc = " Format of protocol address."] - pub ar_pro: ::std::os::raw::c_ushort, - #[doc = " Length of hardware address."] - pub ar_hln: ::std::os::raw::c_uchar, - #[doc = " Length of protocol address."] - pub ar_pln: ::std::os::raw::c_uchar, - #[doc = " ARP opcode (command)."] - pub ar_op: ::std::os::raw::c_ushort, -} -#[test] -fn bindgen_test_layout_arphdr() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(arphdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(arphdr)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hrd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hrd) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pro) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pro) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_hln) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_hln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_pln) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_pln) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ar_op) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(arphdr), - "::", - stringify!(ar_op) - ) - ); -} -#[doc = " ARP ioctl request."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, - pub arp_dev: [::std::os::raw::c_char; 16usize], -} -#[test] -fn bindgen_test_layout_arpreq() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 68usize, - concat!("Size of: ", stringify!(arpreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_netmask) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_dev) as usize - ptr as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(arpreq), - "::", - stringify!(arp_dev) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpreq_old { - #[doc = " Protocol address."] - pub arp_pa: sockaddr, - #[doc = " Hardware address."] - pub arp_ha: sockaddr, - #[doc = " Flags."] - pub arp_flags: ::std::os::raw::c_int, - #[doc = " Netmask (only for proxy arps)."] - pub arp_netmask: sockaddr, -} -#[test] -fn bindgen_test_layout_arpreq_old() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 52usize, - concat!("Size of: ", stringify!(arpreq_old)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(arpreq_old)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_pa) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_pa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_ha) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_ha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_flags) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_flags) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_netmask) as usize - ptr as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(arpreq_old), - "::", - stringify!(arp_netmask) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct arpd_request { - #[doc = " Request type."] - pub req: ::std::os::raw::c_ushort, - #[doc = " IP address of entry."] - pub ip: u32, - #[doc = " Device entry is tied to."] - pub dev: ::std::os::raw::c_ulong, - pub stamp: ::std::os::raw::c_ulong, - pub updated: ::std::os::raw::c_ulong, - #[doc = " Hardware address."] - pub ha: [::std::os::raw::c_uchar; 7usize], -} -#[test] -fn bindgen_test_layout_arpd_request() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(arpd_request)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(arpd_request)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).req) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(req) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ip) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ip) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).dev) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(dev) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).stamp) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(stamp) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).updated) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(updated) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ha) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(arpd_request), - "::", - stringify!(ha) - ) - ); -} -#[doc = " Ethernet Address Resolution Protocol.\n\n See RFC 826 for protocol description. Structure below is adapted\n to resolving internet addresses. Field names used correspond to\n RFC 826."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct ether_arp { - #[doc = " fixed-size header"] - pub ea_hdr: arphdr, - #[doc = " sender hardware address"] - pub arp_sha: [u8; 6usize], - #[doc = " sender protocol address"] - pub arp_spa: [u8; 4usize], - #[doc = " target hardware address"] - pub arp_tha: [u8; 6usize], - #[doc = " target protocol address"] - pub arp_tpa: [u8; 4usize], -} -#[test] -fn bindgen_test_layout_ether_arp() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(ether_arp)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(ether_arp)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ea_hdr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(ea_hdr) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_sha) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_sha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_spa) as usize - ptr as usize }, - 14usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_spa) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tha) as usize - ptr as usize }, - 18usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tha) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).arp_tpa) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ether_arp), - "::", - stringify!(arp_tpa) - ) - ); -} -extern "C" { - #[doc = " Open the shared object FILE and map it in; return a handle that can be\npassed to `dlsym' to get symbol values from it."] - pub fn dlopen( - __file: *const ::std::os::raw::c_char, - __mode: ::std::os::raw::c_int, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " Unmap and close a shared object opened by `dlopen'.\nThe handle cannot be used again after calling `dlclose'."] - pub fn dlclose(__handle: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int; -} -extern "C" { - #[doc = " Find the run-time address in the shared object HANDLE refers to\nof the symbol called NAME."] - pub fn dlsym( - __handle: *mut ::std::os::raw::c_void, - __name: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - #[doc = " When any of the above functions fails, call this function\nto return a string describing the error. Each call resets\nthe error string so that a following call returns null."] - pub fn dlerror() -> *mut ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t { - pub v: str_vec_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct str_vec_t__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut *mut ::std::os::raw::c_char, -} -#[test] -fn bindgen_test_layout_str_vec_t__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for str_vec_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_str_vec_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(str_vec_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(str_vec_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).v) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(str_vec_t), - "::", - stringify!(v) - ) - ); -} -impl Default for str_vec_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn str_vec_free(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_add(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_add_stealing(sv: *mut str_vec_t, s: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn str_vec_sort(sv: *mut str_vec_t); -} -extern "C" { - pub fn str_vec_find( - sv: *const str_vec_t, - s: *const ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn str_vec_remove(sv: *mut str_vec_t, s: *const ::std::os::raw::c_char); -} -pub type os_dlhandle_t = *mut ::std::os::raw::c_void; -pub type os_dlsymbol_t = *mut ::std::os::raw::c_void; -extern "C" { - pub fn os_dlopen( - filename: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ) -> os_dlhandle_t; -} -extern "C" { - pub fn os_dlclose(handle: os_dlhandle_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dllookup( - handle: os_dlhandle_t, - symbol: *const ::std::os::raw::c_char, - ) -> os_dlsymbol_t; -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_dlinfo_t { - #[doc = " Name of symbol at or before queried addr\n(statically allocated). May be NULL."] - pub sym_name: *const ::std::os::raw::c_char, - #[doc = " symbol start address"] - pub sym_base: *mut ::std::os::raw::c_void, - #[doc = " file queried addr belongs to"] - pub file_name: *const ::std::os::raw::c_char, - #[doc = " file start address"] - pub file_base: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_os_dlinfo_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_dlinfo_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sym_base) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(sym_base) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_name) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_base) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_dlinfo_t), - "::", - stringify!(file_base) - ) - ); -} -impl Default for os_dlinfo_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn os_dladdr(addr: *mut ::std::os::raw::c_void, ret: *mut os_dlinfo_t) -> bool; -} -extern "C" { - pub fn os_get_last_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_last_error_was_error() -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_describe_last_error() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_dlerror() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_describe_last_socket_error() -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_file_size(filename: *const ::std::os::raw::c_char) -> int64; -} -extern "C" { - pub fn os_file_exists(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_listdir(dir: *const ::std::os::raw::c_char) -> *mut str_vec_t; -} -extern "C" { - pub fn os_normalize_path(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_isdir(arg1: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isfile(filename: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_isabs(path: *const ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_mkdir( - filename: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_chdir(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_getcwd() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getcwd_nice() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_absolutify( - path: *const ::std::os::raw::c_char, - base: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - #[doc = " Using os_[f]open instead of [f]open ensures that shortcuts are\nproperly followed under Windows."] - pub fn os_fopen( - path: *const ::std::os::raw::c_char, - mode: *const ::std::os::raw::c_char, - ) -> *mut FILE; -} -extern "C" { - pub fn os_fclose(stream: *mut FILE) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_basename(path: *const ::std::os::raw::c_char) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn os_path_join(path: *mut strbuf_t, name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_clean_path(path: *mut ::std::os::raw::c_char); -} -extern "C" { - pub fn os_open( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ... - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_open_vararg( - path: *const ::std::os::raw::c_char, - flags: ::std::os::raw::c_int, - ap: *mut __va_list_tag, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_lseek(fd: ::std::os::raw::c_int, off: int64, whence: ::std::os::raw::c_int) -> int64; -} -extern "C" { - pub fn os_ftruncate(fd: ::std::os::raw::c_int, newsize: uint64) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_make_sparse(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pread( - fd: ::std::os::raw::c_int, - buf: *mut ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_pwrite( - fd: ::std::os::raw::c_int, - buf: *const ::std::os::raw::c_void, - nbyte: usize, - offset: uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_close_descriptors(from: ::std::os::raw::c_int, except: ::std::os::raw::c_int); -} -pub const os_socket_status_t_Os_No_Error: os_socket_status_t = 0; -pub const os_socket_status_t_Os_Connection_Refused: os_socket_status_t = 1; -pub const os_socket_status_t_Os_Connection_Reset: os_socket_status_t = 2; -pub const os_socket_status_t_Os_Timed_Out: os_socket_status_t = 3; -pub const os_socket_status_t_Os_Net_Unreach: os_socket_status_t = 4; -pub const os_socket_status_t_Os_Host_Unreach: os_socket_status_t = 5; -pub const os_socket_status_t_Os_In_Progress: os_socket_status_t = 6; -pub const os_socket_status_t_Os_Other: os_socket_status_t = 7; -pub type os_socket_status_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_initialize_sockets(); -} -extern "C" { - pub fn os_socket_close(sock: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_write_non_blocking( - central_fd: socket_t, - buf: *const ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_blocking(s: socket_t, blocking: bool); -} -extern "C" { - pub fn os_socket_read( - central_fd: socket_t, - buf: *mut ::std::os::raw::c_void, - len: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_gethostname() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_set_socket_non_blocking(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_reuseaddr(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_set_socket_nodelay(s: socket_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_socket_connect( - s: socket_t, - serv_addr: *const sockaddr, - addr_len: usize, - ) -> os_socket_status_t; -} -extern "C" { - pub fn os_socket_get_status(s: socket_t) -> os_socket_status_t; -} -extern "C" { - pub fn os_last_socket_error() -> os_socket_status_t; -} -extern "C" { - pub fn os_copy( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rename( - src: *const ::std::os::raw::c_char, - dst: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_dirname(filename: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_quote_filename(file: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_remove(filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_rmdir(dirname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_access( - path: *const ::std::os::raw::c_char, - mode: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_millisleep(t: ::std::os::raw::c_int); -} -extern "C" { - pub fn os_current_time() -> uint64; -} -extern "C" { - pub fn os_current_time_us() -> uint64; -} -extern "C" { - pub fn os_user_cpu_time_us() -> uint64; -} -extern "C" { - pub fn os_get_library_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_getpid() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_host_phys_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_virt_mem_size() -> uint64; -} -extern "C" { - pub fn os_host_ncpus() -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn os_is_same_file( - name1: *const ::std::os::raw::c_char, - name2: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_make_readable_path( - path: *const ::std::os::raw::c_char, - ) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_dir_contains_path( - parent: *const ::std::os::raw::c_char, - path: *const ::std::os::raw::c_char, - ) -> bool; -} -extern "C" { - pub fn os_create_unique_autoremoved_file( - name: *const ::std::os::raw::c_char, - ) -> ::std::os::raw::c_int; -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_stat_t { - #[doc = " File size in bytes."] - pub size: uint64, - #[doc = " Last modification time, in seconds from epoch."] - pub mtime: uint64, -} -#[test] -fn bindgen_test_layout_os_stat_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(os_stat_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(os_stat_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).mtime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_stat_t), - "::", - stringify!(mtime) - ) - ); -} -extern "C" { - pub fn os_stat( - file: *const ::std::os::raw::c_char, - result: *mut os_stat_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_get_user_name() -> *mut ::std::os::raw::c_char; -} -pub const os_mmap_flags_t_Os_Mmap_Read: os_mmap_flags_t = 1; -pub const os_mmap_flags_t_Os_Mmap_Write: os_mmap_flags_t = 2; -pub const os_mmap_flags_t_Os_Mmap_Exec: os_mmap_flags_t = 4; -#[doc = " Writes are shared and take effect in the file;\notherwise they are private."] -pub const os_mmap_flags_t_Os_Mmap_Shared: os_mmap_flags_t = 8; -pub type os_mmap_flags_t = ::std::os::raw::c_uint; -extern "C" { - pub fn os_mmap( - fd: ::std::os::raw::c_int, - offset: uint64, - size: uint64, - flags: os_mmap_flags_t, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn os_munmap(block: *mut ::std::os::raw::c_void, size: uint64); -} -extern "C" { - pub fn os_set_thread_name(name: *const ::std::os::raw::c_char); -} -extern "C" { - pub fn os_get_thread_name(name: *mut ::std::os::raw::c_char) -> bool; -} -extern "C" { - pub fn os_setenv( - name: *const ::std::os::raw::c_char, - value: *const ::std::os::raw::c_char, - overwrite: ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn os_path_expand_user(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_realpath(path: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_get_process_binary_path() -> *mut ::std::os::raw::c_char; -} -extern "C" { - pub fn os_rmenv(name: *const ::std::os::raw::c_char); -} -pub type os_char_t = ::std::os::raw::c_char; -extern "C" { - pub fn initialize_encoding(); -} -extern "C" { - pub fn VT_simics_to_filename(ustr: *const ::std::os::raw::c_char) -> *mut os_char_t; -} -extern "C" { - pub fn double_hex_str( - buf: *mut ::std::os::raw::c_char, - _d: f64, - type_: ::std::os::raw::c_int, - sign: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn fphex_strtod( - nptr: *const ::std::os::raw::c_char, - endptr: *mut *mut ::std::os::raw::c_char, - ) -> f64; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct rand_state { - _unused: [u8; 0], -} -pub type rand_state_t = rand_state; -extern "C" { - pub fn genrand_init(s: uint32) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_init_array( - init_key: *mut uint32, - key_length: ::std::os::raw::c_uint, - ) -> *mut rand_state_t; -} -extern "C" { - pub fn genrand_destroy(rs: *mut rand_state_t); -} -extern "C" { - pub fn genrand_uint32(rs: *mut rand_state_t) -> uint32; -} -extern "C" { - pub fn genrand_uint64(rs: *mut rand_state_t) -> uint64; -} -extern "C" { - pub fn genrand_range(rs: *mut rand_state_t, max: uint64) -> uint64; -} -extern "C" { - pub fn genrand_double(rs: *mut rand_state_t) -> f64; -} -extern "C" { - pub fn genrand_serialization(rs: *const rand_state_t) -> bytes_t; -} -extern "C" { - pub fn genrand_restore(rs: *mut rand_state_t, serialization: bytes_t) -> bool; -} -extern "C" { - pub fn vtether_aton_r( - a: *const ::std::os::raw::c_char, - fill: *mut ether_addr, - ) -> *mut ether_addr; -} -extern "C" { - pub fn vtether_ntoa_r( - n: *const ether_addr, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntoa_r( - ip: uint32, - fill: *mut ::std::os::raw::c_char, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtinet_ntop( - af: ::std::os::raw::c_int, - src: *const ::std::os::raw::c_void, - dst: *mut ::std::os::raw::c_char, - dstlen: ::std::os::raw::c_uint, - ) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn init_vtutils(); -} -extern "C" { - pub fn vtutils_set_low_memory_handler(f: ::std::option::Option); -} -extern "C" { - pub fn vtutils_set_assert_error_handler( - f: ::std::option::Option< - unsafe extern "C" fn( - line: ::std::os::raw::c_int, - file: *const ::std::os::raw::c_char, - mod_date: *const ::std::os::raw::c_char, - message: *const ::std::os::raw::c_char, - ), - >, - ); -} -extern "C" { - pub fn vtutils_set_fatal_error_handler( - f: ::std::option::Option, - ); -} -pub type interval_set_t = interval_set; -pub type interval_set_iter_t = interval_set_iter; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct range_node_t { - pub start: uint64, - pub end: uint64, - pub ptr: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout_range_node_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(range_node_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(range_node_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(range_node_t), - "::", - stringify!(ptr) - ) - ); -} -impl Default for range_node_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_section { - #[doc = " start of this section"] - pub start: uint64, - #[doc = " NULL if no intervals here"] - pub intervals: *mut interval_bucket, -} -#[test] -fn bindgen_test_layout_interval_section() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_section)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_section)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).intervals) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_section), - "::", - stringify!(intervals) - ) - ); -} -impl Default for interval_section { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set { - pub sections: interval_set__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set__bindgen_ty_1 { - pub size: ::std::os::raw::c_int, - pub used: ::std::os::raw::c_int, - pub elements: *mut interval_section, -} -#[test] -fn bindgen_test_layout_interval_set__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).used) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(used) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).elements) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set__bindgen_ty_1), - "::", - stringify!(elements) - ) - ); -} -impl Default for interval_set__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_interval_set() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(interval_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sections) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set), - "::", - stringify!(sections) - ) - ); -} -impl Default for interval_set { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn init_interval(is: *mut interval_set_t, allow_overlap: ::std::os::raw::c_int); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_set_iter { - pub is: *const interval_set_t, - pub start: uint64, - pub end: uint64, - #[doc = " section index"] - pub sect: ::std::os::raw::c_uint, - #[doc = " interval index"] - pub inum: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_interval_set_iter() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(interval_set_iter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(interval_set_iter)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).is) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(is) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(start) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).end) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(end) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).sect) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(sect) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).inum) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(interval_set_iter), - "::", - stringify!(inum) - ) - ); -} -impl Default for interval_set_iter { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn new_interval(dummy: ::std::os::raw::c_int) -> *mut interval_set_t; -} -extern "C" { - pub fn insert_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn get_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_interval_vector( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_interval_vector_and_range( - is: *mut interval_set_t, - address: uint64, - res: *mut *mut range_node_t, - first_address: *mut uint64, - last_address: *mut uint64, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn get_lower_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn get_higher_interval_ptr( - is: *mut interval_set_t, - address: uint64, - ) -> *mut ::std::os::raw::c_void; -} -extern "C" { - pub fn touch_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ) -> ::std::os::raw::c_int; -} -pub type intervals_func_t = ::std::option::Option< - unsafe extern "C" fn( - start: uint64, - end: uint64, - el: *mut ::std::os::raw::c_void, - data: *mut ::std::os::raw::c_void, - ), ->; -extern "C" { - pub fn for_all_intervals( - is: *mut interval_set_t, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn for_some_intervals( - is: *mut interval_set_t, - start: uint64, - end: uint64, - f: intervals_func_t, - data: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn remove_interval( - is: *mut interval_set_t, - start: uint64, - end: uint64, - ptr: *mut ::std::os::raw::c_void, - ); -} -extern "C" { - pub fn clear_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn free_interval(is: *mut interval_set_t); -} -extern "C" { - pub fn interval_set_new_iter( - is: *const interval_set_t, - it: *mut interval_set_iter_t, - start: uint64, - end: uint64, - ); -} -extern "C" { - pub fn interval_set_iter_next(it: *mut interval_set_iter_t) -> *mut range_node_t; -} -pub type os_time_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct os_tm { - #[doc = " Seconds. [0-60] (1 leap second)"] - pub tm_sec: ::std::os::raw::c_int, - #[doc = " Minutes. [0-59]"] - pub tm_min: ::std::os::raw::c_int, - #[doc = " Hours. [0-23]"] - pub tm_hour: ::std::os::raw::c_int, - #[doc = " Day. [1-31]"] - pub tm_mday: ::std::os::raw::c_int, - #[doc = " Month. [0-11]"] - pub tm_mon: ::std::os::raw::c_int, - #[doc = " Year - 1900."] - pub tm_year: ::std::os::raw::c_int, - #[doc = " Day of week. [0-6]"] - pub tm_wday: ::std::os::raw::c_int, - #[doc = " Days in year.[0-365]"] - pub tm_yday: ::std::os::raw::c_int, - #[doc = " DST. [-1/0/1]"] - pub tm_isdst: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_os_tm() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 36usize, - concat!("Size of: ", stringify!(os_tm)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(os_tm)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_sec) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_min) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_min) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_hour) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_hour) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mday) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_mon) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_mon) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_year) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_year) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_wday) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_wday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_yday) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_yday) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).tm_isdst) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(os_tm), - "::", - stringify!(tm_isdst) - ) - ); -} -pub type os_tm_t = os_tm; -extern "C" { - pub fn os_gmtime(timep: *const os_time_t) -> os_tm_t; -} -extern "C" { - pub fn os_timegm(tmp: *mut os_tm_t) -> os_time_t; -} -extern "C" { - pub fn os_strptime( - str_: *const ::std::os::raw::c_char, - format: *const ::std::os::raw::c_char, - tm: *mut os_tm_t, - ) -> *const ::std::os::raw::c_char; -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct vhdx_file { - _unused: [u8; 0], -} -pub type vhdx_file_t = vhdx_file; -#[doc = " UUID of the Microsoft kind. The byte-order of the on-disk format is\ndifferent from the standard representation."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_muuid_t { - #[doc = " Fields d1-d3 are apparently in little-endian order, despite the\nclaims of the VHD spec."] - pub d1: uint32, - pub d2: uint16, - pub d3: uint16, - #[doc = " In straight order (BE)."] - pub d4: [uint8; 8usize], -} -#[test] -fn bindgen_test_layout_vhdx_muuid_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(vhdx_muuid_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d1) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d1) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d2) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d2) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d3) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d3) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).d4) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vhdx_muuid_t), - "::", - stringify!(d4) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vhdx_info_t { - #[doc = " From VHDX specification: \"Contains a UTF-16 string that can be null\nterminated. This field is optional; the implementation fills it in\nduring the creation of the VHDX file to identify, uniquely, the\ncreator of the VHDX file. Implementation MUST NOT use this field as\na mechanism to influence implementation behavior; it exists for\ndiagnostic purposes only.\""] - pub creator: [::std::os::raw::c_char; 512usize], - #[doc = " the size of the virtual disk, in bytes"] - pub size: uint64, - #[doc = " the virtual disk's sector size, in bytes"] - pub logical_sector_size: uint32, - #[doc = " the virtual disk's physical sector size, in bytes"] - pub physical_sector_size: uint32, - #[doc = " A GUID that specifies the identification of the disk."] - pub virtual_disk_id: vhdx_muuid_t, - #[doc = " A GUID that identifies the file's contents."] - pub file_write_guid: vhdx_muuid_t, - #[doc = " A GUID that identifies the contents of user visible data.\nIt is used for the validation of a differential VHDX chain."] - pub data_write_guid: vhdx_muuid_t, - #[doc = " Specifies the version of the VHDX format used\nwithin the VHDX file."] - pub version: uint16, - #[doc = " Specifies whether this file has a parent VHDX file. If set, the file\nis a differencing file, and one or more parent locators specify the\nlocation and identity of the parent."] - pub has_parent: bool, - #[doc = " the size of each payload block in bytes"] - pub block_size: uint32, -} -#[test] -fn bindgen_test_layout_vhdx_info_t() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 584usize, - concat!("Size of: ", stringify!(vhdx_info_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vhdx_info_t)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).creator) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(creator) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).size) as usize - ptr as usize }, - 512usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).logical_sector_size) as usize - ptr as usize }, - 520usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(logical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).physical_sector_size) as usize - ptr as usize }, - 524usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(physical_sector_size) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).virtual_disk_id) as usize - ptr as usize }, - 528usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(virtual_disk_id) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).file_write_guid) as usize - ptr as usize }, - 544usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(file_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).data_write_guid) as usize - ptr as usize }, - 560usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(data_write_guid) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize }, - 576usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(version) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_parent) as usize - ptr as usize }, - 578usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(has_parent) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).block_size) as usize - ptr as usize }, - 580usize, - concat!( - "Offset of field: ", - stringify!(vhdx_info_t), - "::", - stringify!(block_size) - ) - ); -} -impl Default for vhdx_info_t { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn vhdx_open( - fname: *const ::std::os::raw::c_char, - writable: bool, - ce: *mut craff_error_t, - ) -> *mut vhdx_file_t; -} -extern "C" { - pub fn vhdx_close(file: *mut vhdx_file_t) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_write( - file: *mut vhdx_file_t, - buf: *const ::std::os::raw::c_void, - ofs: uint64, - len: usize, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_read( - file: *mut vhdx_file_t, - buf: *mut ::std::os::raw::c_void, - ofs: uint64, - len: usize, - gaps: *mut craff_interv_vec_t, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vhdx_virtual_disk_size(file: *mut vhdx_file_t) -> uint64; -} -extern "C" { - pub fn vhdx_get_info(file: *mut vhdx_file_t, info: *mut vhdx_info_t, info_size: usize); -} -extern "C" { - pub fn vhdx_file_error_message(file: *mut vhdx_file_t) -> *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vhdx_muuid_to_str(vhdx_muuid: vhdx_muuid_t) -> *mut ::std::os::raw::c_char; -} -pub const vtopt_arguments_vtopt_no_argument: vtopt_arguments = 0; -pub const vtopt_arguments_vtopt_required_argument: vtopt_arguments = 1; -pub const vtopt_arguments_vtopt_optional_argument: vtopt_arguments = 2; -pub type vtopt_arguments = ::std::os::raw::c_uint; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct vtoption { - pub name: *const ::std::os::raw::c_char, - pub has_arg: vtopt_arguments, - pub flag: *mut ::std::os::raw::c_int, - pub val: ::std::os::raw::c_int, -} -#[test] -fn bindgen_test_layout_vtoption() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(vtoption)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(vtoption)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(name) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(has_arg) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(flag) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(vtoption), - "::", - stringify!(val) - ) - ); -} -impl Default for vtoption { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -extern "C" { - pub fn get_vtoptind() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtopterr() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptopt() -> *mut ::std::os::raw::c_int; -} -extern "C" { - pub fn get_vtoptarg() -> *mut *const ::std::os::raw::c_char; -} -extern "C" { - pub fn vtgetopt_long( - argc: ::std::os::raw::c_int, - argv: *mut *const ::std::os::raw::c_char, - optstring: *const ::std::os::raw::c_char, - longopts: *const vtoption, - longindex: *mut ::std::os::raw::c_int, - ) -> ::std::os::raw::c_int; -} -extern "C" { - pub fn vtgetopt_restart(); -} -pub type __builtin_va_list = [__va_list_tag; 1usize]; -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __va_list_tag { - pub gp_offset: ::std::os::raw::c_uint, - pub fp_offset: ::std::os::raw::c_uint, - pub overflow_arg_area: *mut ::std::os::raw::c_void, - pub reg_save_area: *mut ::std::os::raw::c_void, -} -#[test] -fn bindgen_test_layout___va_list_tag() { - const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<__va_list_tag>(), - 24usize, - concat!("Size of: ", stringify!(__va_list_tag)) - ); - assert_eq!( - ::std::mem::align_of::<__va_list_tag>(), - 8usize, - concat!("Alignment of ", stringify!(__va_list_tag)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(gp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(fp_offset) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(overflow_arg_area) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(__va_list_tag), - "::", - stringify!(reg_save_area) - ) - ); -} -impl Default for __va_list_tag { - fn default() -> Self { - let mut s = ::std::mem::MaybeUninit::::uninit(); - unsafe { - ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[doc = " 13 = __LC_LAST."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct __locale_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct _dictkeysobject { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct transaction_cache { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct proplist { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct log_info { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct confdata { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct extension_data { - pub _address: u8, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct thread_domain { - pub _address: u8, -} -#[doc = " Back-pointer to interface."] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct iface { - pub _address: u8, -} -#[doc = " NULL if no intervals here"] -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -pub struct interval_bucket { - pub _address: u8, -} diff --git a/simics-api-sys/src/bindings/mod.rs b/simics-api-sys/src/bindings/mod.rs deleted file mode 100644 index 06f0a0e1..00000000 --- a/simics-api-sys/src/bindings/mod.rs +++ /dev/null @@ -1,30 +0,0 @@ -//! Raw bindings to the SIMICS API - -#![allow(non_upper_case_globals)] -#![allow(non_camel_case_types)] -#![allow(non_snake_case)] -#![allow(clippy::useless_transmute)] -#![allow(clippy::missing_safety_doc)] -#![allow(clippy::type_complexity)] -#![allow(clippy::too_many_arguments)] -#![allow(clippy::unnecessary_cast)] -#[cfg(feature = "6.0.163")] -include!("bindings-6.0.163.rs"); -#[cfg(feature = "6.0.164")] -include!("bindings-6.0.164.rs"); -#[cfg(feature = "6.0.165")] -include!("bindings-6.0.165.rs"); -#[cfg(feature = "6.0.166")] -include!("bindings-6.0.166.rs"); -#[cfg(feature = "6.0.167")] -include!("bindings-6.0.167.rs"); -#[cfg(feature = "6.0.168")] -include!("bindings-6.0.168.rs"); -#[cfg(feature = "6.0.169")] -include!("bindings-6.0.169.rs"); -#[cfg(feature = "6.0.170")] -include!("bindings-6.0.170.rs"); -#[cfg(feature = "6.0.171")] -include!("bindings-6.0.171.rs"); -#[cfg(feature = "6.0.172")] -include!("bindings-6.0.172.rs"); diff --git a/simics-api-sys/src/lib.rs b/simics-api-sys/src/lib.rs deleted file mode 100644 index 9f2b2dc8..00000000 --- a/simics-api-sys/src/lib.rs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! # SIMICS API SYS -//! -//! Low level bindings to the SIMICS API -//! -//! This crate provides raw bindings to the SIMICS api built directly from the header files of the -//! SIMICS base package using `bindgen`. In general, you should prefer to use the `simics-api` -//! crate over this one, as it provides higher level safe bindings to the SIMICS API. -//! - -#![deny(clippy::unwrap_used)] - -mod bindings; - -pub use bindings::*; - -#[cfg(feature = "6.0.163")] -pub const SIMICS_VERSION: &str = "6.0.163"; -#[cfg(feature = "6.0.164")] -pub const SIMICS_VERSION: &str = "6.0.164"; -#[cfg(feature = "6.0.165")] -pub const SIMICS_VERSION: &str = "6.0.165"; -#[cfg(feature = "6.0.166")] -pub const SIMICS_VERSION: &str = "6.0.166"; -#[cfg(feature = "6.0.167")] -pub const SIMICS_VERSION: &str = "6.0.167"; -#[cfg(feature = "6.0.168")] -pub const SIMICS_VERSION: &str = "6.0.168"; -#[cfg(feature = "6.0.169")] -pub const SIMICS_VERSION: &str = "6.0.169"; -#[cfg(feature = "6.0.170")] -pub const SIMICS_VERSION: &str = "6.0.170"; -#[cfg(feature = "6.0.171")] -pub const SIMICS_VERSION: &str = "6.0.171"; -#[cfg(feature = "6.0.172")] -pub const SIMICS_VERSION: &str = "6.0.172"; diff --git a/simics-api/Cargo.toml b/simics-api/Cargo.toml deleted file mode 100644 index d5ff144b..00000000 --- a/simics-api/Cargo.toml +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "simics-api" -categories.workspace = true -description = "High level SIMICS API bindings" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -simics-api-sys = { workspace = true } -raw-cstr = { workspace = true } -anyhow.workspace = true -num-derive = "0.4.0" -num-traits = "0.2.15" -num = "0.4.0" -simics-api-macro = { workspace = true, optional = true } -const-str = "0.5.4" -paste = "1.0.12" -clap = { version = "4.3.0", features = ["derive"] } -tracing = "0.1.37" - -[features] -# Derive is provided by default to provide #[derive(Module)] and #[module] -default = ["derive"] - -# Provide #[derive(Module)] and #[module] -derive = ["simics-api-macro"] - -# When simics-api-sys is updated to include a new SIMICS version, add a new entry here -# manually as well -"6.0.163" = ["simics-api-sys/6.0.163"] -"6.0.164" = ["simics-api-sys/6.0.164"] -"6.0.165" = ["simics-api-sys/6.0.165"] -"6.0.166" = ["simics-api-sys/6.0.166"] -"6.0.167" = ["simics-api-sys/6.0.167"] -"6.0.168" = ["simics-api-sys/6.0.168"] -"6.0.169" = ["simics-api-sys/6.0.169"] -"6.0.170" = ["simics-api-sys/6.0.170"] -"6.0.171" = ["simics-api-sys/6.0.171"] -"6.0.172" = ["simics-api-sys/6.0.172"] \ No newline at end of file diff --git a/simics-api/src/lib.rs b/simics-api/src/lib.rs deleted file mode 100644 index 58ee5bab..00000000 --- a/simics-api/src/lib.rs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! SIMICS API -//! -//! High Level safe bindings to the SIMICS API -//! -//! This crate provides higher-level bindings to the SIMICS API for writing safe code for the -//! SIMICS platform. This crate should be used instead of `simics-api-sys` for most purposes. -#![allow(clippy::useless_conversion)] -#![deny(clippy::unwrap_used)] - -#[cfg(not(any( - feature = "6.0.163", - feature = "6.0.164", - feature = "6.0.165", - feature = "6.0.166", - feature = "6.0.167", - feature = "6.0.168", - feature = "6.0.169", - feature = "6.0.170", - feature = "6.0.171", - feature = "6.0.172", -)))] -compile_error!("Must enable a feature to specify a SIMICS API version"); - -#[cfg(any( - feature = "6.0.163", - feature = "6.0.164", - feature = "6.0.165", - feature = "6.0.166", - feature = "6.0.167", - feature = "6.0.168", - feature = "6.0.169", - feature = "6.0.170", - feature = "6.0.171", - feature = "6.0.172", -))] -pub mod safe; - -#[cfg(any( - feature = "6.0.163", - feature = "6.0.164", - feature = "6.0.165", - feature = "6.0.166", - feature = "6.0.167", - feature = "6.0.168", - feature = "6.0.169", - feature = "6.0.170", - feature = "6.0.171", - feature = "6.0.172", -))] -pub use safe::*; - -pub use simics_api_sys as sys; diff --git a/simics-api/src/safe/arch/mod.rs b/simics-api/src/safe/arch/mod.rs deleted file mode 100644 index 66ff2745..00000000 --- a/simics-api/src/safe/arch/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 diff --git a/simics-api/src/safe/base/attr_value.rs b/simics-api/src/safe/base/attr_value.rs deleted file mode 100644 index 059bd54a..00000000 --- a/simics-api/src/safe/base/attr_value.rs +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Safe wrappers for attr_value_t operations -//! -//! `attr_value_t` instances are basically Python objects as tagged unions (like an `enum`), these -//! functions convert the objects back and forth between anonymous `attr_value_t` and actual data -//! types like `bool`, `String`, etc. - -use crate::ConfObject; -use anyhow::{anyhow, ensure, Error, Result}; -use num_derive::{FromPrimitive, ToPrimitive}; -use num_traits::{FromPrimitive as ConvertFromPrimitive, ToPrimitive as ConvertToPrimitive}; -use raw_cstr::raw_cstr; -use simics_api_sys::{ - attr_kind_t_Sim_Val_Boolean, attr_kind_t_Sim_Val_Data, attr_kind_t_Sim_Val_Dict, - attr_kind_t_Sim_Val_Floating, attr_kind_t_Sim_Val_Integer, attr_kind_t_Sim_Val_Invalid, - attr_kind_t_Sim_Val_List, attr_kind_t_Sim_Val_Nil, attr_kind_t_Sim_Val_Object, - attr_kind_t_Sim_Val_String, attr_value__bindgen_ty_1, attr_value_t, SIM_alloc_attr_list, - SIM_attr_free, SIM_free_attribute, SIM_get_attribute, -}; -use std::{ffi::CStr, mem::size_of, ptr::null_mut}; - -pub type AttrValue = attr_value_t; - -#[derive(Debug, FromPrimitive, ToPrimitive)] -#[repr(u32)] -/// The possible types of an `AttrValue` -pub enum AttrKind { - Boolean = attr_kind_t_Sim_Val_Boolean, - Data = attr_kind_t_Sim_Val_Data, - Dict = attr_kind_t_Sim_Val_Dict, - Floating = attr_kind_t_Sim_Val_Floating, - Integer = attr_kind_t_Sim_Val_Integer, - Invalid = attr_kind_t_Sim_Val_Invalid, - List = attr_kind_t_Sim_Val_List, - Nil = attr_kind_t_Sim_Val_Nil, - Object = attr_kind_t_Sim_Val_Object, - String = attr_kind_t_Sim_Val_String, -} - -impl TryFrom for u32 { - type Error = Error; - - fn try_from(value: AttrKind) -> Result { - value - .to_u32() - .ok_or_else(|| anyhow!("Invalid value {:?}", value)) - } -} - -impl TryFrom for AttrKind { - type Error = Error; - - fn try_from(value: u32) -> Result { - ConvertFromPrimitive::from_u32(value).ok_or_else(|| anyhow!("Invalid value {}", value)) - } -} - -/// Create a new invalid [`AttrValue`] -pub fn make_attr_invalid() -> Result { - Ok(AttrValue { - private_kind: AttrKind::Invalid.try_into()?, - private_size: 0, - private_u: attr_value__bindgen_ty_1 { integer: 0 }, - }) -} - -/// Create a new nil [`AttrValue`] -pub fn make_attr_nil() -> Result { - Ok(AttrValue { - private_kind: AttrKind::Nil.try_into()?, - private_size: 0, - private_u: attr_value__bindgen_ty_1 { integer: 0 }, - }) -} - -/// Create a new uint64 [`AttrValue`] with a value of `i` -pub fn make_attr_uint64(i: u64) -> Result { - Ok(AttrValue { - private_kind: AttrKind::Integer.try_into()?, - private_size: 0, /* unsigned */ - private_u: attr_value__bindgen_ty_1 { - integer: i64::try_from(i)?, - }, - }) -} - -/// Create a new int64 [`AttrValue`] with a value of `i` -pub fn make_attr_int64(i: i64) -> Result { - Ok(AttrValue { - private_kind: AttrKind::Integer.try_into()?, - private_size: 1, /* signed */ - private_u: attr_value__bindgen_ty_1 { integer: i }, - }) -} - -/// Create a new boolean [`AttrValue`] with a value of `b` -pub fn make_attr_boolean(b: bool) -> Result { - Ok(AttrValue { - private_kind: AttrKind::Boolean.try_into()?, - private_size: 0, - private_u: attr_value__bindgen_ty_1 { boolean: b }, - }) -} - -/// Create a newly allocated string [`AttrValue`] with a value of `s` -pub fn make_attr_string_adopt(s: S) -> Result -where - S: AsRef, -{ - let string = raw_cstr(s)?; - - Ok(AttrValue { - private_kind: if string.is_null() { - AttrKind::Nil.try_into()? - } else { - AttrKind::String.try_into()? - }, - private_size: 0, - private_u: attr_value__bindgen_ty_1 { string }, - }) -} - -/// Create a new floating point [`AttrValue`] with a value of `d` -pub fn make_attr_floating(d: f64) -> Result { - Ok(AttrValue { - private_kind: AttrKind::Floating.try_into()?, - private_size: 0, - private_u: attr_value__bindgen_ty_1 { floating: d }, - }) -} - -/// Create a new object [`AttrValue`] with a value of `obj` -pub fn make_attr_object(obj: *mut ConfObject) -> Result { - Ok(AttrValue { - private_kind: if (obj as *const ConfObject).is_null() { - AttrKind::Nil.try_into()? - } else { - AttrKind::Object.try_into()? - }, - private_size: 0, - private_u: attr_value__bindgen_ty_1 { object: obj.into() }, - }) -} - -/// Create a new data [`AttrValue`], which is effectively a fat pointer to the data, with a given -/// size. The data will be moved into a [`Box`], which will be converted to a raw pointer. -pub fn make_attr_data_adopt(data: T) -> Result { - let data = Box::new(data); - let data_raw = Box::into_raw(data); - - debug_assert!( - std::mem::size_of_val(&data_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), - "Pointer is not convertible to *mut c_void" - ); - - let data_size = u32::try_from(size_of::<*mut T>())?; - - ensure!( - !(data_raw.is_null() && data_size == 0), - "NULL data requires zero size" - ); - - Ok(attr_value_t { - private_kind: AttrKind::Data.try_into()?, - private_size: u32::try_from(data_size)?, - private_u: attr_value__bindgen_ty_1 { - data: data_raw as *mut u8, - }, - }) -} - -/// Check whether an [`AttrValue`] is nil -pub fn attr_is_nil(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Nil.try_into()?) -} - -/// Check whether an [`AttrValue`] is int64 -pub fn attr_is_int64(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Integer.try_into()? - && (attr.private_size == 0 || unsafe { attr.private_u.integer } >= 0)) -} - -/// Check whether an [`AttrValue`] is uint64 -pub fn attr_is_uint64(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Integer.try_into()? - && (attr.private_size != 0 || unsafe { attr.private_u.integer } >= 0)) -} - -/// Check whether an [`AttrValue`] is an integer -pub fn attr_is_integer(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Integer.try_into()?) -} - -/// Get an [`AttrValue`] as an integer -pub fn attr_integer(attr: AttrValue) -> Result { - ensure!(attr_is_integer(attr)?, "Attribute must be integer!"); - Ok(unsafe { attr.private_u.integer }) -} - -/// Check whether an [`AttrValue`] is a boolean -pub fn attr_is_boolean(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Boolean.try_into()?) -} - -/// Get an [`AttrValue`] as a boolean -pub fn attr_boolean(attr: AttrValue) -> Result { - ensure!(attr_is_boolean(attr)?, "Attribute must be bool!"); - Ok(unsafe { attr.private_u.boolean }) -} - -/// Check whether an [`AttrValue`] is a String -pub fn attr_is_string(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::String.try_into()?) -} - -/// Get an [`AttrValue`] as a String -pub fn attr_string(attr: AttrValue) -> Result { - ensure!(attr_is_string(attr)?, "Attribute must be string!"); - Ok(unsafe { CStr::from_ptr(attr.private_u.string) } - .to_string_lossy() - .to_string()) -} - -/* */ -// TODO: Impl -// pub fn attr_string_detach(attr: *mut attr_value_t) -> char * { -// -// char *ret; -// VALIDATE_ATTR_KIND(SIM_attr_string_detach, *attr, String, -// (SIM_attr_free(attr), -// *attr = SIM_make_attr_nil(), -// MM_STRDUP(""))); -// ret = (char *)attr-.private_u.string; -// *attr = SIM_make_attr_nil(); -// return ret; -// } - -/// Check whether an [`AttrValue`] is a String -pub fn attr_is_floating(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Floating.try_into()?) -} - -/// Get an [`AttrValue`] as a f64 -pub fn attr_floating(attr: AttrValue) -> Result { - ensure!(attr_is_floating(attr)?, "Attribute must be floating point!"); - Ok(unsafe { attr.private_u.floating }) -} - -/// Check whether an [`AttrValue`] is a String -pub fn attr_is_object(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Object.try_into()?) -} - -/// Get an [`AttrValue`] as an object -pub fn attr_object(attr: AttrValue) -> Result<*mut ConfObject> { - ensure!(attr_is_object(attr)?, "Attribute must be object!"); - Ok(unsafe { attr.private_u.object }) -} - -/// Obtain a [`ConfObject`] pointer from an [`AttrValue`] pointer -pub fn attr_object_from_ptr(attr: *mut AttrValue) -> Result<*mut ConfObject> { - let ptr: *mut AttrValue = attr.into(); - attr_object(unsafe { *ptr }) -} - -/// Get an [`AttrValue`] as an object or nil if the object is a null pointer -pub fn attr_object_or_nil(attr: AttrValue) -> Result<*mut ConfObject> { - if attr_is_nil(attr)? { - Ok(null_mut()) - } else { - attr_object(attr) - } -} - -/// Get an [`AttrValue`] as an object or nil if the object is a null pointer -pub fn attr_object_or_nil_from_ptr(attr: *mut AttrValue) -> Result<*mut ConfObject> { - let ptr: *mut AttrValue = attr.into(); - attr_object_or_nil(unsafe { *ptr }) -} - -/// Check whether an [`AttrValue`] is invalid -pub fn attr_is_invalid(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Invalid.try_into()?) -} - -/// Check whether an [`AttrValue`] is data -pub fn attr_is_data(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::Data.try_into()?) -} - -/// Get the size of an [`AttrValue`]'s data -pub fn attr_data_size(attr: AttrValue) -> Result { - ensure!(attr_is_data(attr)?, "Attribute must be data!"); - Ok(attr.private_size) -} - -pub fn attr_data(attr: AttrValue) -> Result { - ensure!(attr_is_data(attr)?, "Attribute must be data!"); - let data: Box = unsafe { Box::from_raw(attr.private_u.data as *mut T) }; - Ok(*data) -} - -/// Check whether an [`AttrValue`] is a list -pub fn attr_is_list(attr: AttrValue) -> Result { - Ok(attr.private_kind == AttrKind::List.try_into()?) -} - -/// Get the size of an [`AttrValue`]'s list -pub fn attr_list_size(attr: AttrValue) -> Result { - ensure!(attr_is_list(attr)?, "Attribute must be list!"); - Ok(attr.private_size) -} - -/// Retrieve a list item from an attr -/// -/// # Safety -/// -/// The bounds of the list are checked before obtaining an offset, so this function will never -/// crash unless the list size is incorrectly set by SIMICS -pub unsafe fn attr_list_item(attr: AttrValue, index: u32) -> Result { - ensure!(attr_is_list(attr)?, "Attribute must be list!"); - ensure!(index < attr_list_size(attr)?, "Index out of bounds of list"); - Ok(unsafe { *attr.private_u.list.offset(index.try_into()?) }) -} - -/// Get the an [`AttrValue`] as a list -pub fn attr_list(attr: AttrValue) -> Result<*mut AttrValue> { - ensure!(attr_is_list(attr)?, "Attribute must be list!"); - Ok(unsafe { attr.private_u.list }.into()) -} - -/// Check whether an [`AttrValue`] is a dict -pub fn attr_is_dict(attr: AttrValue) -> bool { - attr.private_kind == attr_kind_t_Sim_Val_Dict -} - -/// Get the size of an an [`AttrValue`]'s dict -pub fn attr_dict_size(attr: AttrValue) -> Result { - ensure!(attr_is_dict(attr), "Attribute must be dict!"); - Ok(attr.private_size) -} - -/// Get a key for an [`AttrValue`]'s dict -pub fn attr_dict_key(attr: AttrValue, index: u32) -> Result { - ensure!(attr_is_dict(attr), "Attribute must be dict!"); - ensure!( - index < attr_dict_size(attr)?, - "Index out of range of dictionary!" - ); - let pair = unsafe { attr.private_u.dict.offset(index.try_into()?) }; - Ok(unsafe { *pair }.key) -} - -/// Get a value for an [`AttrValue`]'s dict -pub fn attr_dict_value(attr: AttrValue, index: u32) -> Result { - ensure!(attr_is_dict(attr), "Attribute must be dict!"); - ensure!( - index < attr_dict_size(attr)?, - "Index out of range of dictionary!" - ); - let pair = unsafe { attr.private_u.dict.offset(index.try_into()?) }; - Ok(unsafe { *pair }.value) -} - -/// Get an attribute of an object -pub fn get_attribute(obj: *mut ConfObject, attribute: S) -> Result -where - S: AsRef, -{ - Ok(unsafe { SIM_get_attribute(obj.into(), raw_cstr(attribute)?) }) -} - -pub fn free_attribute(attr: AttrValue) { - unsafe { SIM_free_attribute(attr) } -} - -pub fn attr_free(attr: *mut AttrValue) { - unsafe { SIM_attr_free(attr.into()) } -} - -pub fn alloc_attr_list(length: u32) -> AttrValue { - unsafe { SIM_alloc_attr_list(length) } -} diff --git a/simics-api/src/safe/base/conf_object.rs b/simics-api/src/safe/base/conf_object.rs deleted file mode 100644 index 11f32a64..00000000 --- a/simics-api/src/safe/base/conf_object.rs +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! conf_object - High level bindings for conf-object.h -//! -//! Defines: -//! - class_data_t -//! - class_info_t -//! - conf_class_t -//! - conf_object_t -//! - object_iter_t - -use crate::{last_error, AttrValue, Interface}; -use anyhow::{bail, Result}; -use raw_cstr::raw_cstr; -use simics_api_sys::{ - class_data_t, class_info_t, class_kind_t_Sim_Class_Kind_Extension, - class_kind_t_Sim_Class_Kind_Pseudo, class_kind_t_Sim_Class_Kind_Session, - class_kind_t_Sim_Class_Kind_Vanilla, conf_class_t, conf_object_t, SIM_c_get_interface, - SIM_create_class, SIM_create_object, SIM_get_class, SIM_get_object, SIM_register_interface, -}; - -pub type ConfObject = conf_object_t; -pub type ConfClass = conf_class_t; -pub type ClassData = class_data_t; -pub type ClassInfo = class_info_t; - -#[derive(Debug, Eq, PartialEq)] -#[repr(u32)] -/// Kinds of classes -pub enum ClassKind { - Vanilla = class_kind_t_Sim_Class_Kind_Vanilla, - Session = class_kind_t_Sim_Class_Kind_Session, - Pseudo = class_kind_t_Sim_Class_Kind_Pseudo, - Extension = class_kind_t_Sim_Class_Kind_Extension, -} - -/// Create a class instance -pub fn create_class(name: S, class_info: ClassInfo) -> Result<*mut ConfClass> -where - S: AsRef, -{ - let name_raw = raw_cstr(name.as_ref())?; - - // The reference can be dropped after the `SIM_create_class` function returns, - // so this is safe to call this way - let cls = unsafe { SIM_create_class(name_raw, &class_info as *const ClassInfo) }; - - if cls.is_null() { - bail!( - "Failed to register class {}: {}", - name.as_ref(), - last_error() - ); - } else { - Ok(cls) - } -} - -/// Register an interface for a class -pub fn register_interface(cls: *mut ConfClass, name: S) -> Result -where - S: AsRef, - T: Default, -{ - let name_raw = raw_cstr(name.as_ref())?; - let iface_box = Box::::default(); - // Note: This allocates and never frees. This is *required* by SIMICS and it is an error to - // free this pointer - let iface_raw = Box::into_raw(iface_box); - - debug_assert!( - std::mem::size_of_val(&iface_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), - "Pointer is not convertible to *mut c_void" - ); - - let status = unsafe { SIM_register_interface(cls.into(), name_raw, iface_raw as *mut _) }; - - if status != 0 { - bail!( - "Failed to register interface {}: {}", - name.as_ref(), - last_error() - ); - } else { - Ok(status) - } -} - -/// Get an interface of an object -pub fn get_interface(obj: *mut ConfObject, iface: Interface) -> Result<*mut T> { - Ok(unsafe { - SIM_c_get_interface( - obj as *const ConfObject, - iface.try_as_slice()?.as_ptr() as *const i8, - ) as *mut T - }) -} - -/// Get a class instance by name -pub fn get_class(name: S) -> Result<*mut ConfClass> -where - S: AsRef, -{ - let name_raw = raw_cstr(name.as_ref())?; - - let cls = unsafe { SIM_get_class(name_raw) }; - - if cls.is_null() { - bail!("Failed to get class {}: {}", name.as_ref(), last_error()); - } else { - Ok(cls) - } -} - -pub fn create_object(cls: *mut ConfClass, name: S, attrs: AttrValue) -> Result<*mut ConfObject> -where - S: AsRef, -{ - let obj = unsafe { SIM_create_object(cls.into(), raw_cstr(name)?, attrs) }; - - if obj.is_null() { - bail!("Unable to create object due to badly formatted name, already existing object, or failed initialization: {}", last_error()); - } else { - Ok(obj) - } -} - -pub fn get_object(name: S) -> Result<*mut ConfObject> -where - S: AsRef, -{ - let obj = unsafe { SIM_get_object(raw_cstr(name.as_ref())?) }; - - if obj.is_null() { - bail!("Unable to get object {}: {}", name.as_ref(), last_error()); - } else { - Ok(obj) - } -} diff --git a/simics-api/src/safe/base/event.rs b/simics-api/src/safe/base/event.rs deleted file mode 100644 index fac2b2fd..00000000 --- a/simics-api/src/safe/base/event.rs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::{last_error, ConfClass, ConfObject}; -use anyhow::{bail, ensure, Result}; -use raw_cstr::raw_cstr; -use simics_api_sys::{ - event_class_flag_t_Sim_EC_Machine_Sync, event_class_flag_t_Sim_EC_No_Flags, - event_class_flag_t_Sim_EC_No_Serialize, event_class_flag_t_Sim_EC_Notsaved, - event_class_flag_t_Sim_EC_Slot_Early, event_class_flag_t_Sim_EC_Slot_Late, event_class_t, - SIM_event_cancel_time, SIM_event_find_next_time, SIM_event_post_time, SIM_register_event, -}; -use std::{ffi::c_void, mem::transmute, ptr::null_mut}; - -pub type EventClass = event_class_t; - -/// Post an event to be triggered after a particular amount of time -pub fn event_post_time( - clock: *mut ConfObject, - event: *mut EventClass, - obj: *mut ConfObject, - seconds: f64, - user_data: Option, -) where - D: Into<*mut c_void>, -{ - let user_data = match user_data { - Some(data) => data.into(), - None => null_mut(), - }; - - unsafe { SIM_event_post_time(clock.into(), event.into(), obj.into(), seconds, user_data) }; -} - -/// Find the next time an event is scheduled to be triggered -pub fn event_find_next_time( - clock: *mut ConfObject, - event: *mut EventClass, - obj: *mut ConfObject, -) -> Result { - let time = unsafe { - SIM_event_find_next_time(clock.into(), event.into(), obj.into(), None, null_mut()) - }; - - if time == -1.0 { - bail!("No matching event was found"); - } else { - Ok(time) - } -} - -/// Cancel an event that was posted with [`event_post_time`] -pub fn event_cancel_time(clock: *mut ConfObject, event: *mut EventClass, obj: *mut ConfObject) { - unsafe { SIM_event_cancel_time(clock.into(), event.into(), obj.into(), None, null_mut()) } -} - -#[derive(Copy, Clone, Debug)] -#[repr(u32)] -/// Flags for an event -pub enum EventFlags { - None = event_class_flag_t_Sim_EC_No_Flags, - NotSaved = event_class_flag_t_Sim_EC_Notsaved, - MachineSync = event_class_flag_t_Sim_EC_Machine_Sync, - NoSerialize = event_class_flag_t_Sim_EC_No_Serialize, - SlotEarly = event_class_flag_t_Sim_EC_Slot_Early, - SlotLate = event_class_flag_t_Sim_EC_Slot_Late, -} - -/// Register an event with a callback. If `flags` is `&[EventFlags::NotSaved]`, `cls` may be -/// null. -pub fn register_event( - name: S, - cls: *mut ConfClass, - callback: extern "C" fn(trigger_obj: *mut ConfObject, user_data: *mut c_void), - flags: &[EventFlags], -) -> Result<*mut EventClass> -where - S: AsRef, -{ - let mut event_flags = EventFlags::None as u32; - for flag in flags { - event_flags |= *flag as u32; - } - - let event = unsafe { - SIM_register_event( - raw_cstr(name.as_ref())?, - cls.into(), - event_flags, - transmute(callback), - None, - None, - None, - None, - ) - }; - - ensure!( - !event.is_null(), - "Unable to register event {}: {}", - name.as_ref(), - last_error() - ); - - Ok(event) -} diff --git a/simics-api/src/safe/base/sim_exception.rs b/simics-api/src/safe/base/sim_exception.rs deleted file mode 100644 index e8c6d572..00000000 --- a/simics-api/src/safe/base/sim_exception.rs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::{anyhow, Error, Result}; -use num_derive::FromPrimitive; -use simics_api_sys::{ - sim_exception_SimExc_AttrNotFound, sim_exception_SimExc_AttrNotReadable, - sim_exception_SimExc_AttrNotWritable, sim_exception_SimExc_Attribute, - sim_exception_SimExc_Break, sim_exception_SimExc_General, sim_exception_SimExc_IOError, - sim_exception_SimExc_IllegalValue, sim_exception_SimExc_Index, - sim_exception_SimExc_InquiryOutsideMemory, sim_exception_SimExc_InquiryUnhandled, - sim_exception_SimExc_InterfaceNotFound, sim_exception_SimExc_License, - sim_exception_SimExc_Lookup, sim_exception_SimExc_Memory, sim_exception_SimExc_No_Exception, - sim_exception_SimExc_PythonTranslation, sim_exception_SimExc_Type, - sim_exception_Sim_Exceptions, SIM_clear_exception, SIM_get_pending_exception, SIM_last_error, -}; -use std::ffi::CStr; - -#[derive(FromPrimitive, Debug)] -#[repr(u32)] -pub enum SimException { - NoException = sim_exception_SimExc_No_Exception, - General = sim_exception_SimExc_General, - Lookup = sim_exception_SimExc_Lookup, - Attribute = sim_exception_SimExc_Attribute, - IOError = sim_exception_SimExc_IOError, - Index = sim_exception_SimExc_Index, - Memory = sim_exception_SimExc_Memory, - Type = sim_exception_SimExc_Type, - Break = sim_exception_SimExc_Break, - PythonTranslation = sim_exception_SimExc_PythonTranslation, - License = sim_exception_SimExc_License, - IllegalValue = sim_exception_SimExc_IllegalValue, - InquiryOutsideMemory = sim_exception_SimExc_InquiryOutsideMemory, - InquiryUnhandled = sim_exception_SimExc_InquiryUnhandled, - InterfaceNotFound = sim_exception_SimExc_InterfaceNotFound, - AttrNotFound = sim_exception_SimExc_AttrNotFound, - AttrNotReadable = sim_exception_SimExc_AttrNotReadable, - AttrNotWritable = sim_exception_SimExc_AttrNotWritable, - Exceptions = sim_exception_Sim_Exceptions, -} - -impl TryFrom for SimException { - type Error = Error; - - fn try_from(value: u32) -> Result { - num::FromPrimitive::from_u32(value) - .ok_or_else(|| anyhow!("Could not convert {} to SimException", value)) - } -} - -/// Get the last SIMICS error as a string -pub fn last_error() -> String { - let error_str = unsafe { CStr::from_ptr(SIM_last_error()) }; - error_str.to_string_lossy().to_string() -} - -pub fn clear_exception() -> Result { - unsafe { SIM_clear_exception() }.try_into() -} - -pub fn get_pending_exception() -> Result { - unsafe { SIM_get_pending_exception() }.try_into() -} diff --git a/simics-api/src/safe/base/time.rs b/simics-api/src/safe/base/time.rs deleted file mode 100644 index 2142e5d7..00000000 --- a/simics-api/src/safe/base/time.rs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::{last_error, ConfObject}; -use anyhow::{bail, Result}; -use simics_api_sys::SIM_object_clock; - -/// Get the clock of an object that implements the required clock interface -pub fn object_clock(obj: *mut ConfObject) -> Result<*mut ConfObject> { - let clock = unsafe { SIM_object_clock(obj as *const ConfObject) }; - - if clock.is_null() { - bail!("Unable to get object clock: {}", last_error()); - } else { - Ok(clock.into()) - } -} diff --git a/simics-api/src/safe/base/version.rs b/simics-api/src/safe/base/version.rs deleted file mode 100644 index c363c00e..00000000 --- a/simics-api/src/safe/base/version.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use simics_api_sys::SIM_version; - -pub fn version() -> String { - let c_str = CStr::from_ptr(unsafe { SIM_version() }); -} diff --git a/simics-api/src/safe/devs/mod.rs b/simics-api/src/safe/devs/mod.rs deleted file mode 100644 index 66ff2745..00000000 --- a/simics-api/src/safe/devs/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 diff --git a/simics-api/src/safe/interface/mod.rs b/simics-api/src/safe/interface/mod.rs deleted file mode 100644 index e2be84cb..00000000 --- a/simics-api/src/safe/interface/mod.rs +++ /dev/null @@ -1,605 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::slice::from_raw_parts; - -use anyhow::Result; -use raw_cstr::raw_cstr; -use simics_api_sys::{ - A20_INTERFACE, ABS_POINTER_ACTIVATE_INTERFACE, ABS_POINTER_INTERFACE, - ADDRESS_PROFILER_INTERFACE, APIC_CPU_INTERFACE, ARM_AVIC_INTERFACE, ARM_COPROCESSOR_INTERFACE, - BANK_AFTER_READ_INTERFACE, BANK_AFTER_WRITE_INTERFACE, BANK_BEFORE_READ_INTERFACE, - BANK_BEFORE_WRITE_INTERFACE, BRANCH_ARC_INTERFACE, BREAKPOINT_CHANGE_INTERFACE, - BREAKPOINT_INTERFACE, BREAKPOINT_MANAGER_INTERFACE, BREAKPOINT_QUERY_INTERFACE, - BREAKPOINT_QUERY_V2_INTERFACE, BREAKPOINT_TRIGGER_INTERFACE, BREAKPOINT_TYPE_INTERFACE, - BREAKPOINT_TYPE_PROVIDER_INTERFACE, BREAK_STRINGS_V2_INTERFACE, BRIDGE_INTERFACE, - CACHE_CONTROL_INTERFACE, CALLBACK_INFO_INTERFACE, CELL_INSPECTION_INTERFACE, - CHECKPOINT_INTERFACE, COMPONENT_CONNECTOR_INTERFACE, COMPONENT_INTERFACE, - CONCURRENCY_GROUP_INTERFACE, CONCURRENCY_MODE_INTERFACE, CONNECTOR_INTERFACE, - CONTEXT_HANDLER_INTERFACE, CON_INPUT_CODE_INTERFACE, CON_INPUT_INTERFACE, CO_EXECUTE_INTERFACE, - CPU_CACHED_INSTRUCTION_INTERFACE, CPU_CACHED_STREAM_INTERFACE, CPU_EXCEPTION_QUERY_INTERFACE, - CPU_INSTRUCTION_DECODER_INTERFACE, CPU_INSTRUCTION_QUERY_INTERFACE, - CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE, CPU_MEMORY_QUERY_INTERFACE, CYCLE_CONTROL_INTERFACE, - CYCLE_EVENT_INTERFACE, CYCLE_INTERFACE, DATA_PROFILER_INTERFACE, DEBUG_NOTIFICATION_INTERFACE, - DEBUG_QUERY_INTERFACE, DEBUG_SETUP_INTERFACE, DEBUG_STEP_INTERFACE, - DEBUG_SYMBOL_FILE_INTERFACE, DEBUG_SYMBOL_INTERFACE, DESCRIBE_REGISTERS_INTERFACE, - DEVICE_IDENTIFICATION_INTERFACE, DIRECT_MEMORY_FLUSH_INTERFACE, DIRECT_MEMORY_INTERFACE, - DIRECT_MEMORY_LOOKUP_INTERFACE, DIRECT_MEMORY_LOOKUP_V2_INTERFACE, - DIRECT_MEMORY_TAGS_INTERFACE, DIRECT_MEMORY_UPDATE_INTERFACE, DISASSEMBLE_INTERFACE, - DISK_COMPONENT_INTERFACE, EVENT_DELTA_INTERFACE, EVENT_HANDLER_INTERFACE, EXCEPTION_INTERFACE, - EXECUTE_CONTROL_INTERFACE, EXECUTE_INTERFACE, EXEC_TRACE_INTERFACE, EXTENDED_SERIAL_INTERFACE, - FIREWIRE_BUS_INTERFACE, FIREWIRE_DEVICE_INTERFACE, FMN_STATION_CONTROL_INTERFACE, - FMN_STATION_CONTROL_V2_INTERFACE, FREERUN_INTERFACE, FREQUENCY_INTERFACE, - FREQUENCY_LISTENER_INTERFACE, GFX_BREAK_INTERFACE, GFX_CONSOLE_BACKEND_INTERFACE, - GFX_CON_INTERFACE, HAP_LISTEN_INTERFACE, HOST_SERIAL_INTERFACE, I2C_BRIDGE_INTERFACE, - I2C_BUS_INTERFACE, I2C_DEVICE_INTERFACE, I2C_LINK_INTERFACE, I2C_MASTER_INTERFACE, - I2C_MASTER_V2_INTERFACE, I2C_SLAVE_INTERFACE, I2C_SLAVE_V2_INTERFACE, I3C_DAA_SNOOP_INTERFACE, - I3C_MASTER_INTERFACE, I3C_SLAVE_INTERFACE, I8051_INTERRUPT_INTERFACE, I8051_TIMER_INTERFACE, - IMAGE_INTERFACE, IMAGE_SNOOP_INTERFACE, INSTRUCTION_FETCH_INTERFACE, - INSTRUMENTATION_CONNECTION_INTERFACE, INSTRUMENTATION_FILTER_MASTER_INTERFACE, - INSTRUMENTATION_FILTER_SLAVE_INTERFACE, INSTRUMENTATION_FILTER_STATUS_INTERFACE, - INSTRUMENTATION_ORDER_INTERFACE, INSTRUMENTATION_TOOL_INTERFACE, INTERRUPT_ACK_INTERFACE, - INTERRUPT_CPU_INTERFACE, INT_REGISTER_INTERFACE, IO_MEMORY_INTERFACE, - KEYBOARD_CONSOLE_INTERFACE, KEYBOARD_INTERFACE, LINEAR_IMAGE_INTERFACE, MAP_DEMAP_INTERFACE, - MEMORY_PROFILER_INTERFACE, MEMORY_SPACE_INTERFACE, MIPS_COPROCESSOR_INTERFACE, - MIPS_EIC_INTERFACE, MIPS_EXCEPTION_QUERY_INTERFACE, MIPS_INTERFACE, MIPS_ITE_INTERFACE, - MOUSE_INTERFACE, MS1553_LINK_INTERFACE, MS1553_TERMINAL_INTERFACE, - MULTI_LEVEL_SIGNAL_INTERFACE, NIOS_EIC_INTERFACE, NIOS_INTERFACE, OPCODE_INFO_INTERFACE, - OSA_COMPONENT_INTERFACE, OSA_CONTROL_INTERFACE, OSA_CONTROL_V2_INTERFACE, - OSA_MACHINE_NOTIFICATION_INTERFACE, OSA_MACHINE_QUERY_INTERFACE, OSA_MAPPER_ADMIN_INTERFACE, - OSA_MAPPER_CONTROL_INTERFACE, OSA_MAPPER_QUERY_INTERFACE, OSA_MICRO_CHECKPOINT_INTERFACE, - OSA_NODE_PATH_INTERFACE, OSA_NODE_TREE_ADMIN_INTERFACE, OSA_NODE_TREE_NOTIFICATION_INTERFACE, - OSA_NODE_TREE_QUERY_INTERFACE, OSA_PARAMETERS_INTERFACE, OSA_TRACKER_COMPONENT_INTERFACE, - OSA_TRACKER_CONTROL_INTERFACE, OSA_TRACKER_STATE_ADMIN_INTERFACE, - OSA_TRACKER_STATE_QUERY_INTERFACE, PACKET_INTERFACE, PCIE_DEVICE_INTERFACE, PCIE_MAP_INTERFACE, - PCIE_PORT_CONTROL_INTERFACE, PCI_BRIDGE_INTERFACE, PCI_BUS_INTERFACE, PCI_DEVICE_INTERFACE, - PCI_DOWNSTREAM_INTERFACE, PCI_EXPRESS_HOTPLUG_INTERFACE, PCI_EXPRESS_INTERFACE, - PCI_INTERRUPT_INTERFACE, PCI_MULTI_FUNCTION_DEVICE_INTERFACE, PCI_UPSTREAM_INTERFACE, - PCI_UPSTREAM_OPERATION_INTERFACE, PMR_INTERFACE, POOL_PROTECT_INTERFACE, PORT_SPACE_INTERFACE, - PPC_INTERFACE, PREFERENCE_INTERFACE, PROBE_CACHE_INTERFACE, PROBE_INDEX_INTERFACE, - PROBE_INTERFACE, PROBE_SUBSCRIBE_INTERFACE, PROCESSOR_CLI_INTERFACE, - PROCESSOR_ENDIAN_INTERFACE, PROCESSOR_GUI_INTERFACE, PROCESSOR_INFO_INTERFACE, - PROCESSOR_INFO_V2_INTERFACE, PULSE_INTERFACE, RAM_ACCESS_SUBSCRIBE_INTERFACE, - RAPIDIO_V3_INTERFACE, RAPIDIO_V4_INTERFACE, RAPIDIO_V5_INTERFACE, RECORDED_INTERFACE, - RECORDER_INTERFACE, REGISTER_BREAKPOINT_INTERFACE, RISCV_COPROCESSOR_INTERFACE, - RS232_CONSOLE_INTERFACE, RS232_DEVICE_INTERFACE, SATA_INTERFACE, SCALAR_TIME_INTERFACE, - SCALE_FACTOR_LISTENER_INTERFACE, SCREENSHOT_INTERFACE, SERIAL_CONSOLE_FRONTEND_INTERFACE, - SERIAL_DEVICE_INTERFACE, SIGNAL_INTERFACE, SIMPLE_DISPATCHER_INTERFACE, - SIMPLE_INTERRUPT_INTERFACE, SIMULATOR_CACHE_INTERFACE, SPARC_V8_ECC_FAULT_INJECTION_INTERFACE, - SPARC_V8_INTERFACE, SPR_INTERFACE, STALL_INTERFACE, STEP_CYCLE_RATIO_INTERFACE, - STEP_INFO_INTERFACE, STEP_INTERFACE, SYNCHRONOUS_MODE_INTERFACE, TABLE_INTERFACE, - TELNET_CONNECTION_INTERFACE, TEMPORAL_STATE_INTERFACE, TRANSACTION_INTERFACE, - TRANSACTION_TRANSLATOR_INTERFACE, TRANSLATE_INTERFACE, TRANSLATION_FLUSH_INTERFACE, - TRANSLATOR_INTERFACE, UINT64_STATE_INTERFACE, USB_DEVICE_INTERFACE, USB_INTERFACE, - VECTORED_INTERRUPT_INTERFACE, VECTORED_INTERRUPT_SOURCE_INTERFACE, VGA_TEXT_INFO_INTERFACE, - VGA_TEXT_UPDATE_INTERFACE, VGA_UPDATE_INTERFACE, VIRTUAL_DATA_BREAKPOINT_INTERFACE, - VMP_INTERFACE, VNC_SERVER_INTERFACE, X86_ADDRESS_QUERY_INTERFACE, X86_CACHE_FLUSH_INTERFACE, - X86_CPUID_INTERFACE, X86_CPUID_QUERY_INTERFACE, X86_CSTATE_INTERFACE, - X86_CSTATE_NOTIFICATION_INTERFACE, X86_EXCEPTION_INTERFACE, X86_EXCEPTION_QUERY_INTERFACE, - X86_INSTRUCTION_QUERY_INTERFACE, X86_INTERFACE, X86_MEMORY_ACCESS_INTERFACE, - X86_MEMORY_OPERATION_INTERFACE, X86_MSR_INTERFACE, X86_PKG_CSTATE_INTERFACE, - X86_REG_ACCESS_INTERFACE, X86_SMM_INTERFACE, X86_SMM_STATE_INTERFACE, X86_TLB_INTERFACE, - X86_TLB_V2_INTERFACE, X86_TLB_V3_INTERFACE, X86_VMP_CONTROL_INTERFACE, XED_ACCESS_INTERFACE, - XTENSA_EXPORT_STATE_INTERFACE, XTENSA_IMPORT_WIRE_INTERFACE, XTENSA_INPUT_QUEUE_INTERFACE, - XTENSA_LOOKUP_INTERFACE, XTENSA_OUTPUT_QUEUE_INTERFACE, XTENSA_TIE_EXPORT_STATE_INTERFACE, - XTENSA_TIE_IMPORT_WIRE_INTERFACE, XTENSA_TIE_INPUT_QUEUE_INTERFACE, - XTENSA_TIE_LOOKUP_INTERFACE, XTENSA_TIE_OUTPUT_QUEUE_INTERFACE, -}; - -/// Available interfaces -pub enum Interface { - A20, - AbsPointer, - AbsPointerActivate, - AddressProfiler, - ApicCpu, - ArmAvic, - ArmCoprocessor, - BankAfterRead, - BankAfterWrite, - BankBeforeRead, - BankBeforeWrite, - BranchArc, - BreakStringsV2, - Breakpoint, - BreakpointChange, - BreakpointManager, - BreakpointQuery, - BreakpointQueryV2, - BreakpointTrigger, - BreakpointType, - BreakpointTypeProvider, - Bridge, - CacheControl, - CallbackInfo, - CellInspection, - Checkpoint, - CoExecute, - Component, - ComponentConnector, - ConInput, - ConInputCode, - ConcurrencyGroup, - ConcurrencyMode, - Connector, - ContextHandler, - CpuCachedInstruction, - CpuCachedStream, - CpuExceptionQuery, - CpuInstructionDecoder, - CpuInstructionQuery, - CpuInstrumentationSubscribe, - CpuMemoryQuery, - Cycle, - CycleControl, - CycleEvent, - DataProfiler, - DebugNotification, - DebugQuery, - DebugSetup, - DebugStep, - DebugSymbol, - DebugSymbolFile, - DescribeRegisters, - DeviceIdentification, - DirectMemory, - DirectMemoryFlush, - DirectMemoryLookup, - DirectMemoryLookupInterfaceV2, - DirectMemoryTags, - DirectMemoryUpdate, - Disassemble, - DiskComponent, - EventDelta, - EventHandler, - Exception, - ExecTrace, - Execute, - ExecuteControl, - ExtendedSerial, - FirewireBus, - FirewireDevice, - FmnStationControl, - FmnStationControlV2, - Freerun, - Frequency, - FrequencyListener, - GfxBreak, - GfxCon, - GfxConsoleBackend, - HapListen, - HostSerial, - I2cBridge, - I2cBus, - I2cDevice, - I2cLink, - I2cMaster, - I2cMasterV2, - I2cSlave, - I2cSlaveV2, - I3cDaaSnoop, - I3cMaster, - I3cSlave, - I8051Interrupt, - I8051Timer, - Image, - ImageSnoop, - InstructionFetch, - InstrumentationConnection, - InstrumentationFilterMaster, - InstrumentationFilterSlave, - InstrumentationFilterStatus, - InstrumentationOrder, - InstrumentationTool, - IntRegister, - InterruptAck, - InterruptCpu, - IoMemory, - Keyboard, - KeyboardConsole, - LinearImage, - MapDemap, - MemoryProfiler, - MemorySpace, - Mips, - MipsCoprocessor, - MipsEic, - MipsExceptionQuery, - MipsIte, - Mouse, - Ms1553Link, - Ms1553Terminal, - MultiLevelSignal, - Nios, - NiosEic, - OpcodeInfo, - OsaComponent, - OsaControl, - OsaControlV2, - OsaMachineNotification, - OsaMachineQuery, - OsaMapperAdmin, - OsaMapperControl, - OsaMapperQuery, - OsaMicroCheckpoint, - OsaNodePath, - OsaNodeTreeAdmin, - OsaNodeTreeNotification, - OsaNodeTreeQuery, - OsaParameters, - OsaTrackerComponent, - OsaTrackerControl, - OsaTrackerStateAdmin, - OsaTrackerStateQuery, - Packet, - PciBridge, - PciBus, - PciDevice, - PciDownstream, - PciExpress, - PciExpressHotplug, - PciInterrupt, - PciMultiFunctionDevice, - PciUpstream, - PciUpstreamOperation, - PcieDevice, - PcieMap, - PciePortControl, - Pmr, - PoolProtect, - PortSpace, - Ppc, - Preference, - Probe, - ProbeCache, - ProbeIndex, - ProbeSubscribe, - ProcessorCli, - ProcessorEndian, - ProcessorGui, - ProcessorInfo, - ProcessorInfoV2, - Pulse, - RamAccessSubscribe, - RapidioV3, - RapidioV4, - RapidioV5, - Recorded, - Recorder, - RegisterBreakpoint, - RiscvCoprocessor, - Rs232Console, - Rs232Device, - Sata, - ScalarTime, - ScaleFactorListener, - Screenshot, - SerialConsoleFrontend, - SerialDevice, - Signal, - SimpleDispatcher, - SimpleInterrupt, - SimulatorCache, - SparcV8, - SparcV8EccFaultInjection, - Spr, - Stall, - Step, - StepCycleRatio, - StepInfo, - SynchronousMode, - Table, - TelnetConnection, - TemporalState, - Transaction, - TransactionTranslator, - Translate, - TranslationFlush, - Translator, - Uint64State, - Usb, - UsbDevice, - VectoredInterrupt, - VectoredInterruptSource, - VgaTextInfo, - VgaTextUpdate, - VgaUpdate, - VirtualDataBreakpoint, - Vmp, - VncServer, - X86, - X86AddressQuery, - X86CacheFlush, - X86Cpuid, - X86CpuidQuery, - X86Cstate, - X86CstateNotification, - X86Exception, - X86ExceptionQuery, - X86InstructionQuery, - X86MemoryAccess, - X86MemoryOperation, - X86Msr, - X86PkgCstate, - X86RegAccess, - X86Smm, - X86SmmState, - X86Tlb, - X86TlbV2, - X86TlbV3, - X86VmpControl, - XedAccess, - XtensaExportState, - XtensaImportWire, - XtensaInputQueue, - XtensaLookup, - XtensaOutputQueue, - XtensaTieExportState, - XtensaTieImportWire, - XtensaTieInputQueue, - XtensaTieLookup, - XtensaTieOutputQueue, - Other(String), -} - -impl Interface { - /// Get the interface name as a null-terminated character slice - pub fn try_as_slice(&self) -> Result<&'static [u8]> { - Ok(match self { - Interface::A20 => A20_INTERFACE, - Interface::AbsPointer => ABS_POINTER_INTERFACE, - Interface::AbsPointerActivate => ABS_POINTER_ACTIVATE_INTERFACE, - Interface::AddressProfiler => ADDRESS_PROFILER_INTERFACE, - Interface::ApicCpu => APIC_CPU_INTERFACE, - Interface::ArmAvic => ARM_AVIC_INTERFACE, - Interface::ArmCoprocessor => ARM_COPROCESSOR_INTERFACE, - Interface::BankAfterRead => BANK_AFTER_READ_INTERFACE, - Interface::BankAfterWrite => BANK_AFTER_WRITE_INTERFACE, - Interface::BankBeforeRead => BANK_BEFORE_READ_INTERFACE, - Interface::BankBeforeWrite => BANK_BEFORE_WRITE_INTERFACE, - Interface::BranchArc => BRANCH_ARC_INTERFACE, - Interface::BreakStringsV2 => BREAK_STRINGS_V2_INTERFACE, - Interface::Breakpoint => BREAKPOINT_INTERFACE, - Interface::BreakpointChange => BREAKPOINT_CHANGE_INTERFACE, - Interface::BreakpointManager => BREAKPOINT_MANAGER_INTERFACE, - Interface::BreakpointQuery => BREAKPOINT_QUERY_INTERFACE, - Interface::BreakpointQueryV2 => BREAKPOINT_QUERY_V2_INTERFACE, - Interface::BreakpointTrigger => BREAKPOINT_TRIGGER_INTERFACE, - Interface::BreakpointType => BREAKPOINT_TYPE_INTERFACE, - Interface::BreakpointTypeProvider => BREAKPOINT_TYPE_PROVIDER_INTERFACE, - Interface::Bridge => BRIDGE_INTERFACE, - Interface::CacheControl => CACHE_CONTROL_INTERFACE, - Interface::CallbackInfo => CALLBACK_INFO_INTERFACE, - Interface::CellInspection => CELL_INSPECTION_INTERFACE, - Interface::Checkpoint => CHECKPOINT_INTERFACE, - Interface::CoExecute => CO_EXECUTE_INTERFACE, - Interface::Component => COMPONENT_INTERFACE, - Interface::ComponentConnector => COMPONENT_CONNECTOR_INTERFACE, - Interface::ConInput => CON_INPUT_INTERFACE, - Interface::ConInputCode => CON_INPUT_CODE_INTERFACE, - Interface::ConcurrencyGroup => CONCURRENCY_GROUP_INTERFACE, - Interface::ConcurrencyMode => CONCURRENCY_MODE_INTERFACE, - Interface::Connector => CONNECTOR_INTERFACE, - Interface::ContextHandler => CONTEXT_HANDLER_INTERFACE, - Interface::CpuCachedInstruction => CPU_CACHED_INSTRUCTION_INTERFACE, - Interface::CpuCachedStream => CPU_CACHED_STREAM_INTERFACE, - Interface::CpuExceptionQuery => CPU_EXCEPTION_QUERY_INTERFACE, - Interface::CpuInstructionDecoder => CPU_INSTRUCTION_DECODER_INTERFACE, - Interface::CpuInstructionQuery => CPU_INSTRUCTION_QUERY_INTERFACE, - Interface::CpuInstrumentationSubscribe => CPU_INSTRUMENTATION_SUBSCRIBE_INTERFACE, - Interface::CpuMemoryQuery => CPU_MEMORY_QUERY_INTERFACE, - Interface::Cycle => CYCLE_INTERFACE, - Interface::CycleControl => CYCLE_CONTROL_INTERFACE, - Interface::CycleEvent => CYCLE_EVENT_INTERFACE, - Interface::DataProfiler => DATA_PROFILER_INTERFACE, - Interface::DebugNotification => DEBUG_NOTIFICATION_INTERFACE, - Interface::DebugQuery => DEBUG_QUERY_INTERFACE, - Interface::DebugSetup => DEBUG_SETUP_INTERFACE, - Interface::DebugStep => DEBUG_STEP_INTERFACE, - Interface::DebugSymbol => DEBUG_SYMBOL_INTERFACE, - Interface::DebugSymbolFile => DEBUG_SYMBOL_FILE_INTERFACE, - Interface::DescribeRegisters => DESCRIBE_REGISTERS_INTERFACE, - Interface::DeviceIdentification => DEVICE_IDENTIFICATION_INTERFACE, - Interface::DirectMemory => DIRECT_MEMORY_INTERFACE, - Interface::DirectMemoryFlush => DIRECT_MEMORY_FLUSH_INTERFACE, - Interface::DirectMemoryLookup => DIRECT_MEMORY_LOOKUP_INTERFACE, - Interface::DirectMemoryLookupInterfaceV2 => DIRECT_MEMORY_LOOKUP_V2_INTERFACE, - Interface::DirectMemoryTags => DIRECT_MEMORY_TAGS_INTERFACE, - Interface::DirectMemoryUpdate => DIRECT_MEMORY_UPDATE_INTERFACE, - Interface::Disassemble => DISASSEMBLE_INTERFACE, - Interface::DiskComponent => DISK_COMPONENT_INTERFACE, - Interface::EventDelta => EVENT_DELTA_INTERFACE, - Interface::EventHandler => EVENT_HANDLER_INTERFACE, - Interface::Exception => EXCEPTION_INTERFACE, - Interface::ExecTrace => EXEC_TRACE_INTERFACE, - Interface::Execute => EXECUTE_INTERFACE, - Interface::ExecuteControl => EXECUTE_CONTROL_INTERFACE, - Interface::ExtendedSerial => EXTENDED_SERIAL_INTERFACE, - Interface::FirewireBus => FIREWIRE_BUS_INTERFACE, - Interface::FirewireDevice => FIREWIRE_DEVICE_INTERFACE, - Interface::FmnStationControl => FMN_STATION_CONTROL_INTERFACE, - Interface::FmnStationControlV2 => FMN_STATION_CONTROL_V2_INTERFACE, - Interface::Freerun => FREERUN_INTERFACE, - Interface::Frequency => FREQUENCY_INTERFACE, - Interface::FrequencyListener => FREQUENCY_LISTENER_INTERFACE, - Interface::GfxBreak => GFX_BREAK_INTERFACE, - Interface::GfxCon => GFX_CON_INTERFACE, - Interface::GfxConsoleBackend => GFX_CONSOLE_BACKEND_INTERFACE, - Interface::HapListen => HAP_LISTEN_INTERFACE, - Interface::HostSerial => HOST_SERIAL_INTERFACE, - Interface::I2cBridge => I2C_BRIDGE_INTERFACE, - Interface::I2cBus => I2C_BUS_INTERFACE, - Interface::I2cDevice => I2C_DEVICE_INTERFACE, - Interface::I2cLink => I2C_LINK_INTERFACE, - Interface::I2cMaster => I2C_MASTER_INTERFACE, - Interface::I2cMasterV2 => I2C_MASTER_V2_INTERFACE, - Interface::I2cSlave => I2C_SLAVE_INTERFACE, - Interface::I2cSlaveV2 => I2C_SLAVE_V2_INTERFACE, - Interface::I3cDaaSnoop => I3C_DAA_SNOOP_INTERFACE, - Interface::I3cMaster => I3C_MASTER_INTERFACE, - Interface::I3cSlave => I3C_SLAVE_INTERFACE, - Interface::I8051Interrupt => I8051_INTERRUPT_INTERFACE, - Interface::I8051Timer => I8051_TIMER_INTERFACE, - Interface::Image => IMAGE_INTERFACE, - Interface::ImageSnoop => IMAGE_SNOOP_INTERFACE, - Interface::InstructionFetch => INSTRUCTION_FETCH_INTERFACE, - Interface::InstrumentationConnection => INSTRUMENTATION_CONNECTION_INTERFACE, - Interface::InstrumentationFilterMaster => INSTRUMENTATION_FILTER_MASTER_INTERFACE, - Interface::InstrumentationFilterSlave => INSTRUMENTATION_FILTER_SLAVE_INTERFACE, - Interface::InstrumentationFilterStatus => INSTRUMENTATION_FILTER_STATUS_INTERFACE, - Interface::InstrumentationOrder => INSTRUMENTATION_ORDER_INTERFACE, - Interface::InstrumentationTool => INSTRUMENTATION_TOOL_INTERFACE, - Interface::IntRegister => INT_REGISTER_INTERFACE, - Interface::InterruptAck => INTERRUPT_ACK_INTERFACE, - Interface::InterruptCpu => INTERRUPT_CPU_INTERFACE, - Interface::IoMemory => IO_MEMORY_INTERFACE, - Interface::Keyboard => KEYBOARD_INTERFACE, - Interface::KeyboardConsole => KEYBOARD_CONSOLE_INTERFACE, - Interface::LinearImage => LINEAR_IMAGE_INTERFACE, - Interface::MapDemap => MAP_DEMAP_INTERFACE, - Interface::MemoryProfiler => MEMORY_PROFILER_INTERFACE, - Interface::MemorySpace => MEMORY_SPACE_INTERFACE, - Interface::Mips => MIPS_INTERFACE, - Interface::MipsCoprocessor => MIPS_COPROCESSOR_INTERFACE, - Interface::MipsEic => MIPS_EIC_INTERFACE, - Interface::MipsExceptionQuery => MIPS_EXCEPTION_QUERY_INTERFACE, - Interface::MipsIte => MIPS_ITE_INTERFACE, - Interface::Mouse => MOUSE_INTERFACE, - Interface::Ms1553Link => MS1553_LINK_INTERFACE, - Interface::Ms1553Terminal => MS1553_TERMINAL_INTERFACE, - Interface::MultiLevelSignal => MULTI_LEVEL_SIGNAL_INTERFACE, - Interface::Nios => NIOS_INTERFACE, - Interface::NiosEic => NIOS_EIC_INTERFACE, - Interface::OpcodeInfo => OPCODE_INFO_INTERFACE, - Interface::OsaComponent => OSA_COMPONENT_INTERFACE, - Interface::OsaControl => OSA_CONTROL_INTERFACE, - Interface::OsaControlV2 => OSA_CONTROL_V2_INTERFACE, - Interface::OsaMachineNotification => OSA_MACHINE_NOTIFICATION_INTERFACE, - Interface::OsaMachineQuery => OSA_MACHINE_QUERY_INTERFACE, - Interface::OsaMapperAdmin => OSA_MAPPER_ADMIN_INTERFACE, - Interface::OsaMapperControl => OSA_MAPPER_CONTROL_INTERFACE, - Interface::OsaMapperQuery => OSA_MAPPER_QUERY_INTERFACE, - Interface::OsaMicroCheckpoint => OSA_MICRO_CHECKPOINT_INTERFACE, - Interface::OsaNodePath => OSA_NODE_PATH_INTERFACE, - Interface::OsaNodeTreeAdmin => OSA_NODE_TREE_ADMIN_INTERFACE, - Interface::OsaNodeTreeNotification => OSA_NODE_TREE_NOTIFICATION_INTERFACE, - Interface::OsaNodeTreeQuery => OSA_NODE_TREE_QUERY_INTERFACE, - Interface::OsaParameters => OSA_PARAMETERS_INTERFACE, - Interface::OsaTrackerComponent => OSA_TRACKER_COMPONENT_INTERFACE, - Interface::OsaTrackerControl => OSA_TRACKER_CONTROL_INTERFACE, - Interface::OsaTrackerStateAdmin => OSA_TRACKER_STATE_ADMIN_INTERFACE, - Interface::OsaTrackerStateQuery => OSA_TRACKER_STATE_QUERY_INTERFACE, - Interface::Packet => PACKET_INTERFACE, - Interface::PciBridge => PCI_BRIDGE_INTERFACE, - Interface::PciBus => PCI_BUS_INTERFACE, - Interface::PciDevice => PCI_DEVICE_INTERFACE, - Interface::PciDownstream => PCI_DOWNSTREAM_INTERFACE, - Interface::PciExpress => PCI_EXPRESS_INTERFACE, - Interface::PciExpressHotplug => PCI_EXPRESS_HOTPLUG_INTERFACE, - Interface::PciInterrupt => PCI_INTERRUPT_INTERFACE, - Interface::PciMultiFunctionDevice => PCI_MULTI_FUNCTION_DEVICE_INTERFACE, - Interface::PciUpstream => PCI_UPSTREAM_INTERFACE, - Interface::PciUpstreamOperation => PCI_UPSTREAM_OPERATION_INTERFACE, - Interface::PcieDevice => PCIE_DEVICE_INTERFACE, - Interface::PcieMap => PCIE_MAP_INTERFACE, - Interface::PciePortControl => PCIE_PORT_CONTROL_INTERFACE, - Interface::Pmr => PMR_INTERFACE, - Interface::PoolProtect => POOL_PROTECT_INTERFACE, - Interface::PortSpace => PORT_SPACE_INTERFACE, - Interface::Ppc => PPC_INTERFACE, - Interface::Preference => PREFERENCE_INTERFACE, - Interface::Probe => PROBE_INTERFACE, - Interface::ProbeCache => PROBE_CACHE_INTERFACE, - Interface::ProbeIndex => PROBE_INDEX_INTERFACE, - Interface::ProbeSubscribe => PROBE_SUBSCRIBE_INTERFACE, - Interface::ProcessorCli => PROCESSOR_CLI_INTERFACE, - Interface::ProcessorEndian => PROCESSOR_ENDIAN_INTERFACE, - Interface::ProcessorGui => PROCESSOR_GUI_INTERFACE, - Interface::ProcessorInfo => PROCESSOR_INFO_INTERFACE, - Interface::ProcessorInfoV2 => PROCESSOR_INFO_V2_INTERFACE, - Interface::Pulse => PULSE_INTERFACE, - Interface::RamAccessSubscribe => RAM_ACCESS_SUBSCRIBE_INTERFACE, - Interface::RapidioV3 => RAPIDIO_V3_INTERFACE, - Interface::RapidioV4 => RAPIDIO_V4_INTERFACE, - Interface::RapidioV5 => RAPIDIO_V5_INTERFACE, - Interface::Recorded => RECORDED_INTERFACE, - Interface::Recorder => RECORDER_INTERFACE, - Interface::RegisterBreakpoint => REGISTER_BREAKPOINT_INTERFACE, - Interface::RiscvCoprocessor => RISCV_COPROCESSOR_INTERFACE, - Interface::Rs232Console => RS232_CONSOLE_INTERFACE, - Interface::Rs232Device => RS232_DEVICE_INTERFACE, - Interface::Sata => SATA_INTERFACE, - Interface::ScalarTime => SCALAR_TIME_INTERFACE, - Interface::ScaleFactorListener => SCALE_FACTOR_LISTENER_INTERFACE, - Interface::Screenshot => SCREENSHOT_INTERFACE, - Interface::SerialConsoleFrontend => SERIAL_CONSOLE_FRONTEND_INTERFACE, - Interface::SerialDevice => SERIAL_DEVICE_INTERFACE, - Interface::Signal => SIGNAL_INTERFACE, - Interface::SimpleDispatcher => SIMPLE_DISPATCHER_INTERFACE, - Interface::SimpleInterrupt => SIMPLE_INTERRUPT_INTERFACE, - Interface::SimulatorCache => SIMULATOR_CACHE_INTERFACE, - Interface::SparcV8 => SPARC_V8_INTERFACE, - Interface::SparcV8EccFaultInjection => SPARC_V8_ECC_FAULT_INJECTION_INTERFACE, - Interface::Spr => SPR_INTERFACE, - Interface::Stall => STALL_INTERFACE, - Interface::Step => STEP_INTERFACE, - Interface::StepCycleRatio => STEP_CYCLE_RATIO_INTERFACE, - Interface::StepInfo => STEP_INFO_INTERFACE, - Interface::SynchronousMode => SYNCHRONOUS_MODE_INTERFACE, - Interface::Table => TABLE_INTERFACE, - Interface::TelnetConnection => TELNET_CONNECTION_INTERFACE, - Interface::TemporalState => TEMPORAL_STATE_INTERFACE, - Interface::Transaction => TRANSACTION_INTERFACE, - Interface::TransactionTranslator => TRANSACTION_TRANSLATOR_INTERFACE, - Interface::Translate => TRANSLATE_INTERFACE, - Interface::TranslationFlush => TRANSLATION_FLUSH_INTERFACE, - Interface::Translator => TRANSLATOR_INTERFACE, - Interface::Uint64State => UINT64_STATE_INTERFACE, - Interface::Usb => USB_INTERFACE, - Interface::UsbDevice => USB_DEVICE_INTERFACE, - Interface::VectoredInterrupt => VECTORED_INTERRUPT_INTERFACE, - Interface::VectoredInterruptSource => VECTORED_INTERRUPT_SOURCE_INTERFACE, - Interface::VgaTextInfo => VGA_TEXT_INFO_INTERFACE, - Interface::VgaTextUpdate => VGA_TEXT_UPDATE_INTERFACE, - Interface::VgaUpdate => VGA_UPDATE_INTERFACE, - Interface::VirtualDataBreakpoint => VIRTUAL_DATA_BREAKPOINT_INTERFACE, - Interface::Vmp => VMP_INTERFACE, - Interface::VncServer => VNC_SERVER_INTERFACE, - Interface::X86 => X86_INTERFACE, - Interface::X86AddressQuery => X86_ADDRESS_QUERY_INTERFACE, - Interface::X86CacheFlush => X86_CACHE_FLUSH_INTERFACE, - Interface::X86Cpuid => X86_CPUID_INTERFACE, - Interface::X86CpuidQuery => X86_CPUID_QUERY_INTERFACE, - Interface::X86Cstate => X86_CSTATE_INTERFACE, - Interface::X86CstateNotification => X86_CSTATE_NOTIFICATION_INTERFACE, - Interface::X86Exception => X86_EXCEPTION_INTERFACE, - Interface::X86ExceptionQuery => X86_EXCEPTION_QUERY_INTERFACE, - Interface::X86InstructionQuery => X86_INSTRUCTION_QUERY_INTERFACE, - Interface::X86MemoryAccess => X86_MEMORY_ACCESS_INTERFACE, - Interface::X86MemoryOperation => X86_MEMORY_OPERATION_INTERFACE, - Interface::X86Msr => X86_MSR_INTERFACE, - Interface::X86PkgCstate => X86_PKG_CSTATE_INTERFACE, - Interface::X86RegAccess => X86_REG_ACCESS_INTERFACE, - Interface::X86Smm => X86_SMM_INTERFACE, - Interface::X86SmmState => X86_SMM_STATE_INTERFACE, - Interface::X86Tlb => X86_TLB_INTERFACE, - Interface::X86TlbV2 => X86_TLB_V2_INTERFACE, - Interface::X86TlbV3 => X86_TLB_V3_INTERFACE, - Interface::X86VmpControl => X86_VMP_CONTROL_INTERFACE, - Interface::XedAccess => XED_ACCESS_INTERFACE, - Interface::XtensaExportState => XTENSA_EXPORT_STATE_INTERFACE, - Interface::XtensaImportWire => XTENSA_IMPORT_WIRE_INTERFACE, - Interface::XtensaInputQueue => XTENSA_INPUT_QUEUE_INTERFACE, - Interface::XtensaLookup => XTENSA_LOOKUP_INTERFACE, - Interface::XtensaOutputQueue => XTENSA_OUTPUT_QUEUE_INTERFACE, - Interface::XtensaTieExportState => XTENSA_TIE_EXPORT_STATE_INTERFACE, - Interface::XtensaTieImportWire => XTENSA_TIE_IMPORT_WIRE_INTERFACE, - Interface::XtensaTieInputQueue => XTENSA_TIE_INPUT_QUEUE_INTERFACE, - Interface::XtensaTieLookup => XTENSA_TIE_LOOKUP_INTERFACE, - Interface::XtensaTieOutputQueue => XTENSA_TIE_OUTPUT_QUEUE_INTERFACE, - Interface::Other(name) => unsafe { - from_raw_parts(raw_cstr(name)? as *const u8, name.len() + 1) - }, - }) - } -} diff --git a/simics-api/src/safe/logging/mod.rs b/simics-api/src/safe/logging/mod.rs deleted file mode 100644 index 5eca9c6d..00000000 --- a/simics-api/src/safe/logging/mod.rs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::ConfObject; -use anyhow::Result; -use simics_api_sys::{SIM_log_error, SIM_log_info, SIM_log_level, SIM_set_log_level}; -use std::ffi::CString; - -const LOG_GROUP: i32 = 0; - -/// Log an info-level message through the SIMICS logging functions -pub fn log_info(level: i32, device: *mut ConfObject, msg: S) -> Result<()> -where - S: AsRef, -{ - let msg_cstring = CString::new(msg.as_ref())?; - - unsafe { - SIM_log_info(level, device.into(), LOG_GROUP, msg_cstring.as_ptr()); - }; - - Ok(()) -} - -/// Log an error-level message through the SIMICS logging functions -pub fn log_error(device: *mut ConfObject, msg: String) -> Result<()> { - let msg_cstring = CString::new(msg)?; - - unsafe { - SIM_log_error(device.into(), LOG_GROUP, msg_cstring.as_ptr()); - }; - - Ok(()) -} - -/// Get the current log level of an object -pub fn log_level(obj: *mut ConfObject) -> u32 { - unsafe { SIM_log_level((obj as *const ConfObject).into()) } -} - -/// Set the global SIMICS log level -pub fn set_log_level(obj: *mut ConfObject, level: u32) { - unsafe { SIM_set_log_level(obj.into(), level) }; -} diff --git a/simics-api/src/safe/model_interface/cpu_instrumentation.rs b/simics-api/src/safe/model_interface/cpu_instrumentation.rs deleted file mode 100644 index a254684d..00000000 --- a/simics-api/src/safe/model_interface/cpu_instrumentation.rs +++ /dev/null @@ -1,313 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::{ - attr_object_or_nil, get_interface, AccessType, AttrValue, ConfObject, Interface, PhysicalBlock, -}; -use anyhow::{bail, ensure, Result}; -use raw_cstr::raw_cstr; -use simics_api_sys::{ - cached_instruction_handle_t, cpu_bytes_t, cpu_cached_instruction_interface_t, - cpu_instruction_query_interface_t, cpu_instrumentation_subscribe_interface_t, - cycle_interface_t, instruction_handle_t, int_register_interface_t, - processor_info_v2_interface_t, -}; -use std::{ffi::c_void, ptr::null_mut, slice::from_raw_parts}; - -pub type InstructionHandle = instruction_handle_t; -pub type CachedInstructionHandle = cached_instruction_handle_t; -pub type CpuInstrumentationSubscribeInterface = cpu_instrumentation_subscribe_interface_t; -pub type CpuInstructionQueryInterface = cpu_instruction_query_interface_t; -pub type CpuCachedInstructionInterface = cpu_cached_instruction_interface_t; -pub type ProcessorInfoV2Interface = processor_info_v2_interface_t; -pub type IntRegisterInterface = int_register_interface_t; -pub type CycleInterface = cycle_interface_t; -pub type CpuBytes = cpu_bytes_t; - -pub struct CpuInstrumentationSubscribe { - iface: *mut CpuInstrumentationSubscribeInterface, -} - -impl CpuInstrumentationSubscribe { - pub fn try_new(cpu: *mut AttrValue) -> Result { - let ptr: *mut AttrValue = cpu.into(); - - let cpu: *mut ConfObject = attr_object_or_nil(unsafe { *ptr })?; - - let iface = get_interface::( - cpu, - Interface::CpuInstrumentationSubscribe, - )?; - - if iface.is_null() { - bail!( - "No interface {} found for cpu", - String::from_utf8_lossy(Interface::CpuInstrumentationSubscribe.try_as_slice()?) - ) - } else { - Ok(Self { iface }) - } - } - - /// Run a callback to be run before every instruction is executed - pub fn register_instruction_before_cb( - &self, - cpu: *mut ConfObject, - cb: unsafe extern "C" fn( - *mut ConfObject, - *mut ConfObject, - *mut InstructionHandle, - *mut c_void, - ), - user_data: Option, - ) -> Result<()> - where - D: Into<*mut c_void>, - { - let user_data = match user_data { - Some(data) => data.into(), - None => null_mut(), - }; - - if let Some(register) = unsafe { *self.iface }.register_instruction_before_cb { - unsafe { register(cpu.into(), null_mut(), Some(cb), user_data) }; - Ok(()) - } else { - bail!("Unable to register callback, no register function"); - } - } - - /// Run a callback to be run when an instruction is cached. This means for example the - /// instructions in a loop will be called-back on *once*, not for every execution of the loop - pub fn register_cached_instruction_cb( - &self, - cpu: *mut ConfObject, - cb: unsafe extern "C" fn( - *mut ConfObject, - *mut ConfObject, - *mut CachedInstructionHandle, - *mut InstructionHandle, - *mut c_void, - ), - user_data: Option, - ) -> Result<()> - where - D: Into<*mut c_void>, - { - let user_data = match user_data { - Some(data) => data.into(), - None => null_mut(), - }; - - if let Some(register) = unsafe { *self.iface }.register_cached_instruction_cb { - unsafe { register(cpu.into(), null_mut(), Some(cb), user_data) }; - Ok(()) - } else { - bail!("Unable to register callback, no register function"); - } - } -} - -pub struct CpuInstructionQuery { - iface: *mut CpuInstructionQueryInterface, -} - -impl CpuInstructionQuery { - pub fn try_new(cpu: *mut AttrValue) -> Result { - let ptr: *mut AttrValue = cpu.into(); - - let cpu: *mut ConfObject = attr_object_or_nil(unsafe { *ptr })?; - - let iface = - get_interface::(cpu, Interface::CpuInstructionQuery)?; - - if iface.is_null() { - bail!( - "No interface {} found for cpu", - String::from_utf8_lossy(Interface::CpuInstructionQuery.try_as_slice()?) - ) - } else { - Ok(Self { iface }) - } - } - - /// Get the bytes of an instruction given an instruction handle retrieved during an - /// instruction callback - pub fn get_instruction_bytes( - &mut self, - cpu: *mut ConfObject, - instruction_query: *mut InstructionHandle, - ) -> Result<&[u8]> { - let bytes = match unsafe { *self.iface }.get_instruction_bytes { - Some(get_instruction_bytes) => unsafe { - get_instruction_bytes(cpu.into(), instruction_query.into()) - }, - _ => bail!("No function get_instruction_bytes in interface"), - }; - - Ok(unsafe { from_raw_parts(bytes.data, bytes.size) }) - } -} - -pub struct CpuCachedInstruction { - _iface: *mut CpuCachedInstructionInterface, -} - -impl CpuCachedInstruction { - pub fn try_new(cpu: *mut AttrValue) -> Result { - let ptr: *mut AttrValue = cpu.into(); - - let cpu: *mut ConfObject = attr_object_or_nil(unsafe { *ptr })?; - - let iface = - get_interface::(cpu, Interface::CpuCachedInstruction)?; - - if iface.is_null() { - bail!( - "No interface {} found for cpu", - String::from_utf8_lossy(Interface::CpuCachedInstruction.try_as_slice()?) - ) - } else { - Ok(Self { _iface: iface }) - } - } -} - -pub struct ProcessorInfoV2 { - iface: *mut ProcessorInfoV2Interface, -} - -impl ProcessorInfoV2 { - pub fn try_new(cpu: *mut AttrValue) -> Result { - let ptr: *mut AttrValue = cpu.into(); - - let cpu: *mut ConfObject = attr_object_or_nil(unsafe { *ptr })?; - - let iface = get_interface::(cpu, Interface::ProcessorInfoV2)?; - - if iface.is_null() { - bail!( - "No interface {} found for cpu", - String::from_utf8_lossy(Interface::ProcessorInfoV2.try_as_slice()?) - ) - } else { - Ok(Self { iface }) - } - } - - /// Get the program counter of a CPU - pub fn get_program_counter(&self, cpu: *mut ConfObject) -> Result { - if let Some(get_program_counter) = unsafe { *self.iface }.get_program_counter { - Ok(unsafe { get_program_counter(cpu.into()) }) - } else { - bail!("No function get_program_counter in interface"); - } - } - - /// Translate a logical address to a physical address - pub fn logical_to_physical( - &self, - cpu: *mut ConfObject, - logical_address: u64, - ) -> Result { - if let Some(logical_to_physical) = unsafe { *self.iface }.logical_to_physical { - let addr = unsafe { - logical_to_physical(cpu.into(), logical_address, AccessType::X86Vanilla as u32) - }; - ensure!(addr.valid != 0, "Physical address is invalid"); - Ok(addr) - } else { - bail!("No function logical_to_physical in interface"); - } - } - - /// Get the physical memory object associated with a CPU - pub fn get_physical_memory(&self, cpu: *mut ConfObject) -> Result<*mut ConfObject> { - if let Some(get_physical_memory) = unsafe { *self.iface }.get_physical_memory { - Ok(unsafe { get_physical_memory(cpu.into()) }) - } else { - bail!("No function get_physical_memory in interface"); - } - } -} - -pub struct IntRegister { - iface: *mut IntRegisterInterface, -} - -impl IntRegister { - pub fn try_new(cpu: *mut AttrValue) -> Result { - let ptr: *mut AttrValue = cpu.into(); - - let cpu: *mut ConfObject = attr_object_or_nil(unsafe { *ptr })?; - - let iface = get_interface::(cpu, Interface::IntRegister)?; - - if iface.is_null() { - bail!( - "No interface {} found for cpu", - String::from_utf8_lossy(Interface::IntRegister.try_as_slice()?) - ) - } else { - Ok(Self { iface }) - } - } - - /// Get the number for a register name - pub fn get_number(&self, cpu: *mut ConfObject, register: S) -> Result - where - S: AsRef, - { - if let Some(get_number) = unsafe { *self.iface }.get_number { - Ok(unsafe { get_number(cpu.into(), raw_cstr(register.as_ref())?) }) - } else { - bail!("No function get_number in interface"); - } - } - - /// Read a register - pub fn read(&self, cpu: *mut ConfObject, register_number: i32) -> Result { - if let Some(read) = unsafe { *self.iface }.read { - Ok(unsafe { read(cpu.into(), register_number) }) - } else { - bail!("No function read in interface"); - } - } - - pub fn write( - &self, - cpu: *mut ConfObject, - register_number: i32, - register_value: u64, - ) -> Result<()> { - if let Some(write) = unsafe { *self.iface }.write { - unsafe { write(cpu.into(), register_number, register_value) }; - Ok(()) - } else { - bail!("No function writein interface"); - } - } -} - -pub struct Cycle { - _iface: *mut CycleInterface, -} - -impl Cycle { - pub fn try_new(cpu: *mut AttrValue) -> Result { - let ptr: *mut AttrValue = cpu.into(); - - let cpu: *mut ConfObject = attr_object_or_nil(unsafe { *ptr })?; - - let iface = get_interface::(cpu, Interface::Cycle)?; - - if iface.is_null() { - bail!( - "No interface {} found for cpu", - String::from_utf8_lossy(Interface::Cycle.try_as_slice()?) - ) - } else { - Ok(Self { _iface: iface }) - } - } -} diff --git a/simics-api/src/safe/model_interface/mod.rs b/simics-api/src/safe/model_interface/mod.rs deleted file mode 100644 index c5bfa65f..00000000 --- a/simics-api/src/safe/model_interface/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -pub mod cpu_instrumentation; - -pub use cpu_instrumentation::*; diff --git a/simics-api/src/safe/processor/types.rs b/simics-api/src/safe/processor/types.rs deleted file mode 100644 index e5beaf77..00000000 --- a/simics-api/src/safe/processor/types.rs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use simics_api_sys::{physical_address_t, physical_block_t, x86_access_type_X86_Vanilla}; - -pub type PhysicalBlock = physical_block_t; -pub type PhysicalAddress = physical_address_t; - -#[repr(u32)] -pub enum AccessType { - X86Vanilla = x86_access_type_X86_Vanilla, - // TODO: Populate -} diff --git a/simics-api/src/safe/simulator/callbacks.rs b/simics-api/src/safe/simulator/callbacks.rs deleted file mode 100644 index 9a179734..00000000 --- a/simics-api/src/safe/simulator/callbacks.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::ffi::c_void; - -use simics_api_sys::SIM_run_alone; - -extern "C" fn run_alone_handler(cb: *mut c_void) -where - F: FnOnce() + 'static, -{ - let closure: Box> = unsafe { Box::from_raw(cb as *mut Box) }; - closure() -} - -pub fn run_alone(cb: F) -where - F: FnOnce() + 'static, -{ - let cb = Box::new(cb); - let cb_box = Box::new(cb); - let cb_raw = Box::into_raw(cb_box); - - debug_assert!( - std::mem::size_of_val(&cb_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), - "Pointer is not convertible to *mut c_void" - ); - - unsafe { - SIM_run_alone( - Some(run_alone_handler::), - cb_raw as *mut _ as *mut c_void, - ) - } -} diff --git a/simics-api/src/safe/simulator/control.rs b/simics-api/src/safe/simulator/control.rs deleted file mode 100644 index 80895efe..00000000 --- a/simics-api/src/safe/simulator/control.rs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::run_alone; -use anyhow::Result; -use raw_cstr::raw_cstr; -use simics_api_sys::{SIM_break_simulation, SIM_continue, SIM_quit}; - -/// Quit simics and exit with a code -pub fn quit(exit_code: i32) { - unsafe { - SIM_quit(exit_code); - } -} - -/// Stop the simulation -pub fn break_simulation(msg: S) -> Result<()> -where - S: AsRef, -{ - unsafe { SIM_break_simulation(raw_cstr(msg.as_ref())?) }; - Ok(()) -} - -/// Runs SIM_continue in the SIM_run_alone context, because it cannot be called directly from a -/// module thread -pub fn continue_simulation_alone() { - run_alone(|| unsafe { - // NOTE: This returns 0 if the simulation was not started, but it can't be caught - // in the run_alone callback - SIM_continue(0); - }); -} diff --git a/simics-api/src/safe/simulator/hap_consumer.rs b/simics-api/src/safe/simulator/hap_consumer.rs deleted file mode 100644 index 1793291f..00000000 --- a/simics-api/src/safe/simulator/hap_consumer.rs +++ /dev/null @@ -1,1350 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::{last_error, ConfObject, GenericTransaction}; -use anyhow::{bail, ensure, Result}; -use raw_cstr::raw_cstr; -use simics_api_sys::{hap_handle_t, SIM_hap_add_callback}; -use std::{ - ffi::{c_char, c_void}, - mem::transmute, - ptr::null_mut, -}; - -pub type HapHandle = hap_handle_t; - -/// Set of HAPs -pub enum Hap { - // Base HAPs from API reference manual part 12 - Arinc429Word, - CliCommandAdded, - ComponentChange, - ComponentHierarchyChange, - ConsoleBreakString, - CoreAddressNotMapped, - CoreAsynchronousTrap, - CoreAtExit, - CoreBackToFront, - CoreBreakpointChange, - CoreBreakpointMemop, - CoreCleanAtExit, - CoreConfClassRegister, - CoreConfClassUnregister, - CoreConfClockChangeCell, - CoreConfObjectChangeClock, - CoreConfObjectCreate, - CoreConfObjectCreated, - CoreConfObjectDelete, - CoreConfObjectPreDelete, - CoreConfObjectRename, - CoreConfObjectsCreated, - CoreConfObjectsDeleted, - CoreConfigurationLoaded, - CoreContextActivate, - CoreContextChange, - CoreContextDeactivate, - CoreContextUpdated, - CoreContinuation, - CoreControlRegisterRead, - CoreControlRegisterWrite, - CoreDeviceAccessMemop, - CoreDisableBreakpoints, - CoreDiscardFuture, - CoreDstcFlushCounter, - CoreException, - CoreExceptionReturn, - CoreExternalInterrupt, - CoreFrequencyChanged, - CoreGlobalMessage, - CoreHapCallbackInstalled, - CoreHapCallbackRemoved, - CoreHapTypeAdded, - CoreImageActivity, - CoreInitialConfiguration, - CoreLogGroupsChange, - CoreLogLevelChange, - CoreLogMessage, - CoreLogMessageExtended, - CoreLogMessageFiltered, - CoreMagicInstruction, - CoreMemorySpaceMapChanged, - CoreModeChange, - CoreModuleLoaded, - CoreMulticoreAccelerationChanged, - CoreMultithreadingChanged, - CoreNotImplemented, - CorePreferencesChanged, - CoreProcessorScheduleChanged, - CoreProjectChanged, - CoreRecentFilesChanged, - CoreRexecActive, - CoreSimulationModeChange, - CoreSimulationStopped, - CoreSkiptoProgress, - CoreSyncInstruction, - CoreTimeTransition, - CoreTimingModelChange, - CoreUserCommentsChanged, - CoreWriteConfiguration, - EthInjectorPcapEof, - FirewireReset, - FirewireTransfer, - GfxBreak, - GfxBreakString, - GraphicsConsoleNewTitle, - GraphicsConsoleShowHide, - InternalBookmarkListChanged, - InternalBreakIo, - InternalDeviceRegAccess, - InternalMicroCheckpointLoaded, - InternalSbWait, - InternalTimeDirectionChanged, - InternalTimeQuantumChanged, - RealtimeEnabled, - RecStateChanged, - RexecLimitExceeded, - RtcNvramUpdate, - ScsiDiskCommand, - SnNaptEnabled, - TextConsoleNewTitle, - TextConsoleShowHide, - TlbFillData, - TlbFillInstruction, - TlbInvalidateData, - TlbInvalidateInstruction, - TlbMissData, - TlbMissInstruction, - TlbReplaceData, - TlbReplaceInstruction, - UiRecordStateChanged, - UiRunStateChanged, - VgaBreakString, - VgaRefreshTriggered, - XtermBreakString, - - // X86 QSP HAPs - CoreInterruptStatus, - CoreModeSwitch, - CorePseudoException, - X86DescriptorChange, - X86EnterSmm, - X86LeaveSmm, - X86MisplacedRex, - X86ProcessorReset, - X86Sysenter, - X86Sysexit, - X86TripleFault, - X86VmcsRead, - X86VmcsWrite, - X86VmxModeChange, - - // ARM HAPs - ArmInstructionModeChange, - ArmV8InterProcessing, -} - -impl Hap { - const HAP_ARINC429_WORD: &'static str = "Arinc429_Word"; - const HAP_CLI_COMMAND_ADDED: &'static str = "CLI_Command_Added"; - const HAP_COMPONENT_CHANGE: &'static str = "Component_Change"; - const HAP_COMPONENT_HIERARCHY_CHANGE: &'static str = "Component_Hierarchy_Change"; - const HAP_CONSOLE_BREAK_STRING: &'static str = "Console_Break_String"; - const HAP_CORE_ADDRESS_NOT_MAPPED: &'static str = "Core_Address_Not_Mapped"; - const HAP_CORE_ASYNCHRONOUS_TRAP: &'static str = "Core_Asynchronous_Trap"; - const HAP_CORE_AT_EXIT: &'static str = "Core_At_Exit"; - const HAP_CORE_BACK_TO_FRONT: &'static str = "Core_Back_To_Front"; - const HAP_CORE_BREAKPOINT_CHANGE: &'static str = "Core_Breakpoint_Change"; - const HAP_CORE_BREAKPOINT_MEMOP: &'static str = "Core_Breakpoint_Memop"; - const HAP_CORE_CLEAN_AT_EXIT: &'static str = "Core_Clean_At_Exit"; - const HAP_CORE_CONF_CLASS_REGISTER: &'static str = "Core_Conf_Class_Register"; - const HAP_CORE_CONF_CLASS_UNREGISTER: &'static str = "Core_Conf_Class_Unregister"; - const HAP_CORE_CONF_CLOCK_CHANGE_CELL: &'static str = "Core_Conf_Clock_Change_Cell"; - const HAP_CORE_CONF_OBJECT_CHANGE_CLOCK: &'static str = "Core_Conf_Object_Change_Clock"; - const HAP_CORE_CONF_OBJECT_CREATE: &'static str = "Core_Conf_Object_Create"; - const HAP_CORE_CONF_OBJECT_CREATED: &'static str = "Core_Conf_Object_Created"; - const HAP_CORE_CONF_OBJECT_DELETE: &'static str = "Core_Conf_Object_Delete"; - const HAP_CORE_CONF_OBJECT_PRE_DELETE: &'static str = "Core_Conf_Object_Pre_Delete"; - const HAP_CORE_CONF_OBJECT_RENAME: &'static str = "Core_Conf_Object_Rename"; - const HAP_CORE_CONF_OBJECTS_CREATED: &'static str = "Core_Conf_Objects_Created"; - const HAP_CORE_CONF_OBJECTS_DELETED: &'static str = "Core_Conf_Objects_Deleted"; - const HAP_CORE_CONFIGURATION_LOADED: &'static str = "Core_Configuration_Loaded"; - const HAP_CORE_CONTEXT_ACTIVATE: &'static str = "Core_Context_Activate"; - const HAP_CORE_CONTEXT_CHANGE: &'static str = "Core_Context_Change"; - const HAP_CORE_CONTEXT_DEACTIVATE: &'static str = "Core_Context_Deactivate"; - const HAP_CORE_CONTEXT_UPDATED: &'static str = "Core_Context_Updated"; - const HAP_CORE_CONTINUATION: &'static str = "Core_Continuation"; - const HAP_CORE_CONTROL_REGISTER_READ: &'static str = "Core_Control_Register_Read"; - const HAP_CORE_CONTROL_REGISTER_WRITE: &'static str = "Core_Control_Register_Write"; - const HAP_CORE_DEVICE_ACCESS_MEMOP: &'static str = "Core_Device_Access_Memop"; - const HAP_CORE_DISABLE_BREAKPOINTS: &'static str = "Core_Disable_Breakpoints"; - const HAP_CORE_DISCARD_FUTURE: &'static str = "Core_Discard_Future"; - const HAP_CORE_DSTC_FLUSH_COUNTER: &'static str = "Core_DSTC_Flush_Counter"; - const HAP_CORE_EXCEPTION: &'static str = "Core_Exception"; - const HAP_CORE_EXCEPTION_RETURN: &'static str = "Core_Exception_Return"; - const HAP_CORE_EXTERNAL_INTERRUPT: &'static str = "Core_External_Interrupt"; - const HAP_CORE_FREQUENCY_CHANGED: &'static str = "Core_Frequency_Changed"; - const HAP_CORE_GLOBAL_MESSAGE: &'static str = "Core_Global_Message"; - const HAP_CORE_HAP_CALLBACK_INSTALLED: &'static str = "Core_Hap_Callback_Installed"; - const HAP_CORE_HAP_CALLBACK_REMOVED: &'static str = "Core_Hap_Callback_Removed"; - const HAP_CORE_HAP_TYPE_ADDED: &'static str = "Core_Hap_Type_Added"; - const HAP_CORE_IMAGE_ACTIVITY: &'static str = "Core_Image_Activity"; - const HAP_CORE_INITIAL_CONFIGURATION: &'static str = "Core_Initial_Configuration"; - const HAP_CORE_LOG_GROUPS_CHANGE: &'static str = "Core_Log_Groups_Change"; - const HAP_CORE_LOG_LEVEL_CHANGE: &'static str = "Core_Log_Level_Change"; - const HAP_CORE_LOG_MESSAGE: &'static str = "Core_Log_Message"; - const HAP_CORE_LOG_MESSAGE_EXTENDED: &'static str = "Core_Log_Message_Extended"; - const HAP_CORE_LOG_MESSAGE_FILTERED: &'static str = "Core_Log_Message_Filtered"; - const HAP_CORE_MAGIC_INSTRUCTION: &'static str = "Core_Magic_Instruction"; - const HAP_CORE_MEMORY_SPACE_MAP_CHANGED: &'static str = "Core_Memory_Space_Map_Changed"; - const HAP_CORE_MODE_CHANGE: &'static str = "Core_Mode_Change"; - const HAP_CORE_MODULE_LOADED: &'static str = "Core_Module_Loaded"; - const HAP_CORE_MULTICORE_ACCELERATION_CHANGED: &'static str = - "Core_Multicore_Acceleration_Changed"; - const HAP_CORE_MULTITHREADING_CHANGED: &'static str = "Core_Multithreading_Changed"; - const HAP_CORE_NOT_IMPLEMENTED: &'static str = "Core_Not_Implemented"; - const HAP_CORE_PREFERENCES_CHANGED: &'static str = "Core_Preferences_Changed"; - const HAP_CORE_PROCESSOR_SCHEDULE_CHANGED: &'static str = "Core_Processor_Schedule_Changed"; - const HAP_CORE_PROJECT_CHANGED: &'static str = "Core_Project_Changed"; - const HAP_CORE_RECENT_FILES_CHANGED: &'static str = "Core_Recent_Files_Changed"; - const HAP_CORE_REXEC_ACTIVE: &'static str = "Core_Rexec_Active"; - const HAP_CORE_SIMULATION_MODE_CHANGE: &'static str = "Core_Simulation_Mode_Change"; - const HAP_CORE_SIMULATION_STOPPED: &'static str = "Core_Simulation_Stopped"; - const HAP_CORE_SKIPTO_PROGRESS: &'static str = "Core_Skipto_Progress"; - const HAP_CORE_SYNC_INSTRUCTION: &'static str = "Core_Sync_Instruction"; - const HAP_CORE_TIME_TRANSITION: &'static str = "Core_Time_Transition"; - const HAP_CORE_TIMING_MODEL_CHANGE: &'static str = "Core_Timing_Model_Change"; - const HAP_CORE_USER_COMMENTS_CHANGED: &'static str = "Core_User_Comments_Changed"; - const HAP_CORE_WRITE_CONFIGURATION: &'static str = "Core_Write_Configuration"; - const HAP_ETH_INJECTOR_PCAP_EOF: &'static str = "Eth_Injector_Pcap_Eof"; - const HAP_FIREWIRE_RESET: &'static str = "Firewire_Reset"; - const HAP_FIREWIRE_TRANSFER: &'static str = "Firewire_Transfer"; - const HAP_GFX_BREAK: &'static str = "Gfx_Break"; - const HAP_GFX_BREAK_STRING: &'static str = "Gfx_Break_String"; - const HAP_GRAPHICS_CONSOLE_NEW_TITLE: &'static str = "Graphics_Console_New_Title"; - const HAP_GRAPHICS_CONSOLE_SHOW_HIDE: &'static str = "Graphics_Console_Show_Hide"; - const HAP_INTERNAL_BOOKMARK_LIST_CHANGED: &'static str = "Internal_Bookmark_List_Changed"; - const HAP_INTERNAL_BREAK_IO: &'static str = "Internal_Break_IO"; - const HAP_INTERNAL_DEVICE_REG_ACCESS: &'static str = "Internal_Device_Reg_Access"; - const HAP_INTERNAL_MICRO_CHECKPOINT_LOADED: &'static str = "Internal_Micro_Checkpoint_Loaded"; - const HAP_INTERNAL_SB_WAIT: &'static str = "Internal_SB_Wait"; - const HAP_INTERNAL_TIME_DIRECTION_CHANGED: &'static str = "Internal_Time_Direction_Changed"; - const HAP_INTERNAL_TIME_QUANTUM_CHANGED: &'static str = "Internal_Time_Quantum_Changed"; - const HAP_REALTIME_ENABLED: &'static str = "Realtime_Enabled"; - const HAP_REC_STATE_CHANGED: &'static str = "REC_State_Changed"; - const HAP_REXEC_LIMIT_EXCEEDED: &'static str = "Rexec_Limit_Exceeded"; - const HAP_RTC_NVRAM_UPDATE: &'static str = "RTC_Nvram_Update"; - const HAP_SCSI_DISK_COMMAND: &'static str = "SCSI_Disk_Command"; - const HAP_SN_NAPT_ENABLED: &'static str = "SN_NAPT_Enabled"; - const HAP_TEXT_CONSOLE_NEW_TITLE: &'static str = "Text_Console_New_Title"; - const HAP_TEXT_CONSOLE_SHOW_HIDE: &'static str = "Text_Console_Show_Hide"; - const HAP_TLB_FILL_DATA: &'static str = "TLB_Fill_Data"; - const HAP_TLB_FILL_INSTRUCTION: &'static str = "TLB_Fill_Instruction"; - const HAP_TLB_INVALIDATE_DATA: &'static str = "TLB_Invalidate_Data"; - const HAP_TLB_INVALIDATE_INSTRUCTION: &'static str = "TLB_Invalidate_Instruction"; - const HAP_TLB_MISS_DATA: &'static str = "TLB_Miss_Data"; - const HAP_TLB_MISS_INSTRUCTION: &'static str = "TLB_Miss_Instruction"; - const HAP_TLB_REPLACE_DATA: &'static str = "TLB_Replace_Data"; - const HAP_TLB_REPLACE_INSTRUCTION: &'static str = "TLB_Replace_Instruction"; - const HAP_UI_RECORD_STATE_CHANGED: &'static str = "UI_Record_State_Changed"; - const HAP_UI_RUN_STATE_CHANGED: &'static str = "UI_Run_State_Changed"; - const HAP_VGA_BREAK_STRING: &'static str = "Vga_Break_String"; - const HAP_VGA_REFRESH_TRIGGERED: &'static str = "Vga_Refresh_Triggered"; - const HAP_XTERM_BREAK_STRING: &'static str = "Xterm_Break_String"; - - // X86 QSP HAPs - const HAP_CORE_INTERRUPT_STATUS: &'static str = "Core_Interrupt_Status"; - const HAP_CORE_MODE_SWITCH: &'static str = "Core_Mode_Switch"; - const HAP_CORE_PSEUDO_EXCEPTION: &'static str = "Core_Pseudo_Exception"; - const HAP_X86_DESCRIPTOR_CHANGE: &'static str = "X86_Descriptor_Change"; - const HAP_X86_ENTER_SMM: &'static str = "X86_Enter_SMM"; - const HAP_X86_LEAVE_SMM: &'static str = "X86_Leave_SMM"; - const HAP_X86_MISPLACED_REX: &'static str = "X86_Misplaced_Rex"; - const HAP_X86_PROCESSOR_RESET: &'static str = "X86_Processor_Reset"; - const HAP_X86_SYSENTER: &'static str = "X86_Sysenter"; - const HAP_X86_SYSEXIT: &'static str = "X86_Sysexit"; - const HAP_X86_TRIPLE_FAULT: &'static str = "X86_Triple_Fault"; - const HAP_X86_VMCS_READ: &'static str = "X86_Vmcs_Read"; - const HAP_X86_VMCS_WRITE: &'static str = "X86_Vmcs_Write"; - const HAP_X86_VMX_MODE_CHANGE: &'static str = "X86_Vmx_Mode_Change"; - - // ARM HAPs - const HAP_ARM_INSTRUCTION_MODE_CHANGE: &'static str = "Arm_Instruction_Mode_Change"; - const HAP_ARM_V8_INTER_PROCESSING: &'static str = "Arm_V8_Inter_Processing"; -} - -impl ToString for Hap { - /// Convert a HAP enum to the name of the HAP - fn to_string(&self) -> String { - match *self { - Hap::Arinc429Word => Hap::HAP_ARINC429_WORD.to_string(), - Hap::CliCommandAdded => Hap::HAP_CLI_COMMAND_ADDED.to_string(), - Hap::ComponentChange => Hap::HAP_COMPONENT_CHANGE.to_string(), - Hap::ComponentHierarchyChange => Hap::HAP_COMPONENT_HIERARCHY_CHANGE.to_string(), - Hap::ConsoleBreakString => Hap::HAP_CONSOLE_BREAK_STRING.to_string(), - Hap::CoreAddressNotMapped => Hap::HAP_CORE_ADDRESS_NOT_MAPPED.to_string(), - Hap::CoreAsynchronousTrap => Hap::HAP_CORE_ASYNCHRONOUS_TRAP.to_string(), - Hap::CoreAtExit => Hap::HAP_CORE_AT_EXIT.to_string(), - Hap::CoreBackToFront => Hap::HAP_CORE_BACK_TO_FRONT.to_string(), - Hap::CoreBreakpointChange => Hap::HAP_CORE_BREAKPOINT_CHANGE.to_string(), - Hap::CoreBreakpointMemop => Hap::HAP_CORE_BREAKPOINT_MEMOP.to_string(), - Hap::CoreCleanAtExit => Hap::HAP_CORE_CLEAN_AT_EXIT.to_string(), - Hap::CoreConfClassRegister => Hap::HAP_CORE_CONF_CLASS_REGISTER.to_string(), - Hap::CoreConfClassUnregister => Hap::HAP_CORE_CONF_CLASS_UNREGISTER.to_string(), - Hap::CoreConfClockChangeCell => Hap::HAP_CORE_CONF_CLOCK_CHANGE_CELL.to_string(), - Hap::CoreConfObjectChangeClock => Hap::HAP_CORE_CONF_OBJECT_CHANGE_CLOCK.to_string(), - Hap::CoreConfObjectCreate => Hap::HAP_CORE_CONF_OBJECT_CREATE.to_string(), - Hap::CoreConfObjectCreated => Hap::HAP_CORE_CONF_OBJECT_CREATED.to_string(), - Hap::CoreConfObjectDelete => Hap::HAP_CORE_CONF_OBJECT_DELETE.to_string(), - Hap::CoreConfObjectPreDelete => Hap::HAP_CORE_CONF_OBJECT_PRE_DELETE.to_string(), - Hap::CoreConfObjectRename => Hap::HAP_CORE_CONF_OBJECT_RENAME.to_string(), - Hap::CoreConfObjectsCreated => Hap::HAP_CORE_CONF_OBJECTS_CREATED.to_string(), - Hap::CoreConfObjectsDeleted => Hap::HAP_CORE_CONF_OBJECTS_DELETED.to_string(), - Hap::CoreConfigurationLoaded => Hap::HAP_CORE_CONFIGURATION_LOADED.to_string(), - Hap::CoreContextActivate => Hap::HAP_CORE_CONTEXT_ACTIVATE.to_string(), - Hap::CoreContextChange => Hap::HAP_CORE_CONTEXT_CHANGE.to_string(), - Hap::CoreContextDeactivate => Hap::HAP_CORE_CONTEXT_DEACTIVATE.to_string(), - Hap::CoreContextUpdated => Hap::HAP_CORE_CONTEXT_UPDATED.to_string(), - Hap::CoreContinuation => Hap::HAP_CORE_CONTINUATION.to_string(), - Hap::CoreControlRegisterRead => Hap::HAP_CORE_CONTROL_REGISTER_READ.to_string(), - Hap::CoreControlRegisterWrite => Hap::HAP_CORE_CONTROL_REGISTER_WRITE.to_string(), - Hap::CoreDeviceAccessMemop => Hap::HAP_CORE_DEVICE_ACCESS_MEMOP.to_string(), - Hap::CoreDisableBreakpoints => Hap::HAP_CORE_DISABLE_BREAKPOINTS.to_string(), - Hap::CoreDiscardFuture => Hap::HAP_CORE_DISCARD_FUTURE.to_string(), - Hap::CoreDstcFlushCounter => Hap::HAP_CORE_DSTC_FLUSH_COUNTER.to_string(), - Hap::CoreException => Hap::HAP_CORE_EXCEPTION.to_string(), - Hap::CoreExceptionReturn => Hap::HAP_CORE_EXCEPTION_RETURN.to_string(), - Hap::CoreExternalInterrupt => Hap::HAP_CORE_EXTERNAL_INTERRUPT.to_string(), - Hap::CoreFrequencyChanged => Hap::HAP_CORE_FREQUENCY_CHANGED.to_string(), - Hap::CoreGlobalMessage => Hap::HAP_CORE_GLOBAL_MESSAGE.to_string(), - Hap::CoreHapCallbackInstalled => Hap::HAP_CORE_HAP_CALLBACK_INSTALLED.to_string(), - Hap::CoreHapCallbackRemoved => Hap::HAP_CORE_HAP_CALLBACK_REMOVED.to_string(), - Hap::CoreHapTypeAdded => Hap::HAP_CORE_HAP_TYPE_ADDED.to_string(), - Hap::CoreImageActivity => Hap::HAP_CORE_IMAGE_ACTIVITY.to_string(), - Hap::CoreInitialConfiguration => Hap::HAP_CORE_INITIAL_CONFIGURATION.to_string(), - Hap::CoreLogGroupsChange => Hap::HAP_CORE_LOG_GROUPS_CHANGE.to_string(), - Hap::CoreLogLevelChange => Hap::HAP_CORE_LOG_LEVEL_CHANGE.to_string(), - Hap::CoreLogMessage => Hap::HAP_CORE_LOG_MESSAGE.to_string(), - Hap::CoreLogMessageExtended => Hap::HAP_CORE_LOG_MESSAGE_EXTENDED.to_string(), - Hap::CoreLogMessageFiltered => Hap::HAP_CORE_LOG_MESSAGE_FILTERED.to_string(), - Hap::CoreMagicInstruction => Hap::HAP_CORE_MAGIC_INSTRUCTION.to_string(), - Hap::CoreMemorySpaceMapChanged => Hap::HAP_CORE_MEMORY_SPACE_MAP_CHANGED.to_string(), - Hap::CoreModeChange => Hap::HAP_CORE_MODE_CHANGE.to_string(), - Hap::CoreModuleLoaded => Hap::HAP_CORE_MODULE_LOADED.to_string(), - Hap::CoreMulticoreAccelerationChanged => { - Hap::HAP_CORE_MULTICORE_ACCELERATION_CHANGED.to_string() - } - Hap::CoreMultithreadingChanged => Hap::HAP_CORE_MULTITHREADING_CHANGED.to_string(), - Hap::CoreNotImplemented => Hap::HAP_CORE_NOT_IMPLEMENTED.to_string(), - Hap::CorePreferencesChanged => Hap::HAP_CORE_PREFERENCES_CHANGED.to_string(), - Hap::CoreProcessorScheduleChanged => { - Hap::HAP_CORE_PROCESSOR_SCHEDULE_CHANGED.to_string() - } - Hap::CoreProjectChanged => Hap::HAP_CORE_PROJECT_CHANGED.to_string(), - Hap::CoreRecentFilesChanged => Hap::HAP_CORE_RECENT_FILES_CHANGED.to_string(), - Hap::CoreRexecActive => Hap::HAP_CORE_REXEC_ACTIVE.to_string(), - Hap::CoreSimulationModeChange => Hap::HAP_CORE_SIMULATION_MODE_CHANGE.to_string(), - Hap::CoreSimulationStopped => Hap::HAP_CORE_SIMULATION_STOPPED.to_string(), - Hap::CoreSkiptoProgress => Hap::HAP_CORE_SKIPTO_PROGRESS.to_string(), - Hap::CoreSyncInstruction => Hap::HAP_CORE_SYNC_INSTRUCTION.to_string(), - Hap::CoreTimeTransition => Hap::HAP_CORE_TIME_TRANSITION.to_string(), - Hap::CoreTimingModelChange => Hap::HAP_CORE_TIMING_MODEL_CHANGE.to_string(), - Hap::CoreUserCommentsChanged => Hap::HAP_CORE_USER_COMMENTS_CHANGED.to_string(), - Hap::CoreWriteConfiguration => Hap::HAP_CORE_WRITE_CONFIGURATION.to_string(), - Hap::EthInjectorPcapEof => Hap::HAP_ETH_INJECTOR_PCAP_EOF.to_string(), - Hap::FirewireReset => Hap::HAP_FIREWIRE_RESET.to_string(), - Hap::FirewireTransfer => Hap::HAP_FIREWIRE_TRANSFER.to_string(), - Hap::GfxBreak => Hap::HAP_GFX_BREAK.to_string(), - Hap::GfxBreakString => Hap::HAP_GFX_BREAK_STRING.to_string(), - Hap::GraphicsConsoleNewTitle => Hap::HAP_GRAPHICS_CONSOLE_NEW_TITLE.to_string(), - Hap::GraphicsConsoleShowHide => Hap::HAP_GRAPHICS_CONSOLE_SHOW_HIDE.to_string(), - Hap::InternalBookmarkListChanged => Hap::HAP_INTERNAL_BOOKMARK_LIST_CHANGED.to_string(), - Hap::InternalBreakIo => Hap::HAP_INTERNAL_BREAK_IO.to_string(), - Hap::InternalDeviceRegAccess => Hap::HAP_INTERNAL_DEVICE_REG_ACCESS.to_string(), - Hap::InternalMicroCheckpointLoaded => { - Hap::HAP_INTERNAL_MICRO_CHECKPOINT_LOADED.to_string() - } - Hap::InternalSbWait => Hap::HAP_INTERNAL_SB_WAIT.to_string(), - Hap::InternalTimeDirectionChanged => { - Hap::HAP_INTERNAL_TIME_DIRECTION_CHANGED.to_string() - } - Hap::InternalTimeQuantumChanged => Hap::HAP_INTERNAL_TIME_QUANTUM_CHANGED.to_string(), - Hap::RealtimeEnabled => Hap::HAP_REALTIME_ENABLED.to_string(), - Hap::RecStateChanged => Hap::HAP_REC_STATE_CHANGED.to_string(), - Hap::RexecLimitExceeded => Hap::HAP_REXEC_LIMIT_EXCEEDED.to_string(), - Hap::RtcNvramUpdate => Hap::HAP_RTC_NVRAM_UPDATE.to_string(), - Hap::ScsiDiskCommand => Hap::HAP_SCSI_DISK_COMMAND.to_string(), - Hap::SnNaptEnabled => Hap::HAP_SN_NAPT_ENABLED.to_string(), - Hap::TextConsoleNewTitle => Hap::HAP_TEXT_CONSOLE_NEW_TITLE.to_string(), - Hap::TextConsoleShowHide => Hap::HAP_TEXT_CONSOLE_SHOW_HIDE.to_string(), - Hap::TlbFillData => Hap::HAP_TLB_FILL_DATA.to_string(), - Hap::TlbFillInstruction => Hap::HAP_TLB_FILL_INSTRUCTION.to_string(), - Hap::TlbInvalidateData => Hap::HAP_TLB_INVALIDATE_DATA.to_string(), - Hap::TlbInvalidateInstruction => Hap::HAP_TLB_INVALIDATE_INSTRUCTION.to_string(), - Hap::TlbMissData => Hap::HAP_TLB_MISS_DATA.to_string(), - Hap::TlbMissInstruction => Hap::HAP_TLB_MISS_INSTRUCTION.to_string(), - Hap::TlbReplaceData => Hap::HAP_TLB_REPLACE_DATA.to_string(), - Hap::TlbReplaceInstruction => Hap::HAP_TLB_REPLACE_INSTRUCTION.to_string(), - Hap::UiRecordStateChanged => Hap::HAP_UI_RECORD_STATE_CHANGED.to_string(), - Hap::UiRunStateChanged => Hap::HAP_UI_RUN_STATE_CHANGED.to_string(), - Hap::VgaBreakString => Hap::HAP_VGA_BREAK_STRING.to_string(), - Hap::VgaRefreshTriggered => Hap::HAP_VGA_REFRESH_TRIGGERED.to_string(), - Hap::XtermBreakString => Hap::HAP_XTERM_BREAK_STRING.to_string(), - Hap::CoreInterruptStatus => Hap::HAP_CORE_INTERRUPT_STATUS.to_string(), - Hap::CoreModeSwitch => Hap::HAP_CORE_MODE_SWITCH.to_string(), - Hap::CorePseudoException => Hap::HAP_CORE_PSEUDO_EXCEPTION.to_string(), - Hap::X86DescriptorChange => Hap::HAP_X86_DESCRIPTOR_CHANGE.to_string(), - Hap::X86EnterSmm => Hap::HAP_X86_ENTER_SMM.to_string(), - Hap::X86LeaveSmm => Hap::HAP_X86_LEAVE_SMM.to_string(), - Hap::X86MisplacedRex => Hap::HAP_X86_MISPLACED_REX.to_string(), - Hap::X86ProcessorReset => Hap::HAP_X86_PROCESSOR_RESET.to_string(), - Hap::X86Sysenter => Hap::HAP_X86_SYSENTER.to_string(), - Hap::X86Sysexit => Hap::HAP_X86_SYSEXIT.to_string(), - Hap::X86TripleFault => Hap::HAP_X86_TRIPLE_FAULT.to_string(), - Hap::X86VmcsRead => Hap::HAP_X86_VMCS_READ.to_string(), - Hap::X86VmcsWrite => Hap::HAP_X86_VMCS_WRITE.to_string(), - Hap::X86VmxModeChange => Hap::HAP_X86_VMX_MODE_CHANGE.to_string(), - Hap::ArmInstructionModeChange => Hap::HAP_ARM_INSTRUCTION_MODE_CHANGE.to_string(), - Hap::ArmV8InterProcessing => Hap::HAP_ARM_V8_INTER_PROCESSING.to_string(), - } - } -} - -// all HAPs are called with at least two parameters: callback_data: *mut c_void and -// trigger_obj: *mut ConfObject - -pub type Arinc429WordCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type ArmInstructionModeChangeCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type ArmV8InterProcessingCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CliCommandAddedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - command_name: *mut c_char, -); -pub type ComponentChangeCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type ComponentHierarchyChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - tope_level_component: *mut ConfObject, -); -pub type ConsoleBreakStringCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - break_string: *mut c_char, -); -pub type CoreAddressNotMappedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - physical_address: i64, - access_type: i64, -); -pub type CoreAsynchronousTrapCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - trap_number: i64, -); -pub type CoreAtExitCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreBackToFrontCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreBreakpointChangeCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreBreakpointMemopCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - breakpoint_number: i64, - memory_operation: *mut GenericTransaction, -); -pub type CoreCleanAtExitCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfClassRegisterCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - class_name: *mut c_char, -); -pub type CoreConfClassUnregisterCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - class_name: *mut c_char, -); -pub type CoreConfClockChangeCellCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - old_cell: *mut ConfObject, - new_cell: *mut ConfObject, -); - -pub type CoreConfObjectChangeClockCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfObjectCreateCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfObjectCreatedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfObjectDeleteCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - object_name: *mut c_char, -); -pub type CoreConfObjectPreDeleteCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfObjectRenameCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - old_name: *mut c_char, -); -pub type CoreConfObjectsCreatedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfObjectsDeletedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreConfigurationLoadedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreContextActivateCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - other_ctx: *mut ConfObject, - cpu: *mut ConfObject, -); -pub type CoreContextChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - cpu: *mut ConfObject, -); -pub type CoreContextDeactivateCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - other_ctx: *mut ConfObject, - cpu: *mut ConfObject, -); -pub type CoreContextUpdatedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreContinuationCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreControlRegisterReadCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - register_number: i64, -); -pub type CoreControlRegisterWriteCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - register_number: i64, - register_value: i64, -); -pub type CoreDeviceAccessMemopCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - memop: *mut GenericTransaction, -); - -pub type CoreDisableBreakpointsCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, reenable: i32); -pub type CoreDiscardFutureCallback = - unsafe extern "C" fn(callback_data: *mut c_void, *mut ConfObject); -pub type CoreDstcFlushCounterCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - typ: i64, - virtual_address: i64, - physical_address: i64, - counter: i64, -); -pub type CoreExceptionCallback = - unsafe extern "C" fn(data: *mut c_void, trigger_obj: *mut ConfObject, exception_number: i64); -pub type CoreExceptionReturnCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - exception_number: i64, -); -pub type CoreExternalInterruptCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, source_mid: i64); -pub type CoreFrequencyChangedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - old_freq: i64, - new_freq: i64, -); -pub type CoreGlobalMessageCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - message: *mut c_char, -); -pub type CoreHapCallbackInstalledCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - hap_number: i64, - range_low: i64, - range_high: i64, -); -pub type CoreHapCallbackRemovedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - hap_number: i64, - range_low: i64, - range_high: i64, -); -pub type CoreHapTypeAddedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - hap_name: *mut c_char, -); -pub type CoreImageActivityCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - typ: i32, - onoff: i32, -); -pub type CoreInitialConfigurationCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreInterruptStatusCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, status: i64); -pub type CoreLogGroupsChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - log_group_mask: i32, -); -pub type CoreLogLevelChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - new_log_level: i32, -); -pub type CoreLogMessageCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - typ: i32, - message: *mut c_char, -); -pub type CoreLogMessageExtendedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - typ: i32, - message: *mut c_char, - level: i32, - group: i64, -); -pub type CoreLogMessageFilteredCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - typ: i32, - message: *mut c_char, - level: i32, - group: i64, -); -pub type CoreMagicInstructionCallback = - unsafe extern "C" fn(*mut c_void, *mut ConfObject, parameter: i64); -pub type CoreMemorySpaceMapChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreModeChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - old_mode: i64, - new_mode: i64, -); -pub type CoreModeSwitchCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, mode: i64); -pub type CoreModuleLoadedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - module_name: *mut c_char, -); -pub type CoreMulticoreAccelerationChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, onoff: i32); -pub type CoreMultithreadingChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, onoff: i32); -pub type CoreNotImplementedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - line: i32, - file: *mut c_char, - rcsid: *mut c_char, - message: *mut c_char, - data: i64, -); -pub type CorePreferencesChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreProcessorScheduleChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreProjectChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CorePseudoExceptionCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - exception_number: i64, -); -pub type CoreRecentFilesChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreRexecActiveCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - active_flag: i32, -); -pub type CoreSimulationModeChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - simulation_mode: i32, -); - -/// exception is *always* SimExc::NoException, error_string is always NULL -pub type CoreSimulationStoppedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - exception: i64, - error_string: *mut c_char, -); - -pub type CoreSkiptoProgressCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, progress: i32); -pub type CoreSyncInstructionCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, typ: i64); -pub type CoreTimeTransitionCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - in_the_past: i32, -); -pub type CoreTimingModelChangeCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreUserCommentsChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type CoreWriteConfigurationCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - file_name: *mut c_char, -); -pub type EthInjectorPcapEofCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - pcap_file: *mut c_char, - num_injected: i32, - pcap_num_pkgs: i32, - auto_restart: i32, -); -pub type FirewireResetCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type FirewireTransferCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type GfxBreakCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, gfx_break: i64); -pub type GfxBreakStringCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, break_id: i64); -pub type GraphicsConsoleNewTitleCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - title: *mut c_char, -); -pub type GraphicsConsoleShowHideCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, state: i32); -pub type InternalBookmarkListChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type InternalBreakIoCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, break_id: i32); -pub type InternalDeviceRegAccessCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - memop: *mut GenericTransaction, - port: *mut c_char, - idx: i32, - func: i32, - offset: i64, -); -pub type InternalMicroCheckpointLoadedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type InternalSbWaitCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type InternalTimeDirectionChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, rev: i32); -pub type InternalTimeQuantumChangedCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type RealtimeEnabledCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, enabled: i32); -pub type RecStateChangedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - recording: i32, - playback: i32, -); -pub type RexecLimitExceededCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, limit_type: i32); -pub type RtcNvramUpdateCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - index: i64, - old_value: i64, - new_value: i64, -); -pub type ScsiDiskCommandCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - command_number: i64, - start: i64, - len: i64, -); -pub type SnNaptEnabledCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, enabled: i32); -pub type TextConsoleNewTitleCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - new_title: *mut c_char, -); -pub type TextConsoleShowHideCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, is_shown: i32); -pub type TlbFillDataCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear: i64, - physical: i64, - page_size: i64, -); -pub type TlbFillInstructionCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear: i64, - physical: i64, - page_size: i64, -); -pub type TlbInvalidateDataCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear: i64, - physical: i64, - page_size: i64, -); -pub type TlbInvalidateInstructionCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear: i64, - physical: i64, - page_size: i64, -); -pub type TlbMissDataCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear_address: i64, -); -pub type TlbMissInstructionCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear_address: i64, -); -pub type TlbReplaceDataCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear: i64, - physical: i64, - page_size: i64, -); -pub type TlbReplaceInstructionCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - linear: i64, - physical: i64, - page_size: i64, -); -pub type UiRecordStateChangedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - record: i32, - playback: i32, -); -pub type UiRunStateChangedCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - state: *mut c_char, -); -pub type VgaBreakStringCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - string: *mut c_char, -); -pub type VgaRefreshTriggeredCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type X86DescriptorChangeCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - // Segment number: ES=0, CS=1, SS=2, DS=3, FS=4, and GS=5 - segment_number: i64, -); -pub type X86EnterSmmCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, phase: i32); -pub type X86LeaveSmmCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, phase: i32); -pub type X86MisplacedRexCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type X86ProcessorResetCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, hard_reset: i32); -pub type X86SysenterCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, kind: i32); -pub type X86SysexitCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, kind: i32); -pub type X86TripleFaultCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject); -pub type X86VmcsReadCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - field_index: i64, -); -pub type X86VmcsWriteCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - field_index: i64, - value: i64, -); -pub type X86VmxModeChangeCallback = - unsafe extern "C" fn(callback_data: *mut c_void, trigger_obj: *mut ConfObject, mode: i64); -pub type XtermBreakStringCallback = unsafe extern "C" fn( - callback_data: *mut c_void, - trigger_obj: *mut ConfObject, - break_string: *mut c_char, -); - -/// Types for HAP callbacks -pub enum HapCallback { - // Base HAPs from API reference manual part 12 - Arinc429Word(Arinc429WordCallback), - CliCommandAdded(CliCommandAddedCallback), - ComponentChange(ComponentChangeCallback), - ComponentHierarchyChange(ComponentHierarchyChangeCallback), - ConsoleBreakString(ConsoleBreakStringCallback), - CoreAddressNotMapped(CoreAddressNotMappedCallback), - CoreAsynchronousTrap(CoreAsynchronousTrapCallback), - CoreAtExit(CoreAtExitCallback), - CoreBackToFront(CoreBackToFrontCallback), - CoreBreakpointChange(CoreBreakpointChangeCallback), - CoreBreakpointMemop(CoreBreakpointMemopCallback), - CoreCleanAtExit(CoreCleanAtExitCallback), - CoreConfClassRegister(CoreConfClassRegisterCallback), - CoreConfClassUnregister(CoreConfClassUnregisterCallback), - CoreConfClockChangeCell(CoreConfClockChangeCellCallback), - CoreConfObjectChangeClock(CoreConfObjectChangeClockCallback), - CoreConfObjectCreate(CoreConfObjectCreateCallback), - CoreConfObjectCreated(CoreConfObjectCreatedCallback), - CoreConfObjectDelete(CoreConfObjectDeleteCallback), - CoreConfObjectPreDelete(CoreConfObjectPreDeleteCallback), - CoreConfObjectRename(CoreConfObjectRenameCallback), - CoreConfObjectsCreated(CoreConfObjectsCreatedCallback), - CoreConfObjectsDeleted(CoreConfObjectsDeletedCallback), - CoreConfigurationLoaded(CoreConfigurationLoadedCallback), - CoreContextActivate(CoreContextActivateCallback), - CoreContextChange(CoreContextChangeCallback), - CoreContextDeactivate(CoreContextDeactivateCallback), - CoreContextUpdated(CoreContextUpdatedCallback), - CoreContinuation(CoreContinuationCallback), - CoreControlRegisterRead(CoreControlRegisterReadCallback), - CoreControlRegisterWrite(CoreControlRegisterWriteCallback), - CoreDeviceAccessMemop(CoreDeviceAccessMemopCallback), - CoreDisableBreakpoints(CoreDisableBreakpointsCallback), - CoreDiscardFuture(CoreDiscardFutureCallback), - CoreDstcFlushCounter(CoreDstcFlushCounterCallback), - CoreException(CoreExceptionCallback), - CoreExceptionReturn(CoreExceptionReturnCallback), - CoreExternalInterrupt(CoreExternalInterruptCallback), - CoreFrequencyChanged(CoreFrequencyChangedCallback), - CoreGlobalMessage(CoreGlobalMessageCallback), - CoreHapCallbackInstalled(CoreHapCallbackInstalledCallback), - CoreHapCallbackRemoved(CoreHapCallbackRemovedCallback), - CoreHapTypeAdded(CoreHapTypeAddedCallback), - CoreImageActivity(CoreImageActivityCallback), - CoreInitialConfiguration(CoreInitialConfigurationCallback), - CoreLogGroupsChange(CoreLogGroupsChangeCallback), - CoreLogLevelChange(CoreLogLevelChangeCallback), - CoreLogMessage(CoreLogMessageCallback), - CoreLogMessageExtended(CoreLogMessageExtendedCallback), - CoreLogMessageFiltered(CoreLogMessageFilteredCallback), - CoreMagicInstruction(CoreMagicInstructionCallback), - CoreMemorySpaceMapChanged(CoreMemorySpaceMapChangedCallback), - CoreModeChange(CoreModeChangeCallback), - CoreModuleLoaded(CoreModuleLoadedCallback), - CoreMulticoreAccelerationChanged(CoreMulticoreAccelerationChangedCallback), - CoreMultithreadingChanged(CoreMultithreadingChangedCallback), - CoreNotImplemented(CoreNotImplementedCallback), - CorePreferencesChanged(CorePreferencesChangedCallback), - CoreProcessorScheduleChanged(CoreProcessorScheduleChangedCallback), - CoreProjectChanged(CoreProjectChangedCallback), - CoreRecentFilesChanged(CoreRecentFilesChangedCallback), - CoreRexecActive(CoreRexecActiveCallback), - CoreSimulationModeChange(CoreSimulationModeChangeCallback), - CoreSimulationStopped(CoreSimulationStoppedCallback), - CoreSkiptoProgress(CoreSkiptoProgressCallback), - CoreSyncInstruction(CoreSyncInstructionCallback), - CoreTimeTransition(CoreTimeTransitionCallback), - CoreTimingModelChange(CoreTimingModelChangeCallback), - CoreUserCommentsChanged(CoreUserCommentsChangedCallback), - CoreWriteConfiguration(CoreWriteConfigurationCallback), - EthInjectorPcapEof(EthInjectorPcapEofCallback), - FirewireReset(FirewireResetCallback), - FirewireTransfer(FirewireTransferCallback), - GfxBreak(GfxBreakCallback), - GfxBreakString(GfxBreakStringCallback), - GraphicsConsoleNewTitle(GraphicsConsoleNewTitleCallback), - GraphicsConsoleShowHide(GraphicsConsoleShowHideCallback), - InternalBookmarkListChanged(InternalBookmarkListChangedCallback), - InternalBreakIo(InternalBreakIoCallback), - InternalDeviceRegAccess(InternalDeviceRegAccessCallback), - InternalMicroCheckpointLoaded(InternalMicroCheckpointLoadedCallback), - InternalSbWait(InternalSbWaitCallback), - InternalTimeDirectionChanged(InternalTimeDirectionChangedCallback), - InternalTimeQuantumChanged(InternalTimeQuantumChangedCallback), - RealtimeEnabled(RealtimeEnabledCallback), - RecStateChanged(RecStateChangedCallback), - RexecLimitExceeded(RexecLimitExceededCallback), - RtcNvramUpdate(RtcNvramUpdateCallback), - ScsiDiskCommand(ScsiDiskCommandCallback), - SnNaptEnabled(SnNaptEnabledCallback), - TextConsoleNewTitle(TextConsoleNewTitleCallback), - TextConsoleShowHide(TextConsoleShowHideCallback), - TlbFillData(TlbFillDataCallback), - TlbFillInstruction(TlbFillInstructionCallback), - TlbInvalidateData(TlbInvalidateDataCallback), - TlbInvalidateInstruction(TlbInvalidateInstructionCallback), - TlbMissData(TlbMissDataCallback), - TlbMissInstruction(TlbMissInstructionCallback), - TlbReplaceData(TlbReplaceDataCallback), - TlbReplaceInstruction(TlbReplaceInstructionCallback), - UiRecordStateChanged(UiRecordStateChangedCallback), - UiRunStateChanged(UiRunStateChangedCallback), - VgaBreakString(VgaBreakStringCallback), - VgaRefreshTriggered(VgaRefreshTriggeredCallback), - XtermBreakString(XtermBreakStringCallback), - - // X86 QSP HAPs - CoreInterruptStatus(CoreInterruptStatusCallback), - CoreModeSwitch(CoreModeSwitchCallback), - CorePseudoException(CorePseudoExceptionCallback), - X86DescriptorChange(X86DescriptorChangeCallback), - X86EnterSmm(X86EnterSmmCallback), - X86LeaveSmm(X86LeaveSmmCallback), - X86MisplacedRex(X86MisplacedRexCallback), - X86ProcessorReset(X86ProcessorResetCallback), - X86Sysenter(X86SysenterCallback), - X86Sysexit(X86SysexitCallback), - X86TripleFault(X86TripleFaultCallback), - X86VmcsRead(X86VmcsReadCallback), - X86VmcsWrite(X86VmcsWriteCallback), - X86VmxModeChange(X86VmxModeChangeCallback), - - // ARM HAPs - ArmInstructionModeChange(ArmInstructionModeChangeCallback), - ArmV8InterProcessing(ArmV8InterProcessingCallback), -} - -impl HapCallback { - /// Coerce any HAP callback type to a CFFI compatible function pointer that takes no arguments - /// and returns no data, required by the SIMICS API - pub fn as_fn(&self) -> extern "C" fn() { - unsafe { - match *self { - HapCallback::Arinc429Word(func) => transmute(func), - HapCallback::CliCommandAdded(func) => transmute(func), - HapCallback::ComponentChange(func) => transmute(func), - HapCallback::ComponentHierarchyChange(func) => transmute(func), - HapCallback::ConsoleBreakString(func) => transmute(func), - HapCallback::CoreAddressNotMapped(func) => transmute(func), - HapCallback::CoreAsynchronousTrap(func) => transmute(func), - HapCallback::CoreAtExit(func) => transmute(func), - HapCallback::CoreBackToFront(func) => transmute(func), - HapCallback::CoreBreakpointChange(func) => transmute(func), - HapCallback::CoreBreakpointMemop(func) => transmute(func), - HapCallback::CoreCleanAtExit(func) => transmute(func), - HapCallback::CoreConfClassRegister(func) => transmute(func), - HapCallback::CoreConfClassUnregister(func) => transmute(func), - HapCallback::CoreConfClockChangeCell(func) => transmute(func), - HapCallback::CoreConfObjectChangeClock(func) => transmute(func), - HapCallback::CoreConfObjectCreate(func) => transmute(func), - HapCallback::CoreConfObjectCreated(func) => transmute(func), - HapCallback::CoreConfObjectDelete(func) => transmute(func), - HapCallback::CoreConfObjectPreDelete(func) => transmute(func), - HapCallback::CoreConfObjectRename(func) => transmute(func), - HapCallback::CoreConfObjectsCreated(func) => transmute(func), - HapCallback::CoreConfObjectsDeleted(func) => transmute(func), - HapCallback::CoreConfigurationLoaded(func) => transmute(func), - HapCallback::CoreContextActivate(func) => transmute(func), - HapCallback::CoreContextChange(func) => transmute(func), - HapCallback::CoreContextDeactivate(func) => transmute(func), - HapCallback::CoreContextUpdated(func) => transmute(func), - HapCallback::CoreContinuation(func) => transmute(func), - HapCallback::CoreControlRegisterRead(func) => transmute(func), - HapCallback::CoreControlRegisterWrite(func) => transmute(func), - HapCallback::CoreDeviceAccessMemop(func) => transmute(func), - HapCallback::CoreDisableBreakpoints(func) => transmute(func), - HapCallback::CoreDiscardFuture(func) => transmute(func), - HapCallback::CoreDstcFlushCounter(func) => transmute(func), - HapCallback::CoreException(func) => transmute(func), - HapCallback::CoreExceptionReturn(func) => transmute(func), - HapCallback::CoreExternalInterrupt(func) => transmute(func), - HapCallback::CoreFrequencyChanged(func) => transmute(func), - HapCallback::CoreGlobalMessage(func) => transmute(func), - HapCallback::CoreHapCallbackInstalled(func) => transmute(func), - HapCallback::CoreHapCallbackRemoved(func) => transmute(func), - HapCallback::CoreHapTypeAdded(func) => transmute(func), - HapCallback::CoreImageActivity(func) => transmute(func), - HapCallback::CoreInitialConfiguration(func) => transmute(func), - HapCallback::CoreLogGroupsChange(func) => transmute(func), - HapCallback::CoreLogLevelChange(func) => transmute(func), - HapCallback::CoreLogMessage(func) => transmute(func), - HapCallback::CoreLogMessageExtended(func) => transmute(func), - HapCallback::CoreLogMessageFiltered(func) => transmute(func), - HapCallback::CoreMagicInstruction(func) => transmute(func), - HapCallback::CoreMemorySpaceMapChanged(func) => transmute(func), - HapCallback::CoreModeChange(func) => transmute(func), - HapCallback::CoreModuleLoaded(func) => transmute(func), - HapCallback::CoreMulticoreAccelerationChanged(func) => transmute(func), - HapCallback::CoreMultithreadingChanged(func) => transmute(func), - HapCallback::CoreNotImplemented(func) => transmute(func), - HapCallback::CorePreferencesChanged(func) => transmute(func), - HapCallback::CoreProcessorScheduleChanged(func) => transmute(func), - HapCallback::CoreProjectChanged(func) => transmute(func), - HapCallback::CoreRecentFilesChanged(func) => transmute(func), - HapCallback::CoreRexecActive(func) => transmute(func), - HapCallback::CoreSimulationModeChange(func) => transmute(func), - HapCallback::CoreSimulationStopped(func) => transmute(func), - HapCallback::CoreSkiptoProgress(func) => transmute(func), - HapCallback::CoreSyncInstruction(func) => transmute(func), - HapCallback::CoreTimeTransition(func) => transmute(func), - HapCallback::CoreTimingModelChange(func) => transmute(func), - HapCallback::CoreUserCommentsChanged(func) => transmute(func), - HapCallback::CoreWriteConfiguration(func) => transmute(func), - HapCallback::EthInjectorPcapEof(func) => transmute(func), - HapCallback::FirewireReset(func) => transmute(func), - HapCallback::FirewireTransfer(func) => transmute(func), - HapCallback::GfxBreak(func) => transmute(func), - HapCallback::GfxBreakString(func) => transmute(func), - HapCallback::GraphicsConsoleNewTitle(func) => transmute(func), - HapCallback::GraphicsConsoleShowHide(func) => transmute(func), - HapCallback::InternalBookmarkListChanged(func) => transmute(func), - HapCallback::InternalBreakIo(func) => transmute(func), - HapCallback::InternalDeviceRegAccess(func) => transmute(func), - HapCallback::InternalMicroCheckpointLoaded(func) => transmute(func), - HapCallback::InternalSbWait(func) => transmute(func), - HapCallback::InternalTimeDirectionChanged(func) => transmute(func), - HapCallback::InternalTimeQuantumChanged(func) => transmute(func), - HapCallback::RealtimeEnabled(func) => transmute(func), - HapCallback::RecStateChanged(func) => transmute(func), - HapCallback::RexecLimitExceeded(func) => transmute(func), - HapCallback::RtcNvramUpdate(func) => transmute(func), - HapCallback::ScsiDiskCommand(func) => transmute(func), - HapCallback::SnNaptEnabled(func) => transmute(func), - HapCallback::TextConsoleNewTitle(func) => transmute(func), - HapCallback::TextConsoleShowHide(func) => transmute(func), - HapCallback::TlbFillData(func) => transmute(func), - HapCallback::TlbFillInstruction(func) => transmute(func), - HapCallback::TlbInvalidateData(func) => transmute(func), - HapCallback::TlbInvalidateInstruction(func) => transmute(func), - HapCallback::TlbMissData(func) => transmute(func), - HapCallback::TlbMissInstruction(func) => transmute(func), - HapCallback::TlbReplaceData(func) => transmute(func), - HapCallback::TlbReplaceInstruction(func) => transmute(func), - HapCallback::UiRecordStateChanged(func) => transmute(func), - HapCallback::UiRunStateChanged(func) => transmute(func), - HapCallback::VgaBreakString(func) => transmute(func), - HapCallback::VgaRefreshTriggered(func) => transmute(func), - HapCallback::XtermBreakString(func) => transmute(func), - HapCallback::CoreInterruptStatus(func) => transmute(func), - HapCallback::CoreModeSwitch(func) => transmute(func), - HapCallback::CorePseudoException(func) => transmute(func), - HapCallback::X86DescriptorChange(func) => transmute(func), - HapCallback::X86EnterSmm(func) => transmute(func), - HapCallback::X86LeaveSmm(func) => transmute(func), - HapCallback::X86MisplacedRex(func) => transmute(func), - HapCallback::X86ProcessorReset(func) => transmute(func), - HapCallback::X86Sysenter(func) => transmute(func), - HapCallback::X86Sysexit(func) => transmute(func), - HapCallback::X86TripleFault(func) => transmute(func), - HapCallback::X86VmcsRead(func) => transmute(func), - HapCallback::X86VmcsWrite(func) => transmute(func), - HapCallback::X86VmxModeChange(func) => transmute(func), - HapCallback::ArmInstructionModeChange(func) => transmute(func), - HapCallback::ArmV8InterProcessing(func) => transmute(func), - } - } - } - - /// Check if a HAP callback is the correct callback type for a HAP - pub fn is_callback_for(&self, hap: &Hap) -> bool { - match *self { - HapCallback::Arinc429Word(_) => matches!(hap, Hap::Arinc429Word), - HapCallback::CliCommandAdded(_) => matches!(hap, Hap::CliCommandAdded), - HapCallback::ComponentChange(_) => matches!(hap, Hap::ComponentChange), - HapCallback::ComponentHierarchyChange(_) => { - matches!(hap, Hap::ComponentHierarchyChange) - } - HapCallback::ConsoleBreakString(_) => matches!(hap, Hap::ConsoleBreakString), - HapCallback::CoreAddressNotMapped(_) => matches!(hap, Hap::CoreAddressNotMapped), - HapCallback::CoreAsynchronousTrap(_) => matches!(hap, Hap::CoreAsynchronousTrap), - HapCallback::CoreAtExit(_) => matches!(hap, Hap::CoreAtExit), - HapCallback::CoreBackToFront(_) => matches!(hap, Hap::CoreBackToFront), - HapCallback::CoreBreakpointChange(_) => matches!(hap, Hap::CoreBreakpointChange), - HapCallback::CoreBreakpointMemop(_) => matches!(hap, Hap::CoreBreakpointMemop), - HapCallback::CoreCleanAtExit(_) => matches!(hap, Hap::CoreCleanAtExit), - HapCallback::CoreConfClassRegister(_) => matches!(hap, Hap::CoreConfClassRegister), - HapCallback::CoreConfClassUnregister(_) => matches!(hap, Hap::CoreConfClassUnregister), - HapCallback::CoreConfClockChangeCell(_) => matches!(hap, Hap::CoreConfClockChangeCell), - HapCallback::CoreConfObjectChangeClock(_) => { - matches!(hap, Hap::CoreConfObjectChangeClock) - } - HapCallback::CoreConfObjectCreate(_) => matches!(hap, Hap::CoreConfObjectCreate), - HapCallback::CoreConfObjectCreated(_) => matches!(hap, Hap::CoreConfObjectCreated), - HapCallback::CoreConfObjectDelete(_) => matches!(hap, Hap::CoreConfObjectDelete), - HapCallback::CoreConfObjectPreDelete(_) => matches!(hap, Hap::CoreConfObjectPreDelete), - HapCallback::CoreConfObjectRename(_) => matches!(hap, Hap::CoreConfObjectRename), - HapCallback::CoreConfObjectsCreated(_) => matches!(hap, Hap::CoreConfObjectsCreated), - HapCallback::CoreConfObjectsDeleted(_) => matches!(hap, Hap::CoreConfObjectsDeleted), - HapCallback::CoreConfigurationLoaded(_) => matches!(hap, Hap::CoreConfigurationLoaded), - HapCallback::CoreContextActivate(_) => matches!(hap, Hap::CoreContextActivate), - HapCallback::CoreContextChange(_) => matches!(hap, Hap::CoreContextChange), - HapCallback::CoreContextDeactivate(_) => matches!(hap, Hap::CoreContextDeactivate), - HapCallback::CoreContextUpdated(_) => matches!(hap, Hap::CoreContextUpdated), - HapCallback::CoreContinuation(_) => matches!(hap, Hap::CoreContinuation), - HapCallback::CoreControlRegisterRead(_) => matches!(hap, Hap::CoreControlRegisterRead), - HapCallback::CoreControlRegisterWrite(_) => { - matches!(hap, Hap::CoreControlRegisterWrite) - } - HapCallback::CoreDeviceAccessMemop(_) => matches!(hap, Hap::CoreDeviceAccessMemop), - HapCallback::CoreDisableBreakpoints(_) => matches!(hap, Hap::CoreDisableBreakpoints), - HapCallback::CoreDiscardFuture(_) => matches!(hap, Hap::CoreDiscardFuture), - HapCallback::CoreDstcFlushCounter(_) => matches!(hap, Hap::CoreDstcFlushCounter), - HapCallback::CoreException(_) => matches!(hap, Hap::CoreException), - HapCallback::CoreExceptionReturn(_) => matches!(hap, Hap::CoreExceptionReturn), - HapCallback::CoreExternalInterrupt(_) => matches!(hap, Hap::CoreExternalInterrupt), - HapCallback::CoreFrequencyChanged(_) => matches!(hap, Hap::CoreFrequencyChanged), - HapCallback::CoreGlobalMessage(_) => matches!(hap, Hap::CoreGlobalMessage), - HapCallback::CoreHapCallbackInstalled(_) => { - matches!(hap, Hap::CoreHapCallbackInstalled) - } - HapCallback::CoreHapCallbackRemoved(_) => matches!(hap, Hap::CoreHapCallbackRemoved), - HapCallback::CoreHapTypeAdded(_) => matches!(hap, Hap::CoreHapTypeAdded), - HapCallback::CoreImageActivity(_) => matches!(hap, Hap::CoreImageActivity), - HapCallback::CoreInitialConfiguration(_) => { - matches!(hap, Hap::CoreInitialConfiguration) - } - HapCallback::CoreLogGroupsChange(_) => matches!(hap, Hap::CoreLogGroupsChange), - HapCallback::CoreLogLevelChange(_) => matches!(hap, Hap::CoreLogLevelChange), - HapCallback::CoreLogMessage(_) => matches!(hap, Hap::CoreLogMessage), - HapCallback::CoreLogMessageExtended(_) => matches!(hap, Hap::CoreLogMessageExtended), - HapCallback::CoreLogMessageFiltered(_) => matches!(hap, Hap::CoreLogMessageFiltered), - HapCallback::CoreMagicInstruction(_) => matches!(hap, Hap::CoreMagicInstruction), - HapCallback::CoreMemorySpaceMapChanged(_) => { - matches!(hap, Hap::CoreMemorySpaceMapChanged) - } - HapCallback::CoreModeChange(_) => matches!(hap, Hap::CoreModeChange), - HapCallback::CoreModuleLoaded(_) => matches!(hap, Hap::CoreModuleLoaded), - HapCallback::CoreMulticoreAccelerationChanged(_) => { - matches!(hap, Hap::CoreMulticoreAccelerationChanged) - } - HapCallback::CoreMultithreadingChanged(_) => { - matches!(hap, Hap::CoreMultithreadingChanged) - } - HapCallback::CoreNotImplemented(_) => matches!(hap, Hap::CoreNotImplemented), - HapCallback::CorePreferencesChanged(_) => matches!(hap, Hap::CorePreferencesChanged), - HapCallback::CoreProcessorScheduleChanged(_) => { - matches!(hap, Hap::CoreProcessorScheduleChanged) - } - HapCallback::CoreProjectChanged(_) => matches!(hap, Hap::CoreProjectChanged), - HapCallback::CoreRecentFilesChanged(_) => matches!(hap, Hap::CoreRecentFilesChanged), - HapCallback::CoreRexecActive(_) => matches!(hap, Hap::CoreRexecActive), - HapCallback::CoreSimulationModeChange(_) => { - matches!(hap, Hap::CoreSimulationModeChange) - } - HapCallback::CoreSimulationStopped(_) => matches!(hap, Hap::CoreSimulationStopped), - HapCallback::CoreSkiptoProgress(_) => matches!(hap, Hap::CoreSkiptoProgress), - HapCallback::CoreSyncInstruction(_) => matches!(hap, Hap::CoreSyncInstruction), - HapCallback::CoreTimeTransition(_) => matches!(hap, Hap::CoreTimeTransition), - HapCallback::CoreTimingModelChange(_) => matches!(hap, Hap::CoreTimingModelChange), - HapCallback::CoreUserCommentsChanged(_) => matches!(hap, Hap::CoreUserCommentsChanged), - HapCallback::CoreWriteConfiguration(_) => matches!(hap, Hap::CoreWriteConfiguration), - HapCallback::EthInjectorPcapEof(_) => matches!(hap, Hap::EthInjectorPcapEof), - HapCallback::FirewireReset(_) => matches!(hap, Hap::FirewireReset), - HapCallback::FirewireTransfer(_) => matches!(hap, Hap::FirewireTransfer), - HapCallback::GfxBreak(_) => matches!(hap, Hap::GfxBreak), - HapCallback::GfxBreakString(_) => matches!(hap, Hap::GfxBreakString), - HapCallback::GraphicsConsoleNewTitle(_) => matches!(hap, Hap::GraphicsConsoleNewTitle), - HapCallback::GraphicsConsoleShowHide(_) => matches!(hap, Hap::GraphicsConsoleShowHide), - HapCallback::InternalBookmarkListChanged(_) => { - matches!(hap, Hap::InternalBookmarkListChanged) - } - HapCallback::InternalBreakIo(_) => matches!(hap, Hap::InternalBreakIo), - HapCallback::InternalDeviceRegAccess(_) => matches!(hap, Hap::InternalDeviceRegAccess), - HapCallback::InternalMicroCheckpointLoaded(_) => { - matches!(hap, Hap::InternalMicroCheckpointLoaded) - } - HapCallback::InternalSbWait(_) => matches!(hap, Hap::InternalSbWait), - HapCallback::InternalTimeDirectionChanged(_) => { - matches!(hap, Hap::InternalTimeDirectionChanged) - } - HapCallback::InternalTimeQuantumChanged(_) => { - matches!(hap, Hap::InternalTimeQuantumChanged) - } - HapCallback::RealtimeEnabled(_) => matches!(hap, Hap::RealtimeEnabled), - HapCallback::RecStateChanged(_) => matches!(hap, Hap::RecStateChanged), - HapCallback::RexecLimitExceeded(_) => matches!(hap, Hap::RexecLimitExceeded), - HapCallback::RtcNvramUpdate(_) => matches!(hap, Hap::RtcNvramUpdate), - HapCallback::ScsiDiskCommand(_) => matches!(hap, Hap::ScsiDiskCommand), - HapCallback::SnNaptEnabled(_) => matches!(hap, Hap::SnNaptEnabled), - HapCallback::TextConsoleNewTitle(_) => matches!(hap, Hap::TextConsoleNewTitle), - HapCallback::TextConsoleShowHide(_) => matches!(hap, Hap::TextConsoleShowHide), - HapCallback::TlbFillData(_) => matches!(hap, Hap::TlbFillData), - HapCallback::TlbFillInstruction(_) => matches!(hap, Hap::TlbFillInstruction), - HapCallback::TlbInvalidateData(_) => matches!(hap, Hap::TlbInvalidateData), - HapCallback::TlbInvalidateInstruction(_) => { - matches!(hap, Hap::TlbInvalidateInstruction) - } - HapCallback::TlbMissData(_) => matches!(hap, Hap::TlbMissData), - HapCallback::TlbMissInstruction(_) => matches!(hap, Hap::TlbMissInstruction), - HapCallback::TlbReplaceData(_) => matches!(hap, Hap::TlbReplaceData), - HapCallback::TlbReplaceInstruction(_) => matches!(hap, Hap::TlbReplaceInstruction), - HapCallback::UiRecordStateChanged(_) => matches!(hap, Hap::UiRecordStateChanged), - HapCallback::UiRunStateChanged(_) => matches!(hap, Hap::UiRunStateChanged), - HapCallback::VgaBreakString(_) => matches!(hap, Hap::VgaBreakString), - HapCallback::VgaRefreshTriggered(_) => matches!(hap, Hap::VgaRefreshTriggered), - HapCallback::XtermBreakString(_) => matches!(hap, Hap::XtermBreakString), - HapCallback::CoreInterruptStatus(_) => matches!(hap, Hap::CoreInterruptStatus), - HapCallback::CoreModeSwitch(_) => matches!(hap, Hap::CoreModeSwitch), - HapCallback::CorePseudoException(_) => matches!(hap, Hap::CorePseudoException), - HapCallback::X86DescriptorChange(_) => matches!(hap, Hap::X86DescriptorChange), - HapCallback::X86EnterSmm(_) => matches!(hap, Hap::X86EnterSmm), - HapCallback::X86LeaveSmm(_) => matches!(hap, Hap::X86LeaveSmm), - HapCallback::X86MisplacedRex(_) => matches!(hap, Hap::X86MisplacedRex), - HapCallback::X86ProcessorReset(_) => matches!(hap, Hap::X86ProcessorReset), - HapCallback::X86Sysenter(_) => matches!(hap, Hap::X86Sysenter), - HapCallback::X86Sysexit(_) => matches!(hap, Hap::X86Sysexit), - HapCallback::X86TripleFault(_) => matches!(hap, Hap::X86TripleFault), - HapCallback::X86VmcsRead(_) => matches!(hap, Hap::X86VmcsRead), - HapCallback::X86VmcsWrite(_) => matches!(hap, Hap::X86VmcsWrite), - HapCallback::X86VmxModeChange(_) => matches!(hap, Hap::X86VmxModeChange), - HapCallback::ArmInstructionModeChange(_) => { - matches!(hap, Hap::ArmInstructionModeChange) - } - HapCallback::ArmV8InterProcessing(_) => matches!(hap, Hap::ArmV8InterProcessing), - } - } -} - -/// Add a callback on a particular HAP occurrence, with some user data (which should generally be -/// a raw pointer to the module object you are running) -pub fn hap_add_callback(hap: Hap, func: HapCallback, data: Option) -> Result -where - D: Into<*mut c_void>, -{ - ensure!( - func.is_callback_for(&hap), - "Callback and Hap types must match!" - ); - - let data = match data { - Some(data) => data.into(), - None => null_mut(), - }; - - let handle = - unsafe { SIM_hap_add_callback(raw_cstr(hap.to_string())?, Some(func.as_fn()), data) }; - - if handle == -1 { - bail!( - "Error adding {} callback: {}", - hap.to_string(), - last_error() - ); - } else { - Ok(handle) - } -} diff --git a/simics-api/src/safe/simulator/memory.rs b/simics-api/src/safe/simulator/memory.rs deleted file mode 100644 index 2da4e4a3..00000000 --- a/simics-api/src/safe/simulator/memory.rs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::{bail, Result}; -use simics_api_sys::{SIM_read_byte, SIM_write_byte}; - -use crate::{clear_exception, get_pending_exception, last_error, ConfObject, SimException}; - -/// Write a byte to a physical address -pub fn write_byte(physical_memory: *mut ConfObject, physical_addr: u64, byte: u8) -> Result<()> { - unsafe { SIM_write_byte(physical_memory.into(), physical_addr, byte) }; - - match get_pending_exception()? { - SimException::NoException => Ok(()), - exception => { - clear_exception()?; - bail!( - "Exception reading byte from {:#x}: {:?}({})", - physical_addr, - exception, - last_error() - ); - } - } -} - -/// Read a byte from a physical address -pub fn read_byte(physical_memory: *mut ConfObject, physical_addr: u64) -> Result { - let byte = unsafe { SIM_read_byte(physical_memory.into(), physical_addr) }; - - match get_pending_exception()? { - SimException::NoException => Ok(byte), - exception => { - clear_exception()?; - bail!( - "Exception reading byte from {:#x}: {:?}({})", - physical_addr, - exception, - last_error() - ); - } - } -} diff --git a/simics-api/src/safe/simulator/mod.rs b/simics-api/src/safe/simulator/mod.rs deleted file mode 100644 index dad6d29c..00000000 --- a/simics-api/src/safe/simulator/mod.rs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -pub mod callbacks; -pub mod control; -pub mod embed; -pub mod hap_consumer; -pub mod memory; -pub mod modules; -pub mod processor; -pub mod python; -pub mod rev_exec; -pub mod script; - -pub use callbacks::*; -pub use control::*; -pub use embed::*; -pub use hap_consumer::*; -pub use memory::*; -pub use modules::*; -pub use processor::*; -pub use python::*; -pub use rev_exec::*; -pub use script::*; diff --git a/simics-api/src/safe/simulator/modules.rs b/simics-api/src/safe/simulator/modules.rs deleted file mode 100644 index 760adc2e..00000000 --- a/simics-api/src/safe/simulator/modules.rs +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::{anyhow, bail, ensure, Error, Result}; -use raw_cstr::raw_cstr; -use std::path::Path; - -use simics_api_sys::{ - SIM_add_module_dir, SIM_get_all_failed_modules, SIM_get_all_modules, SIM_load_module, - SIM_module_list_refresh, -}; - -use crate::{ - attr_boolean, attr_integer, attr_is_list, attr_list_item, attr_list_size, attr_string, - get_pending_exception, last_error, AttrValue, SimException, -}; - -pub struct ModuleInfo { - pub name: String, - pub path: String, - pub loaded: bool, - pub version: i32, - pub user_version: String, - pub build_id: i32, - pub build_date: i32, - // TODO: Unknown data type - // classes: AttrValue?, - pub thread_safe: bool, - // TODO: Unknown data type - // components: AttrValue?, - pub user_path: bool, -} - -impl TryFrom for ModuleInfo { - type Error = Error; - fn try_from(value: AttrValue) -> Result { - ensure!( - attr_is_list(value)?, - "Could not create ModuleInfo from non-list AttrValue" - ); - Ok(Self { - name: attr_string(unsafe { attr_list_item(value, 0) }?)?, - path: attr_string(unsafe { attr_list_item(value, 1) }?)?, - loaded: attr_boolean(unsafe { attr_list_item(value, 2) }?)?, - version: attr_integer(unsafe { attr_list_item(value, 3) }?)?.try_into()?, - user_version: attr_string(unsafe { attr_list_item(value, 4) }?)?, - build_id: attr_integer(unsafe { attr_list_item(value, 5) }?)?.try_into()?, - build_date: attr_integer(unsafe { attr_list_item(value, 6) }?)?.try_into()?, - thread_safe: attr_boolean(unsafe { attr_list_item(value, 8) }?)?, - user_path: attr_boolean(unsafe { attr_list_item(value, 10) }?)?, - }) - } -} - -/// The list returned contains information about all modules that can be loaded into Simics. Each list entry is another list with module specific information. The layout of this sub-list is described below. The list may grow in future Simics version, but the currently defined fields will not change. -/// name - Module name (string). -/// path - File system path to the module (string). -/// loaded - Flag indicating that the module is already loaded (boolean). -/// version - Oldest Simics ABI version that the module was built for (integer). -/// user version - User version of the module (string). -/// build-id - Simics build-id that indicates in which Simics build this module was created (integer). -/// build-date - Build date of the module, in seconds (integer). -/// classes - Classes this module claims to implement. -/// thread-safe - If the module is thread-safe. -/// components - Components this module claims to implement. -/// user path - Module was loaded from path provided by user. -pub fn get_all_modules() -> Result> { - let modules = unsafe { SIM_get_all_modules() }; - ensure!( - attr_is_list(modules)?, - "Module list was not a list AttrValue" - ); - let mut module_infos = Vec::new(); - - for i in 0..attr_list_size(modules)? { - let module_info = unsafe { attr_list_item(modules, i) }?; - module_infos.push(ModuleInfo::try_from(module_info)?); - } - - Ok(module_infos) -} - -pub fn get_all_failed_modules() -> AttrValue { - unsafe { SIM_get_all_failed_modules() } -} - -pub fn add_module_dir

(path: P) -> Result<()> -where - P: AsRef, -{ - unsafe { SIM_add_module_dir(raw_cstr(path.as_ref().to_string_lossy())?) } - Ok(()) -} - -pub fn module_list_refresh() { - unsafe { SIM_module_list_refresh() }; -} - -pub fn load_module(module: S) -> Result<()> -where - S: AsRef, -{ - unsafe { SIM_load_module(raw_cstr(module)?) } - match get_pending_exception() { - Ok(SimException::NoException) => Ok(()), - Ok(err) => bail!("Failed to load module: {:?}: {}", err, last_error()), - Err(e) => Err(anyhow!("Error getting pending exception: {}", e)), - } -} diff --git a/simics-api/src/safe/simulator/processor.rs b/simics-api/src/safe/simulator/processor.rs deleted file mode 100644 index e86d8576..00000000 --- a/simics-api/src/safe/simulator/processor.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::ConfObject; -use simics_api_sys::{SIM_get_processor, SIM_get_processor_number}; - -/// Get the number of a particular processor -pub fn get_processor_number(cpu: *mut ConfObject) -> i32 { - unsafe { SIM_get_processor_number(cpu as *const ConfObject) } -} - -/// Get the processor from its number -pub fn get_processor(number: i32) -> *mut ConfObject { - unsafe { SIM_get_processor(number) } -} diff --git a/simics-api/src/safe/simulator/python.rs b/simics-api/src/safe/simulator/python.rs deleted file mode 100644 index 95e0b01d..00000000 --- a/simics-api/src/safe/simulator/python.rs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::path::Path; - -use crate::{clear_exception, last_error, AttrValue, SimException}; -use anyhow::{anyhow, Result}; -use raw_cstr::raw_cstr; -use simics_api_sys::{SIM_run_python, SIM_source_python, VT_call_python_module_function}; - -pub fn call_python_module_function( - module: S, - function: S, - args: *mut AttrValue, -) -> Result -where - S: AsRef, -{ - Ok(unsafe { - VT_call_python_module_function( - raw_cstr(module.as_ref())?, - raw_cstr(function.as_ref())?, - args.into(), - ) - }) -} - -pub fn source_python

(file: P) -> Result<()> -where - P: AsRef, -{ - unsafe { SIM_source_python(raw_cstr(file.as_ref().to_string_lossy())?) }; - - match clear_exception()? { - SimException::NoException => Ok(()), - _ => Err(anyhow!("Error running python script: {}", last_error())), - } -} - -pub fn run_python(line: S) -> Result<()> -where - S: AsRef, -{ - unsafe { SIM_run_python(raw_cstr(line)?) }; - - match clear_exception()? { - SimException::NoException => Ok(()), - _ => Err(anyhow!("Error running python script: {}", last_error())), - } -} diff --git a/simics-api/src/safe/simulator/rev_exec.rs b/simics-api/src/safe/simulator/rev_exec.rs deleted file mode 100644 index bf07644a..00000000 --- a/simics-api/src/safe/simulator/rev_exec.rs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Implements simulator reverse execution and micro checkpointing functions - -use anyhow::{anyhow, Error, Result}; -use num::ToPrimitive as _; -use num_derive::{FromPrimitive, ToPrimitive}; -use raw_cstr::raw_cstr; -use simics_api_sys::{ - micro_checkpoint_flags_t_Sim_MC_Automatic, micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint, - micro_checkpoint_flags_t_Sim_MC_ID_Last_States, micro_checkpoint_flags_t_Sim_MC_ID_Mask, - micro_checkpoint_flags_t_Sim_MC_ID_N_States, micro_checkpoint_flags_t_Sim_MC_ID_Tmp, - micro_checkpoint_flags_t_Sim_MC_ID_User, micro_checkpoint_flags_t_Sim_MC_Persistent, - VT_delete_micro_checkpoint, VT_restore_micro_checkpoint, VT_save_micro_checkpoint, -}; - -#[derive(FromPrimitive, ToPrimitive, Copy, Clone)] -#[repr(u32)] -pub enum MicroCheckpointFlags { - IdTemp = micro_checkpoint_flags_t_Sim_MC_ID_Tmp, - IdMask = micro_checkpoint_flags_t_Sim_MC_ID_Mask, - IdUser = micro_checkpoint_flags_t_Sim_MC_ID_User, - Automatic = micro_checkpoint_flags_t_Sim_MC_Automatic, - Persistent = micro_checkpoint_flags_t_Sim_MC_Persistent, - NStates = micro_checkpoint_flags_t_Sim_MC_ID_N_States, - Breakpoint = micro_checkpoint_flags_t_Sim_MC_ID_Breakpoint, - LastStates = micro_checkpoint_flags_t_Sim_MC_ID_Last_States, -} - -impl TryFrom for u32 { - type Error = Error; - - fn try_from(value: MicroCheckpointFlags) -> Result { - value - .to_u32() - .ok_or_else(|| anyhow!("Invalid value for MicroCheckpointFlags")) - } -} - -/// Remove a micro checkpoint -pub fn delete_micro_checkpoint(index: i32) { - unsafe { VT_delete_micro_checkpoint(index) } -} - -/// Restore a micro checkpoint, loading it as a snapshot -pub fn restore_micro_checkpoint(index: i32) { - unsafe { VT_restore_micro_checkpoint(index) } -} - -/// Save a micro checkpoint with some set of flags -pub fn save_micro_checkpoint(name: S, flags: &[MicroCheckpointFlags]) -> Result<()> -where - S: AsRef, -{ - let mut checkpoint_flags = 0; - for flag in flags { - checkpoint_flags |= *flag as u32; - } - unsafe { VT_save_micro_checkpoint(raw_cstr(name)?, checkpoint_flags) }; - Ok(()) -} diff --git a/simics-api/src/safe/simulator/script.rs b/simics-api/src/safe/simulator/script.rs deleted file mode 100644 index 10131e4c..00000000 --- a/simics-api/src/safe/simulator/script.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use raw_cstr::raw_cstr; -use simics_api_sys::SIM_run_command; - -use crate::AttrValue; - -pub fn run_command(line: S) -> Result -where - S: AsRef, -{ - Ok(unsafe { SIM_run_command(raw_cstr(line)?) }) -} diff --git a/simics-api/src/safe/simulator_interface/mod.rs b/simics-api/src/safe/simulator_interface/mod.rs deleted file mode 100644 index 66ff2745..00000000 --- a/simics-api/src/safe/simulator_interface/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 diff --git a/simics-api/src/safe/util/alloc.rs b/simics-api/src/safe/util/alloc.rs deleted file mode 100644 index 8134788b..00000000 --- a/simics-api/src/safe/util/alloc.rs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use raw_cstr::raw_cstr; -use simics_api_sys::{mm_free, mm_zalloc}; -use std::{ffi::c_void, mem::transmute}; - -#[macro_export] -/// Allocate memory with a size, of some type -macro_rules! simics_alloc { - ($typ:ty, $sz:expr) => { - $crate::alloc($sz, stringify!($typ), file!(), line!() as i32) - }; -} - -/// Allocate using the SIMICS zalloc implementation -pub fn alloc>( - size: usize, - typename: S, - filename: S, - line_number: i32, -) -> Result<*mut T> { - unsafe { - let res = mm_zalloc( - size, - size, - raw_cstr(typename)?, - raw_cstr(filename)?, - line_number, - ); - Ok(transmute(res)) - } -} - -/// Free a pointer that was allocated with [`alloc`] -pub fn free(ptr: *mut T) { - unsafe { mm_free(ptr as *mut c_void) }; -} diff --git a/simics-cli/Cargo.toml b/simics-cli/Cargo.toml deleted file mode 100644 index 6c132e9f..00000000 --- a/simics-cli/Cargo.toml +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "simics-cli" -categories.workspace = true -description = "Basic SIMICS CLI for testing purposes" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - - -[dependencies] -anyhow.workspace = true -clap = "4.3.0" -simics = { workspace = true } - -[build-dependencies] -anyhow.workspace = true -simics-api.workspace = true -simics-link.workspace = true - -[features] -"6.0.163" = ["simics/6.0.163", "simics-api/6.0.163"] -"6.0.164" = ["simics/6.0.164", "simics-api/6.0.164"] -"6.0.165" = ["simics/6.0.165", "simics-api/6.0.165"] -"6.0.166" = ["simics/6.0.166", "simics-api/6.0.166"] -"6.0.167" = ["simics/6.0.167", "simics-api/6.0.167"] -"6.0.168" = ["simics/6.0.168", "simics-api/6.0.168"] -"6.0.169" = ["simics/6.0.169", "simics-api/6.0.169"] -"6.0.170" = ["simics/6.0.170", "simics-api/6.0.170"] -"6.0.171" = ["simics/6.0.171", "simics-api/6.0.171"] -"6.0.172" = ["simics/6.0.172", "simics-api/6.0.172"] diff --git a/simics-cli/build.rs b/simics-cli/build.rs deleted file mode 100644 index 000468ee..00000000 --- a/simics-cli/build.rs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use simics_api::sys::SIMICS_VERSION; -use simics_link::link_simics_linux; - -fn main() -> Result<()> { - #[cfg(target_family = "unix")] - link_simics_linux(SIMICS_VERSION)?; - - #[cfg(not(target_family = "unix"))] - compile_error!("Non-unix-like platforms are not yet supported"); - - println!("cargo:rerun-if-changed=build.rs"); - Ok(()) -} diff --git a/simics-cli/src/bin/simics-cli.rs b/simics-cli/src/bin/simics-cli.rs deleted file mode 100644 index d7acb6ac..00000000 --- a/simics-cli/src/bin/simics-cli.rs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use clap::Parser; -use simics::simics::Simics; -use simics_cli::{Args, Command}; - -fn main() -> Result<()> { - let args = Args::parse(); - let simics_args = Args::parse_as_init_args()?; - - Simics::try_init(simics_args)?; - - for command in args.command { - match command { - Command::Command { command } => Simics::command(command)?, - Command::Python { file } => Simics::python(file)?, - Command::Config { config } => Simics::config(config)?, - }; - } - - if args.interactive { - Simics::interactive(); - } - - Ok(()) -} diff --git a/simics-cli/src/lib.rs b/simics-cli/src/lib.rs deleted file mode 100644 index b58277e7..00000000 --- a/simics-cli/src/lib.rs +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![deny(clippy::unwrap_used)] -#![forbid(unsafe_code)] - -use anyhow::{anyhow, Error, Result}; -use clap::{Parser, ValueEnum}; -use simics::api::{DeprecationLevel, GuiMode, InitArg, InitArgs}; -use std::{path::PathBuf, str::FromStr}; - -#[derive(Clone, Copy, Debug, ValueEnum)] -pub enum GuiModeArg { - None, - Mixed, - Only, - Default, -} - -impl From for GuiMode { - fn from(value: GuiModeArg) -> Self { - match value { - GuiModeArg::None => GuiMode::None, - GuiModeArg::Mixed => GuiMode::Mixed, - GuiModeArg::Only => GuiMode::Only, - GuiModeArg::Default => GuiMode::Default, - } - } -} - -impl ToString for GuiModeArg { - fn to_string(&self) -> String { - let mode: GuiMode = (*self).into(); - mode.to_string() - } -} - -#[derive(Parser)] -pub struct Args { - #[arg(long)] - batch_mode: bool, - #[arg(long)] - deprecation_level: Option, - #[arg(long)] - expire_time: Option, - #[arg(long, value_enum, default_value_t = GuiModeArg::None)] - gui_mode: GuiModeArg, - #[arg(long)] - fail_on_warnings: bool, - #[arg(long)] - license_file: Option, - #[arg(long, default_value_t = true)] - log_enable: bool, - #[arg(long)] - log_file: Option, - #[arg(long)] - no_settings: bool, - #[arg(long, default_value_t = true)] - no_windows: bool, - #[arg(long)] - python_verbose: bool, - #[arg(long)] - project: Option, - #[arg(long)] - quiet: bool, - #[arg(long)] - script_trace: bool, - #[arg(long)] - verbose: bool, - #[arg(long)] - pub interactive: bool, - /// Command or file of the form `'TYPE=VALUE'` where `TYPE` is one of - /// `PYTHON`, `COMMAND`, or `CONFIG` and `VALUE` is a path to a file when - /// `TYPE` is `PYTHON` or `CONFIG` and a string to run as a command otherwise - #[arg(long)] - pub command: Vec, -} - -impl Args { - pub fn parse_as_init_args() -> Result { - let args = Args::parse(); - let mut simics_args = InitArgs::default(); - - if args.batch_mode { - simics_args = simics_args.arg(InitArg::batch_mode(true)?); - } - - if let Some(level) = args.deprecation_level { - simics_args = simics_args.arg(InitArg::deprecation_level(level)?); - } - - if let Some(expire_time) = args.expire_time { - simics_args = simics_args.arg(InitArg::expire_time(expire_time)?); - } - - simics_args = simics_args.arg(InitArg::gui_mode(args.gui_mode.to_string())?); - - if args.fail_on_warnings { - simics_args = simics_args.arg(InitArg::fail_on_warnings(true)?); - } - - if let Some(license_file) = args.license_file { - let license_file = license_file.canonicalize()?; - let license_file_str = license_file.to_string_lossy().to_string(); - simics_args = simics_args.arg(InitArg::license_file(license_file_str)?); - } - - if args.log_enable { - simics_args = simics_args.arg(InitArg::log_enable(true)?); - } - - if let Some(log_file) = args.log_file { - let log_file = log_file.canonicalize()?; - let log_file_str = log_file.to_string_lossy().to_string(); - simics_args = simics_args.arg(InitArg::log_file(log_file_str)?); - } - - if args.no_settings { - simics_args = simics_args.arg(InitArg::no_settings(true)?); - } - - if args.no_windows { - simics_args = simics_args.arg(InitArg::no_windows(true)?); - } - - if args.python_verbose { - simics_args = simics_args.arg(InitArg::python_verbose(true)?); - } - - if let Some(project) = args.project { - let project = project.canonicalize()?; - let project_str = project.to_string_lossy().to_string(); - simics_args = simics_args.arg(InitArg::project(project_str)?); - } - - if args.quiet { - simics_args = simics_args.arg(InitArg::quiet(true)?); - } - - if args.script_trace { - simics_args = simics_args.arg(InitArg::script_trace(true)?); - } - - if args.verbose { - simics_args = simics_args.arg(InitArg::verbose(true)?); - } - - Ok(simics_args) - } -} - -#[derive(Clone, Debug)] -pub enum Command { - Command { command: String }, - Python { file: PathBuf }, - Config { config: PathBuf }, -} - -impl FromStr for Command { - type Err = Error; - - fn from_str(s: &str) -> std::result::Result { - let parts = s.split(':').collect::>(); - match (parts.first(), parts.get(1)) { - (Some(&"PYTHON"), Some(value)) => Ok(Command::Python { - file: PathBuf::from(value) - .canonicalize() - .map_err(|e| anyhow!("File {} not found: {}", value, e))?, - }), - (Some(&"COMMAND"), Some(value)) => Ok(Command::Command { - command: value.to_string(), - }), - (Some(&"CONFIG"), Some(value)) => Ok(Command::Config { - config: PathBuf::from(value) - .canonicalize() - .map_err(|e| anyhow!("File {} not found: {}", value, e))?, - }), - _ => Err(anyhow!("Invalid command {}", s)), - } - } -} diff --git a/simics-fuzz/Cargo.toml b/simics-fuzz/Cargo.toml deleted file mode 100644 index 3867ca68..00000000 --- a/simics-fuzz/Cargo.toml +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "simics-fuzz" -categories.workspace = true -description = "Target Software Fuzzer for SIMICS Command-Line interface" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true -default-run = "simics-fuzz" - - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow.workspace = true -artifact-dependency.workspace = true -clap = { version = "4.3.0", features = ["derive", "string", "wrap_help"] } -tsffs_module.workspace = true -derive_builder = "0.12.0" -libafl.workspace = true -num = "0.4.1" -num-derive = "0.4.0" -num-traits = "0.2.15" -serde = { workspace = true, features = ["derive"] } -simics.workspace = true -strum = { version = "0.25.0", features = ["strum_macros", "derive"] } -strum_macros = "0.25.2" -tracing = "0.1.37" -tracing-subscriber = { version = "0.3.17", features = [ - "ansi", - "json", - "fmt", - "std", - "env-filter", -] } -version-tools.workspace = true -versions = "5.0.0" -libafl_bolts.workspace = true -goblin = "0.7.1" - -[build-dependencies] -anyhow.workspace = true -simics-api.workspace = true -simics-link.workspace = true - -[features] -"6.0.163" = ["simics/6.0.163", "simics-api/6.0.163", "tsffs_module/6.0.163"] -"6.0.164" = ["simics/6.0.164", "simics-api/6.0.164", "tsffs_module/6.0.164"] -"6.0.165" = ["simics/6.0.165", "simics-api/6.0.165", "tsffs_module/6.0.165"] -"6.0.166" = ["simics/6.0.166", "simics-api/6.0.166", "tsffs_module/6.0.166"] -"6.0.167" = ["simics/6.0.167", "simics-api/6.0.167", "tsffs_module/6.0.167"] -"6.0.168" = ["simics/6.0.168", "simics-api/6.0.168", "tsffs_module/6.0.168"] -"6.0.169" = ["simics/6.0.169", "simics-api/6.0.169", "tsffs_module/6.0.169"] -"6.0.170" = ["simics/6.0.170", "simics-api/6.0.170", "tsffs_module/6.0.170"] -"6.0.171" = ["simics/6.0.171", "simics-api/6.0.171", "tsffs_module/6.0.171"] -"6.0.172" = ["simics/6.0.172", "simics-api/6.0.172", "tsffs_module/6.0.172"] \ No newline at end of file diff --git a/simics-fuzz/build.rs b/simics-fuzz/build.rs deleted file mode 100644 index a9e3c423..00000000 --- a/simics-fuzz/build.rs +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use simics_api::sys::SIMICS_VERSION; -use simics_link::link_simics_linux; - -fn main() -> Result<()> { - #[cfg(target_family = "unix")] - link_simics_linux(SIMICS_VERSION)?; - - #[cfg(not(target_family = "unix"))] - compile_error!("Non-unix-like platforms are not yet supported"); - - println!("cargo:rerun-if-changed=build.rs"); - - Ok(()) -} diff --git a/simics-fuzz/src/args/command.rs b/simics-fuzz/src/args/command.rs deleted file mode 100644 index 7411158b..00000000 --- a/simics-fuzz/src/args/command.rs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::{anyhow, Error, Result}; -use simics::project::SimicsPath; -use std::str::FromStr; - -#[derive(Clone, Debug)] -pub enum Command { - Command { command: String }, - Python { file: SimicsPath }, - Config { config: SimicsPath }, -} - -impl FromStr for Command { - type Err = Error; - - fn from_str(s: &str) -> Result { - let parts = s.split(':').collect::>(); - match (parts.first(), parts.get(1)) { - (Some(&"PYTHON"), Some(value)) => Ok(Command::Python { - file: value.parse()?, - }), - (Some(&"COMMAND"), Some(value)) => Ok(Command::Command { - command: value.to_string(), - }), - (Some(&"CONFIG"), Some(value)) => Ok(Command::Config { - config: value.parse()?, - }), - _ => Err(anyhow!("Invalid command {}", s)), - } - } -} diff --git a/simics-fuzz/src/args/mod.rs b/simics-fuzz/src/args/mod.rs deleted file mode 100644 index b42fdb67..00000000 --- a/simics-fuzz/src/args/mod.rs +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -pub mod command; -pub mod project; - -use clap::Parser; -use command::Command; -use project::{DirectoryArg, FileArg, PackageArg, PathSymlinkArg}; -use std::path::PathBuf; -use tracing_subscriber::filter::LevelFilter; -use tsffs_module::config::TraceMode; - -#[derive(Debug, Parser)] -#[command(author, version, about)] -pub struct Args { - #[arg(short = 'p', long)] - /// Optional SIMICS project path to use for fuzzing - /// - /// If -p/--project is specified and the path already exists, the existing project - /// there will be used. If -p/--project is specified and the path does not exist, a - /// directory will be created at the path and a new project will be initialized in - /// it. - /// - /// If -p/--project is NOT specified and the current working directory is a SIMICS - /// project, the SIMICS project in the current working directory will be used. If - /// -p/--project is NOT specified, and the current working directory is not a SIMICS - /// project, a new temporary directory will be created and a new project will be - /// initialized in it. In this case, --no-keep-temp-projects may be used to - /// automatically clean up the temporary project. - pub project: Option, - #[arg(short = 'N', long, default_value_t = false)] - /// Delete temporary SIMICS projects on exit - /// - /// If specified, temporary projects will be deleted from disk after the fuzzer - /// exists. This option only applies if -p/--project is not specified and the - /// current working directory is not a SIMICS project causing a temporary SIMICS - /// project to be created. By default, temporary projects are kept for debugging and - /// triage purposes, but keeping them may not be desired in testing or CI scenarios. - pub no_keep_temp_projects: bool, - #[arg(short = 'i', long)] - /// Optional input corpus path - /// - /// If not provided, a random input corpus of printable characters will be - /// generated. This is very inefficient and not recommended for real fuzzing, but is - /// useful for testing and demonstration purposes. - pub input: Option, - #[arg(short = 'o', long)] - /// Optional output solution/objective path - /// - /// Solutions (or objectives) will be stored in this directory as they are found by - /// the fuzzer. If not provided, a directory 'solutions' will be created in the - /// current working directory. The given path may be inside the project, if an - /// existing project is used. - pub solutions: Option, - #[arg(short = 'c', long)] - /// Optional in-progress corpus path - /// - /// The working corpus will be stored in this directory as new interesting inputs - /// are found by the fuzzer. If not provided, a directory 'corpus' will be created - /// in the current working directory. The given path may be inside the project, if - /// an existing project is used. - pub corpus: Option, - #[arg(short = 'l', long, default_value_t = LevelFilter::ERROR)] - /// Output log level - /// - /// Logging level may be set to ERROR, WARN, INFO, DEBUG, or TRACE - pub log_level: LevelFilter, - #[arg(short = 'T', long, default_value_t = TraceMode::HitCount)] - /// Branch tracing mode - /// - /// Specifies whether 'hit_count' or 'once' branch tracing mode should be used. In 'hit_count' - /// mode, every execution of every instruction is traced, meaning slower but more accurate - /// fuzzer executions. 'once' mode traces only the first execution of each instruction, which - /// is much faster but less precise, particularly when fuzzing code with loops. - pub trace_mode: TraceMode, - #[arg(short = 'S', long, default_value_t = 3.0)] - /// Simulator-time timeout, in seconds, for timed out test cases - /// - /// If this timeout is exceeded in simulated time for a single run, the input - /// testcase will be treated as causing a timeout in the target software. For most - /// purposes, 3-5 seconds is ideal, but for very complex target software a higher - /// timeout may be desired. Keep in mind that in many cases virtual time runs - /// *faster* than real wall-clock time, so test cases may report as timed out even - /// if they do not execute for the entire timeout in real-world wall clock time. - pub timeout: f64, - #[arg(short = 'E', long, default_value_t = 60)] - /// Executor timeout, in seconds, for stuck executor detection - /// - /// If this timeout is exceeded in real-world wall clock time, the executor will be treated as - /// stuck and will be restarted. This can happen in some rare cases such as invalid executor - /// state, uncaught SIMICS exception, memory leak in SIMICS or the running model(s), - /// and so forth. Some of these conditions are recoverable with a restart of the - /// executor, which will re-start the SIMICS instance from scratch. - /// - /// Some targets require significant time to start up, in which case this value may need to be - /// increased. For example, modern server platforms require many minutes to boot into Linux on - /// the simulated platform, so this timeout must be long enough to allow the model to start up - /// and run the initial start harness. - pub executor_timeout: u64, - #[arg(short = 'C', long, default_value_t = 1)] - /// Number of fuzzer cores to run - /// - /// For each fuzzer core, a new fuzzer client will start with its own instance of SIMICS and - /// its own fuzzer. These fuzzers will synchronize with each other and use the same corpus - /// to parallelize and speed up fuzzing. The number of fuzzers should be no more than the - /// number of physical CPU cores on the host machine, as each client process spawns multiple - /// threads. - pub cores: usize, - #[arg(short = 't', long)] - /// Enable the TUI - /// - /// The TUI provides less visibility into fuzzing state, but is familiar to most - /// users. Enabling the TUI implicitly sets the log level to ERROR. - pub tui: bool, - #[arg(short = 'O', long, default_value = PathBuf::from("/dev/null").into_os_string())] - /// Optional file to send stdout (logs and output) to when using TUI - /// - /// When running the TUI, logs cannot be printed but may be useful. This option - /// allows you to send all stdout output (logging and all other output) to a file - /// while using the TUI, for example to view the log with tail -F - /// while viewing the TUI output in a separate terminal. - pub tui_stdout_file: PathBuf, - #[arg(short = 'D', long)] - /// An optional token file in 'id = "token data"' format - /// - /// A token file can be provided with pre-extracted tokens from a target, for example by using - /// the LLVM dict2file pass. This token file will be leveraged for token mutations during - /// fuzzing. If both --tokens-file and --executable are passed, both will be used. - pub tokens_file: Option, - #[arg(short = 'e', long)] - /// An optional path to the executable file for the target software - /// - /// When provided, the path to the executable file will be used for several optional - /// analyses that improve fuzzing, including token extraction, function call - /// analysis for Redqueen's function call tracing mode, and more. These techniques - /// will be used automatically when they are possible and the executable path is - /// given. - pub executable: Option, - #[arg(short = 'P', long)] - /// Add a package to the working project - /// - /// This option can be specified multiple times. This has no effect unless a new - /// project is being Packages are specified in the form NUMBER:VERSION_CONSTRAINT - /// (e.g. 1000:6.0.167, 1000:>=6.0.163) - pub package: Vec, - #[arg(short = 'd', long)] - /// Copy a directory into the project - /// - /// Recursively (as in cp -a) copies a directory into the SIMICS project in use. - /// This argument is specified in the form SRC_PATH:DST_PATH. For example, - /// --directory '/your/package/subdirectory:%simics%/subdirectory/', where - /// '/your/package/subdirectory' will be copied to the 'subdirectory' subdirectory - /// of the SIMICS project in use. If intermediate subdirectories do not yet exist, - /// they will be created. This argument can be specified multiple times. - pub directory: Vec, - #[arg(short = 'f', long)] - /// Copy a file into the project - /// - /// Recursively (as in cp -a) copies a file into the SIMICS project in use. This - /// argument is specified in the form SRC_PATH:DST_PATH. For example, --file - /// '/your/package/file:%simics%/subdirectory/thefile', where '/your/package/file' - /// will be copied to the 'subdirectory' subdirectory of the SIMICS project in use. - /// If intermediate subdirectories do not yet exist, they will be created. This - /// argument can be specified multiple times. - pub file: Vec, - #[arg(short = 's', long)] - /// Symbolically link a file or directory into the project - /// - /// Symbolically a file or directory into the SIMICS project in use. This argument - /// is specified in the form SRC_PATH:DST_PATH. For example, --path-symlink - /// '/your/package/file:%simics%/subdirectory/thefile', where '/your/package/file' - /// will be linked into to the 'subdirectory' subdirectory of the SIMICS project in - /// use. If intermediate subdirectories do not yet exist, they will be created. - pub path_symlink: Vec, - #[arg(short = 'x', long)] - /// Python script, command, or startup configuration to execute on startup - /// - /// Command or file of the form `'TYPE:VALUE'` where `TYPE` is one of `PYTHON`, - /// `COMMAND`, or `CONFIG` and `VALUE` is a path to a file when `TYPE` is `PYTHON` - /// or `CONFIG` and a string to run as a command otherwise. Paths prefixed with - /// `%simics%` will be resolved relative to the `project` directory. Most likely, - /// you want to use this argument to specify the entrypoint to your SIMICS - /// configuration. For example, if your SIMICS configuration is specified using a - /// file `scripts/app.yml` in your SIMICS project that specifies a `script:`, you - /// should use `--command CONFIG:%simics%/scripts/app.yml` - pub command: Vec, - #[arg(short = 'r', long)] - /// Enter repro mode and reproduce a run of a given solution on the target software - /// - /// Reproduce a solution on a target. When specified, SIMICS will be run with the - /// module installed, and you will be dropped into the SIMICS REPL at the crash - /// location with a reverse execution recording from the start harness. Typically, - /// the same command used to run the fuzzer should be used to run repro mode, with - /// the addition of this flag. - /// - /// For example, --repro 'solutions/008e7aaa8871b4a8' after finding the solution with the - /// fuzzer will drop into a SIMICS REPL session at the point of the fault. See the - /// documentation for details. - pub repro: Option, - #[arg(short = 'g', long, default_value_t = false)] - /// Enable the SIMICS GUI - /// - /// Enabling the SIMICS GUI during fuzzing is useful for debugging and demonstration - /// purposes, but is strongly discouraged for real testing and reduces the speed of - /// the fuzzer significantly. The SIMICS GUI may be also useful for configuring - /// startup scripts, particularly when pseudo-graphical GUI interaction is needed - /// such as virtual keyboard inputs. - pub enable_simics_gui: bool, - #[arg(short = 'I', long)] - /// Number of iterations to fuzz for, should only be used for testing or demonstration - /// - /// Number of iterations to fuzz for. This is the number of times all fuzzing stages - /// will be executed. If not specified, the fuzzer will run infinitely. This - /// argument should not be used for CI fuzzing, instead run the fuzzer with the - /// 'timeout' shell command to run for a specific amount of time. - pub iterations: Option, - #[arg(long, default_value_t = false)] - /// Disable grimoire - /// - /// Grimoire is an extension to Redqueen that enables structured input fuzzing. It - /// is enabled by default and requires no extra configuration to use. It should only - /// be disabled if a particular target behaves poorly when Grimoire is enabled (for - /// example, infinite solving or excessive solving time). Disabling Redqueen - /// implicitly disables Grimoire. - pub disable_grimoire: bool, - #[arg(long, default_value_t = false)] - /// Disable redqueen - /// - /// Redqueen implements Input-to-State (I2S) fuzzing methods for lightweight - /// taint-like analysis for effective input mutation by logging comparison values - /// during target software execution. It is enabled by default and requires no extra - /// configuration to use, but for some targets may slow down fuzzing. It should only - /// be disabled if a particular target behaves poorly when Redqueen is enabled (for - /// example, infinite solving or excessive solving time). - pub disable_redqueen: bool, -} diff --git a/simics-fuzz/src/args/project.rs b/simics-fuzz/src/args/project.rs deleted file mode 100644 index 323adf68..00000000 --- a/simics-fuzz/src/args/project.rs +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::{anyhow, bail, Error, Result}; -use simics::{ - module::Module, - package::{Package, PackageBuilder, PackageNumber}, - project::SimicsPath, -}; -use std::{path::PathBuf, str::FromStr}; -use version_tools::VersionConstraint; - -#[derive(Debug, Clone)] -pub struct PackageArg { - pub package: Package, -} - -impl FromStr for PackageArg { - type Err = Error; - - fn from_str(s: &str) -> Result { - let parts = s.split(':').collect::>(); - - match (parts.first(), parts.get(1)) { - (Some(number), Some(version)) => { - let package_number: PackageNumber = number.parse()?; - let version: VersionConstraint = version.parse()?; - Ok(Self { - package: PackageBuilder::default() - .package_number(package_number) - .version(version) - .build()?, - }) - } - _ => Err(anyhow!( - "Couldn't parse package number and version from {}", - s - )), - } - } -} - -#[derive(Debug, Clone)] -pub struct ModuleArg { - pub module: Module, -} - -impl FromStr for ModuleArg { - type Err = Error; - - fn from_str(_s: &str) -> Result { - todo!("Modules are not implemented, but the TSFFS module is automatically loaded"); - } -} - -#[derive(Debug, Clone)] -pub struct DirectoryArg { - pub src: PathBuf, - pub dst: SimicsPath, -} - -impl FromStr for DirectoryArg { - type Err = Error; - - fn from_str(s: &str) -> Result { - let parts = s.split(':').collect::>(); - match (parts.first(), parts.get(1)) { - (Some(src), Some(dst)) => Ok(Self { - src: PathBuf::from(src), - dst: dst.parse()?, - }), - _ => bail!("Directory argument {} not of the form 'src:dst'", s), - } - } -} - -#[derive(Debug, Clone)] -pub struct FileArg { - pub src: PathBuf, - pub dst: SimicsPath, -} - -impl FromStr for FileArg { - type Err = Error; - - fn from_str(s: &str) -> Result { - let parts = s.split(':').collect::>(); - match (parts.first(), parts.get(1)) { - (Some(src), Some(dst)) => Ok(Self { - src: PathBuf::from(src), - dst: dst.parse()?, - }), - _ => bail!("File argument {} not of the form 'src:dst'", s), - } - } -} - -#[derive(Debug, Clone)] -pub struct PathSymlinkArg { - pub src: PathBuf, - pub dst: SimicsPath, -} - -impl FromStr for PathSymlinkArg { - type Err = Error; - - fn from_str(s: &str) -> Result { - let parts = s.split(':').collect::>(); - match (parts.first(), parts.get(1)) { - (Some(src), Some(dst)) => Ok(Self { - src: PathBuf::from(src), - dst: dst.parse()?, - }), - _ => bail!("Symlink argument {} not of the form 'src:dst'", s), - } - } -} diff --git a/simics-fuzz/src/bin/simics-fuzz.rs b/simics-fuzz/src/bin/simics-fuzz.rs deleted file mode 100644 index 7a3f76e2..00000000 --- a/simics-fuzz/src/bin/simics-fuzz.rs +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use clap::Parser; -use simics_fuzz::{args::Args, fuzzer::SimicsFuzzer}; - -pub fn main() -> Result<()> { - let args = Args::parse(); - SimicsFuzzer::cli_main(args) -} diff --git a/simics-fuzz/src/fuzzer/mod.rs b/simics-fuzz/src/fuzzer/mod.rs deleted file mode 100644 index 1ff94668..00000000 --- a/simics-fuzz/src/fuzzer/mod.rs +++ /dev/null @@ -1,873 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::{ - args::{command::Command, Args}, - modules::tsffs::{ModuleInterface, TSFFS_MODULE_CRATE_NAME, TSFFS_WORKSPACE_PATH}, - tokenize::tokenize_executable, -}; -use anyhow::{anyhow, bail, Error, Result}; -use artifact_dependency::{ArtifactDependencyBuilder, CrateType}; -use derive_builder::Builder; -use libafl::{ - feedback_and_fast, feedback_or, feedback_or_fast, - prelude::{ - havoc_mutations, - ondisk::OnDiskMetadataFormat, - tokens_mutations, - tui::{ui::TuiUI, TuiMonitor}, - AFLppCmpMap, AFLppCmpObserver, AFLppRedQueen, BytesInput, CachedOnDiskCorpus, Corpus, - CorpusId, CrashFeedback, EventConfig, EventRestarter, ExitKind, HasTargetBytes, - HitcountsMapObserver, I2SRandReplace, InProcessExecutor, Launcher, - LlmpRestartingEventManager, MaxMapFeedback, MultiMonitor, OnDiskCorpus, RandBytesGenerator, - StdCmpValuesObserver, StdMOptMutator, StdMapObserver, StdScheduledMutator, TimeFeedback, - TimeObserver, TimeoutExecutor, Tokens, - }, - schedulers::{ - powersched::PowerSchedule, IndexesLenTimeMinimizerScheduler, StdWeightedScheduler, - }, - stages::{ - mutational::MultiMutationalStage, tracing::AFLppCmplogTracingStage, CalibrationStage, - ColorizationStage, DumpToDiskStage, GeneralizationStage, IfStage, StdMutationalStage, - StdPowerMutationalStage, SyncFromDiskStage, TracingStage, - }, - state::{HasCorpus, HasMetadata, StdState}, - Fuzzer, StdFuzzer, -}; -use libafl_bolts::{ - bolts_prelude::{ShMemProvider, StdRand, StdShMemProvider}, - core_affinity::Cores, - current_nanos, - prelude::OwnedMutSlice, - tuples::{tuple_list, Merge}, - AsMutSlice, AsSlice, ErrorBacktrace, -}; -use simics::{ - api::{ - alloc_attr_list, create_object, get_class, get_interface, load_module, - make_attr_data_adopt, sys::SIMICS_VERSION, DeprecationLevel, GuiMode, InitArg, InitArgs, - Interface, - }, - module::ModuleBuilder, - project::{Project, ProjectBuilder}, - simics::Simics, -}; -use std::{ - alloc::{alloc_zeroed, Layout}, - cell::RefCell, - fs::read, - io::stdout, - net::TcpListener, - path::PathBuf, - sync::mpsc::{channel, Receiver, Sender}, - thread::{spawn, JoinHandle}, - time::Duration, -}; -use tracing::{debug, error, info, metadata::LevelFilter}; -use tracing::{trace, Level}; -use tracing_subscriber::{filter::filter_fn, fmt, prelude::*, registry, Layer}; -use tsffs_module::{ - client::Client, - config::{InputConfigBuilder, RunConfig, TraceMode}, - messages::{client::ClientMessage, module::ModuleMessage}, - stops::StopReason, - traits::ThreadClient, -}; - -const INITIAL_INPUTS: usize = 16; - -#[derive(Builder)] -#[builder( - pattern = "owned", - build_fn(validate = "Self::validate", error = "Error") -)] -pub struct SimicsFuzzer { - project: Project, - #[builder(setter(into), default)] - input: Option, - #[builder(setter(custom), default)] - corpus: PathBuf, - #[builder(setter(custom), default)] - solutions: PathBuf, - #[builder(setter(into), default)] - tui: bool, - #[builder(default)] - _shrink: bool, - #[builder(default)] - _dedup: bool, - #[builder(default)] - _grimoire: bool, - #[builder(default)] - redqueen: bool, - #[builder(default)] - tokens_file: Option, - #[builder(default)] - executable: Option, - timeout: f64, - executor_timeout: u64, - cores: Cores, - command: Vec, - log_level: LevelFilter, - trace_mode: TraceMode, - #[builder(default)] - simics_gui: bool, - #[builder(setter(into), default)] - iterations: Option, - #[builder(setter(into))] - tui_stdout_file: PathBuf, - #[builder(default)] - repro: Option, -} - -impl SimicsFuzzerBuilder { - pub fn corpus(mut self, value: Option) -> Self { - self.corpus = Some(value.unwrap_or(PathBuf::from(SimicsFuzzer::DEFAULT_CORPUS_DIRECTORY))); - self - } - - pub fn solutions(mut self, value: Option) -> Self { - self.solutions = - Some(value.unwrap_or(PathBuf::from(SimicsFuzzer::DEFAULT_SOLUTIONS_DIRECTORY))); - self - } - - fn validate(&self) -> Result<()> { - if self.simics_gui.as_ref().is_some_and(|g| *g) - && self.cores.as_ref().is_some_and(|c| c.ids.len() > 1) - { - bail!("Cannot enable GUI with more than one fuzzer core!"); - } - Ok(()) - } -} - -impl SimicsFuzzer { - pub const NAME: &'static str = "Fuzzer"; - pub const MAP_SIZE: usize = 128 * 1024; - pub const CACHE_LEN: usize = 4096; - pub const DEFAULT_CORPUS_DIRECTORY: &'static str = "corpus"; - pub const DEFAULT_SOLUTIONS_DIRECTORY: &'static str = "solutions"; - - pub fn cli_main(args: Args) -> Result<()> { - let reg = registry().with({ - fmt::layer() - .compact() - .with_thread_ids(true) - .with_thread_names(true) - .with_writer(stdout) - .with_filter(args.log_level) - .with_filter(filter_fn(|metadata| { - // LLMP absolutely spams the log when tracing - !(metadata.target() == "libafl_bolts::llmp" - && matches!(metadata.level(), &Level::TRACE)) - })) - }); - reg.try_init() - .map_err(|e| { - error!("Could not install tracing subscriber: {}", e); - e - }) - .ok(); - - trace!("Setting up project with args: {:?}", args); - - let mut builder: ProjectBuilder = if let Some(project_path) = args.project { - if let Ok(project) = Project::try_from(project_path.clone()) { - info!("Setting up from existing project"); - project.into() - } else { - info!("Setting up new project"); - // TODO: Merge with else branch, they are practically the same code. - let mut builder = ProjectBuilder::default(); - - builder = builder.path(project_path); - builder - } - } else if let Ok(project) = Project::try_from(PathBuf::from(".")) { - info!("Setting up new project in current directory"); - project.into() - } else { - info!("Setting up new project in default location"); - ProjectBuilder::default() - }; - - for p in args.package { - builder = builder.package(p.package); - } - - for d in args.directory { - builder = builder.directory((d.src, d.dst)); - } - - for f in args.file { - builder = builder.file((f.src, f.dst)); - } - - for s in args.path_symlink { - builder = builder.path_symlink((s.src, s.dst)); - } - - let project = builder - .module( - ModuleBuilder::default() - .artifact( - ArtifactDependencyBuilder::default() - .crate_name(TSFFS_MODULE_CRATE_NAME) - .workspace_root(PathBuf::from(TSFFS_WORKSPACE_PATH)) - .build_missing(true) - .artifact_type(CrateType::CDynamicLibrary) - .feature(SIMICS_VERSION) - .target_name("simics-fuzz") - .build()? - .build()?, - ) - .build()?, - ) - .build()? - .setup()?; - - SimicsFuzzerBuilder::default() - .project(project) - .input(args.input) - .corpus(args.corpus) - .solutions(args.solutions) - .tui(args.tui) - ._grimoire(!args.disable_grimoire) - .redqueen(!args.disable_redqueen) - .tokens_file(args.tokens_file) - .executable(args.executable) - .cores(Cores::from((0..args.cores).collect::>())) - .command(args.command) - .timeout(args.timeout) - .executor_timeout(args.executor_timeout) - .log_level(args.log_level) - .trace_mode(args.trace_mode) - .simics_gui(args.enable_simics_gui) - .iterations(args.iterations) - .tui_stdout_file(args.tui_stdout_file) - .repro(args.repro) - .build()? - .launch()?; - - Ok(()) - } - - pub fn simics( - &self, - tx: Sender, - rx: Receiver, - ) -> JoinHandle> { - let path = self.project.path.path.clone(); - - info!( - "Starting SIMICS project at {}", - self.project.path.path.display() - ); - - let command = self.command.clone(); - let simics_gui = self.simics_gui; - - spawn(move || -> Result<()> { - // TODO: Take these args from CLI, we should let users override anything including GUI - // mode if they really want to - let mut simics_args = InitArgs::default() - .arg(InitArg::deprecation_level(DeprecationLevel::NoWarnings)?) - .arg(InitArg::fail_on_warnings(false)?); - - if simics_gui { - debug!("Enabling SIMICS GUI"); - simics_args = simics_args.arg(InitArg::gui_mode(GuiMode::Default)?) - } else { - // By default, don't enable the GUI - simics_args = simics_args - .arg(InitArg::batch_mode(true)?) - .arg(InitArg::gui_mode(GuiMode::None)?) - // TODO: Maybe disable this if we can output logs through tracing? - .arg(InitArg::no_windows(true)?); - } - - simics_args = simics_args.arg(InitArg::project(path.to_string_lossy().to_string())?); - - Simics::try_init(simics_args)?; - - // Doesn't matter if the script has a `@SIM_load_module` in it, as long as it isn't - // asserting that it returns not-None - load_module(TSFFS_MODULE_CRATE_NAME)?; - - info!("Loaded SIMICS module"); - - let tsffs = create_object( - get_class(TSFFS_MODULE_CRATE_NAME)?, - TSFFS_MODULE_CRATE_NAME, - alloc_attr_list(0), - )?; - - let tsffs_interface = get_interface::( - tsffs, - Interface::Other(TSFFS_MODULE_CRATE_NAME.to_string()), - )?; - - let tx = Box::new(make_attr_data_adopt(tx)?); - let rx = Box::new(make_attr_data_adopt(rx)?); - let tx_raw = Box::into_raw(tx); - let rx_raw = Box::into_raw(rx); - - debug_assert!( - std::mem::size_of_val(&tx_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), - "Pointer is not convertible to *mut c_void" - ); - - debug_assert!( - std::mem::size_of_val(&rx_raw) == std::mem::size_of::<*mut std::ffi::c_void>(), - "Pointer is not convertible to *mut c_void" - ); - - info!("Setting up channels"); - - (unsafe { *tsffs_interface }.add_channels)(tsffs, tx_raw, rx_raw); - - info!("Set channel for object"); - - command.iter().try_for_each(|c| match c { - Command::Command { command } => Simics::command(command), - Command::Python { file } => Simics::python(file.canonicalize(&path)?), - Command::Config { config } => Simics::config(config.canonicalize(&path)?), - })?; - - info!("Finished running provided commands"); - - // If the command we just ran includes `@SIM_main_loop`, the below code will be unreachable, but that is OK. The callbacks will eventually call `@SIM_quit` for us - // and this will never be called. If the command doesn't include, `@SIM_main_loop`, then we need to enter it now. - - Simics::run(); - }) - } - - pub fn repro(&mut self) -> Result<()> { - let mut afl_cmp_map: Box = unsafe { - let layout = Layout::new::(); - let ptr = alloc_zeroed(layout) as *mut AFLppCmpMap; - - Box::from_raw(ptr) - }; - let mut coverage_map = OwnedMutSlice::from(vec![0; SimicsFuzzer::MAP_SIZE]); - - let config = InputConfigBuilder::default() - .coverage_map(( - coverage_map.as_mut_slice().as_mut_ptr(), - coverage_map.as_slice().len(), - )) - .cmp_map(&mut *afl_cmp_map) - .trace_mode(self.trace_mode) - .timeout(self.timeout) - .log_level(self.log_level) - .repro(true) - .build() - .map_err(|e| { - error!("Error building input configuration: {}", e); - libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()) - })?; - - let (tx, orx) = channel::(); - let (otx, rx) = channel::(); - - let _simics = self.simics(otx, orx); - let mut client = Client::new(tx, rx); - - let _output_config = client - .initialize(config) - .map_err(|e| libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()))?; - - client - .reset() - .map_err(|e| libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()))?; - - let run_input = read( - self.repro - .as_ref() - .ok_or_else(|| anyhow!("Repro file disappeared"))?, - )?; - - client.run(run_input, RunConfig::default())?; - - Ok(()) - } - - pub fn launch(&mut self) -> Result<()> { - if self.repro.is_some() { - return self.repro(); - } - - let shmem_provider = StdShMemProvider::new()?; - - let broker_port = TcpListener::bind("127.0.0.1:0")?.local_addr()?.port(); - - let mut run_client = |state: Option<_>, - mut mgr: LlmpRestartingEventManager<_, _>, - cpu_id| - -> Result<(), libafl::Error> { - debug!("Running on CPU {:?}", cpu_id); - let afl_cmp_map_ptr = unsafe { - let layout = Layout::new::(); - alloc_zeroed(layout) as *mut AFLppCmpMap - }; - - let mut afl_cmp_map: Box = unsafe { Box::from_raw(afl_cmp_map_ptr) }; - let mut coverage_map = OwnedMutSlice::from(vec![0; SimicsFuzzer::MAP_SIZE]); - - let config = InputConfigBuilder::default() - .coverage_map(( - coverage_map.as_mut_slice().as_mut_ptr(), - coverage_map.as_slice().len(), - )) - .cmp_map(&mut *afl_cmp_map) - .trace_mode(self.trace_mode) - .timeout(self.timeout) - .log_level(self.log_level) - .build() - .map_err(|e| libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()))?; - - let (tx, orx) = channel::(); - let (otx, rx) = channel::(); - - let simics = self.simics(otx, orx); - let client = RefCell::new(Client::new(tx, rx)); - - let _output_config = client - .borrow_mut() - .initialize(config) - .map_err(|e| libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()))?; - - client - .borrow_mut() - .reset() - .map_err(|e| libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()))?; - - let edges_observer = - HitcountsMapObserver::new(StdMapObserver::from_mut_slice("coverage", coverage_map)); - - const AFLPP_CMP_OBSERVER_NAME: &str = "aflpp_cmplog"; - const CMPLOG_OBSERVER_NAME: &str = "cmplog"; - - // NOTE: These are called "Forkserver" but they aren't really restricted to forkserver - // executors - let aflpp_cmplog_observer = - AFLppCmpObserver::new(AFLPP_CMP_OBSERVER_NAME, &mut afl_cmp_map, true); - - let cmplog_observer = StdCmpValuesObserver::new( - CMPLOG_OBSERVER_NAME, - unsafe { &mut *afl_cmp_map_ptr }, - true, - ); - - let map_feedback = MaxMapFeedback::tracking(&edges_observer, true, true); - - let time_observer = TimeObserver::new("time"); - - let colorization = ColorizationStage::new(&edges_observer); - let generalization = GeneralizationStage::new(&edges_observer); - let calibration = CalibrationStage::new(&map_feedback); - - let mut feedback = - feedback_or!(map_feedback, TimeFeedback::with_observer(&time_observer)); - - // feedback_and_fast!(map_feedback, feedback_not!(CrashFeedback::new())); - - let mut objective = feedback_or_fast!( - feedback_and_fast!(CrashFeedback::new()), - TimeFeedback::new("time") - ); - - let solutions = - OnDiskCorpus::with_meta_format(&self.solutions, OnDiskMetadataFormat::JsonPretty)?; - - let corpus = CachedOnDiskCorpus::with_meta_format( - &self.corpus, - SimicsFuzzer::CACHE_LEN, - Some(OnDiskMetadataFormat::Json), - )?; - - let mut state = state.unwrap_or_else(|| { - StdState::new( - StdRand::with_seed(current_nanos()), - corpus, - solutions, - &mut feedback, - &mut objective, - ) - .expect("Couldn't initialize state") - }); - - if !state.has_metadata::() { - let mut toks = Tokens::default(); - - if let Some(tokens_file) = self.tokens_file.as_ref() { - // NOTE: This adds from a file of the format below, containing tokens extracted - // from the fuzz target - // - // x = "hello" - // y = "foo\x41bar" - toks.add_from_file(tokens_file)?; - }; - - if let Some(executable) = self.executable.as_ref() { - toks.add_tokens(tokenize_executable(executable).map_err(|e| { - error!( - "Error tokenizing executable {}: {}", - executable.display(), - e - ); - libafl::Error::Unknown(e.to_string(), ErrorBacktrace::default()) - })?); - } - - state.add_metadata(toks); - } - - let i2s = StdMutationalStage::new(StdScheduledMutator::new(tuple_list!( - I2SRandReplace::new() - ))); - let std_mutator = StdScheduledMutator::new(havoc_mutations().merge(tokens_mutations())); - let std_power = StdPowerMutationalStage::new(std_mutator); - let mopt_mutator = StdMOptMutator::new( - &mut state, - havoc_mutations().merge(tokens_mutations()), - 7, - 5, - )?; - let mopt = StdPowerMutationalStage::new(mopt_mutator); - // let scheduler = - // PowerQueueScheduler::new(&mut state, &edges_observer, PowerSchedule::FAST); - let scheduler = - IndexesLenTimeMinimizerScheduler::new(StdWeightedScheduler::with_schedule( - &mut state, - &edges_observer, - Some(PowerSchedule::EXPLORE), - )); - - let mut fuzzer = StdFuzzer::new(scheduler, feedback, objective); - - let mut harness = |input: &BytesInput| { - let target = input.target_bytes(); - let buf = target.as_slice(); - let run_input = buf.to_vec(); - let mut exit_kind = ExitKind::Ok; - - debug!("Running with input '{:?}'", run_input); - - debug!("Sending run signal"); - - match client.borrow_mut().run(run_input, RunConfig::default()) { - Ok(reason) => match reason { - StopReason::Magic((_magic, _p)) => { - exit_kind = ExitKind::Ok; - } - StopReason::SimulationExit(_) => { - exit_kind = ExitKind::Ok; - } - StopReason::Crash((fault, _p)) => { - info!("Target crashed with fault {:?}", fault); - exit_kind = ExitKind::Crash; - } - StopReason::TimeOut => { - info!("Target timed out"); - exit_kind = ExitKind::Timeout; - } - StopReason::Breakpoint(breakpoint_number) => { - info!("Target got a breakpoint #{}", breakpoint_number); - exit_kind = ExitKind::Crash; - } - StopReason::Error((e, _p)) => { - error!("An error occurred during execution: {:?}", e); - exit_kind = ExitKind::Ok; - } - }, - Err(e) => { - error!("Error running SIMICS: {}", e); - } - } - - debug!("Sending reset signal"); - - if let Err(e) = client.borrow_mut().reset() { - error!("Error resetting SIMICS: {}", e); - } - - debug!("Harness done with kind {:?}", exit_kind); - - exit_kind - }; - - let mut aflpp_cmplog_harness = |input: &BytesInput| { - let target = input.target_bytes(); - let buf = target.as_slice(); - let run_input = buf.to_vec(); - let mut exit_kind = ExitKind::Ok; - - debug!("Tracing input '{:?}'", run_input); - - debug!("Sending run signal"); - - match client - .borrow_mut() - .run(run_input, RunConfig { cmplog: true }) - { - Ok(reason) => match reason { - StopReason::Magic((_magic, _p)) => { - exit_kind = ExitKind::Ok; - } - StopReason::SimulationExit(_) => { - exit_kind = ExitKind::Ok; - } - StopReason::Crash((fault, _p)) => { - info!("Target crashed with fault {:?}", fault); - exit_kind = ExitKind::Crash; - } - StopReason::TimeOut => { - info!("Target timed out"); - exit_kind = ExitKind::Timeout; - } - StopReason::Breakpoint(breakpoint_number) => { - info!("Target got a breakpoint #{}", breakpoint_number); - exit_kind = ExitKind::Crash; - } - StopReason::Error((e, _p)) => { - error!("An error occurred during execution: {:?}", e); - exit_kind = ExitKind::Ok; - } - }, - Err(e) => { - error!("Error running SIMICS: {}", e); - } - } - - debug!("Sending reset signal"); - - if let Err(e) = client.borrow_mut().reset() { - error!("Error resetting SIMICS: {}", e); - } - - debug!("Harness done"); - - exit_kind - }; - - let mut tracing_harness = aflpp_cmplog_harness; - - let mut executor = TimeoutExecutor::new( - InProcessExecutor::new( - &mut harness, - tuple_list!(edges_observer, time_observer), - &mut fuzzer, - &mut state, - &mut mgr, - )?, - // The executor's timeout can be quite long - Duration::from_secs(self.executor_timeout), - ); - - let cmplog_executor = TimeoutExecutor::new( - InProcessExecutor::new( - &mut aflpp_cmplog_harness, - tuple_list!(aflpp_cmplog_observer), - &mut fuzzer, - &mut state, - &mut mgr, - )?, - // The executor's timeout can be quite long - Duration::from_secs(self.executor_timeout), - ); - - let tracing_executor = TimeoutExecutor::new( - InProcessExecutor::new( - &mut tracing_harness, - tuple_list!(cmplog_observer), - &mut fuzzer, - &mut state, - &mut mgr, - )?, - // The executor's timeout can be quite long - Duration::from_secs(self.executor_timeout), - ); - - let aflpp_tracing = AFLppCmplogTracingStage::with_cmplog_observer_name( - cmplog_executor, - AFLPP_CMP_OBSERVER_NAME, - ); - - let tracing = TracingStage::new(tracing_executor); - - let redqueen = - MultiMutationalStage::new(AFLppRedQueen::with_cmplog_options(true, true)); - - let sync = SyncFromDiskStage::with_from_file(self.corpus.clone()); - let dump = DumpToDiskStage::new( - |input: &BytesInput, _state: &_| input.target_bytes().as_slice().to_vec(), - self.corpus.clone(), - self.solutions.clone(), - )?; - - if state.must_load_initial_inputs() { - if let Some(input) = self.input.as_ref() { - state.load_initial_inputs( - &mut fuzzer, - &mut executor, - &mut mgr, - &[input.clone()], - )?; - } - if state.corpus().count() < 1 { - info!( - "No corpus provided. Generating {} initial inputs", - INITIAL_INPUTS - ); - let mut generator = RandBytesGenerator::new(64); - state.generate_initial_inputs( - &mut fuzzer, - &mut executor, - &mut generator, - &mut mgr, - INITIAL_INPUTS, - )?; - } - info!("Imported {} inputs from disk", state.corpus().count()); - - if state.corpus().count() == 0 { - error!( - "No interesting cases found from inputs! This may mean \ - your harness is incorrect (check your arguments), your inputs \ - are not triggering new code paths, or all inputs are causing \ - crashes." - ); - mgr.send_exiting()?; - return Ok(()); - } - } - - let mut stages = tuple_list!( - calibration, - generalization, - // Run cmplog/redqueen if enabled (or rather, not disabled) - IfStage::new( - |_fuzzer: &mut _, - _executor: &mut _, - state: &mut StdState<_, CachedOnDiskCorpus<_>, _, _>, - _event_manager: &mut _, - corpus_id: CorpusId| - -> Result { - Ok(self.redqueen - && state.corpus().get(corpus_id)?.borrow().scheduled_count() == 1) - }, - tuple_list!(colorization, aflpp_tracing, redqueen,), - ), - IfStage::new( - |_fuzzer: &mut _, - _executor: &mut _, - _state: &mut StdState<_, CachedOnDiskCorpus<_>, _, _>, - _event_manager: &mut _, - _corpus_id: CorpusId| - -> Result { Ok(self.redqueen) }, - tuple_list!(tracing, i2s), - ), - std_power, - mopt, - // Sync to disk - IfStage::new( - |_fuzzer: &mut _, - _executor: &mut _, - _state: &mut StdState<_, CachedOnDiskCorpus<_>, _, _>, - _event_manager: &mut _, - _corpus_id: CorpusId| - -> Result { - Ok(self.cores.ids.len() > 1) - }, - tuple_list!(dump, sync) - ) - ); - - if let Some(iterations) = self.iterations { - info!("Fuzzing for {} iterations", iterations); - fuzzer.fuzz_loop_for( - &mut stages, - &mut executor, - &mut state, - &mut mgr, - iterations, - )?; - mgr.send_exiting()?; - info!("Done fuzzing"); - } else { - info!("Fuzzing until stopped"); - fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?; - mgr.send_exiting()?; - info!("Done fuzzing"); - } - - client - .borrow_mut() - .exit() - .map_err(|e| libafl::Error::Unknown(e.to_string(), ErrorBacktrace::new()))?; - - simics - .join() - .map_err(|e| libafl::Error::Unknown(format!("{:?}", e), ErrorBacktrace::new()))? - .map_err(|e| libafl::Error::Unknown(format!("{:?}", e), ErrorBacktrace::new()))?; - - info!("Fuzzer done, bye!"); - - Ok(()) - }; - - // TODO: Deduplicate this nastiness - if self.tui { - // Set log level to error if in TUI mode - let monitor = TuiMonitor::new(TuiUI::new(Self::NAME.to_owned(), true)); - match Launcher::builder() - .shmem_provider(shmem_provider) - .configuration(EventConfig::from_name(Self::NAME)) - .monitor(monitor) - .run_client(&mut run_client) - .cores(&self.cores) - .broker_port(broker_port) - // NOTE: We send stdout to /dev/null when using the TUI. If users are using the TUI - // and want logs, they need to pass `-L /whatever.txt`. We don't want to send - // stdout there. - .stdout_file(Some(&self.tui_stdout_file.as_os_str().to_string_lossy())) - .build() - .launch() - { - Ok(()) => {} - Err(libafl::Error::ShuttingDown) => { - info!("Fuzzer shutting down."); - } - res @ Err(_) => { - return res.map_err(|e| anyhow!("Failed to run launcher: {}", e)); - } - } - } else { - let monitor = MultiMonitor::new(|s| { - info!("{}", s); - }); - match Launcher::builder() - .shmem_provider(shmem_provider) - .configuration(EventConfig::from_name(Self::NAME)) - .monitor(monitor) - .run_client(&mut run_client) - .cores(&self.cores) - .broker_port(broker_port) - .build() - .launch() - { - Ok(()) => (), - Err(libafl::Error::ShuttingDown) => { - info!("Fuzzer shutting down."); - } - res @ Err(_) => return res.map_err(|e| anyhow!("Failed to run launcher: {}", e)), - } - } - - self.project.path.remove_on_drop(true); - - Ok(()) - } -} diff --git a/simics-fuzz/src/lib.rs b/simics-fuzz/src/lib.rs deleted file mode 100644 index cec81295..00000000 --- a/simics-fuzz/src/lib.rs +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![deny(clippy::unwrap_used)] - -pub mod args; -pub mod fuzzer; -pub mod modules; -pub mod tokenize; diff --git a/simics-fuzz/src/modules/mod.rs b/simics-fuzz/src/modules/mod.rs deleted file mode 100644 index 24f871b2..00000000 --- a/simics-fuzz/src/modules/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -pub mod tsffs; diff --git a/simics-fuzz/src/modules/tsffs.rs b/simics-fuzz/src/modules/tsffs.rs deleted file mode 100644 index 4035fd7f..00000000 --- a/simics-fuzz/src/modules/tsffs.rs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! The tsffs module build along with this binary - -// TODO: Just use include_dir! for this now that the bug with massive compiles has been fixed -// so we can bundle it at a given version - -// pub const TSFFS_MODULE: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/libtsffs_module.so")); -pub const TSFFS_MODULE_CRATE_NAME: &str = "tsffs_module"; -pub const TSFFS_MODULE_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../tsffs_module/"); -pub const TSFFS_WORKSPACE_PATH: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/.."); - -pub use tsffs_module::ModuleInterface; diff --git a/simics-link/Cargo.toml b/simics-link/Cargo.toml deleted file mode 100644 index ca0c45ab..00000000 --- a/simics-link/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "simics-link" -categories.workspace = true -description = "Link helpers for build.rs scripts to link SIMICS" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow.workspace = true -cargo_metadata = "0.18.0" -clap = { version = "4.3.0", features = ["derive"] } -derive_builder = "0.12.0" -dotenvy_macro = "0.15.7" -itertools = "0.11.0" -num = "0.4.0" -num-derive = "0.4.0" -num-traits = "0.2.15" -rand = "0.8.5" -regex = "1.8.3" -serde = { workspace = true, features = ["derive"] } -serde_json.workspace = true -strum = { version = "0.25.0", features = ["strum_macros", "derive"] } -version-tools.workspace = true -versions = "5.0.0" -walkdir = "2.3.3" diff --git a/simics-link/src/lib.rs b/simics-link/src/lib.rs deleted file mode 100644 index cdd03cd0..00000000 --- a/simics-link/src/lib.rs +++ /dev/null @@ -1,621 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Standalone simics linking functionality. This copies from the `simics` crate and should be updated -//! if the linking strategy there changes. - -#![deny(clippy::unwrap_used)] -#![forbid(unsafe_code)] - -extern crate num_traits; -#[macro_use] -extern crate num_derive; - -use anyhow::{anyhow, bail, ensure, Error, Result}; -use derive_builder::Builder; -use dotenvy_macro::dotenv; -use itertools::Itertools; -use num::{FromPrimitive, ToPrimitive}; -use regex::Regex; -use serde::{Deserialize, Serialize}; -use std::{ - collections::{HashMap, HashSet}, - fmt::Debug, - fs::{read_dir, read_to_string}, - path::{Path, PathBuf}, - process::{Command, Stdio}, - str::FromStr, -}; -use version_tools::VersionConstraint; -use versions::Versioning; -use walkdir::WalkDir; - -type PackageVersion = String; -type PackageNumber = i64; - -#[derive(Hash, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Debug, FromPrimitive, ToPrimitive)] -#[repr(i64)] -/// Numbers for public SIMICS packages. These numbers can be used to conveniently specify package -/// numbers -pub enum PublicPackageNumber { - QspClearLinux = 4094, - QspCpu = 8112, - QspIsim = 8144, - DoceaBase = 7801, - OssSources = 1020, - Training = 6010, - Viewer = 8126, - QspX86 = 2096, - Base = 1000, - Error = -1, -} - -impl From for PublicPackageNumber { - fn from(value: i64) -> Self { - FromPrimitive::from_i64(value).unwrap_or(PublicPackageNumber::Error) - } -} - -impl From for i64 { - fn from(val: PublicPackageNumber) -> Self { - ToPrimitive::to_i64(&val).expect("Invalid conversion to i64") - } -} - -pub fn parse_packageinfo

(package_path: P) -> Result -where - P: AsRef, -{ - let package_path = package_path.as_ref().to_path_buf(); - - if !package_path.is_dir() { - bail!( - "Package path {} does not exist or is not a directory", - package_path.display() - ); - } - - let packageinfo_path = package_path.join("packageinfo"); - - if !packageinfo_path.is_dir() { - bail!( - "Package info path {} does not exist or is not a directory", - packageinfo_path.display() - ); - } - - let package_home = package_path - .parent() - .ok_or_else(|| anyhow!("No parent of package path {}", package_path.display()))? - .to_path_buf(); - - read_dir(&packageinfo_path) - .map_err(|e| { - anyhow!( - "Failed to read packageinfo directory {}: {}", - packageinfo_path.display(), - e - ) - }) - .and_then(|packageinfo_entries| { - packageinfo_entries - .into_iter() - .take(1) - .next() - .ok_or_else(|| { - anyhow!( - "No entries in packageinfo directory {}", - packageinfo_path.display() - ) - }) - .map(|packageinfo_manifest| { - packageinfo_manifest - .map(|packageinfo_manifest| packageinfo_manifest.path()) - .map_err(|e| anyhow!("Couldn't get entry for manifest: {}", e)) - }) - })? - .and_then(|packageinfo_manifest| { - read_to_string(&packageinfo_manifest) - .map_err(|e| { - anyhow!( - "Failed to read manifest {}: {}", - packageinfo_manifest.display(), - e - ) - }) - .map(|packageinfo_contents| { - packageinfo_contents.parse().map(|mut package: Package| { - package.home = package_home.clone(); - package.path = package_path.clone(); - package - }) - }) - })? -} - -/// Get all the package information of all packages in the `simics_home` installation directory as -/// a mapping between the package number and a nested mapping of package version to the package -/// info for the package -pub fn packages

(home: P) -> Result>> -where - P: AsRef, -{ - let mut infos: Vec = read_dir(&home)? - .filter_map(|home_dir_entry| { - home_dir_entry - .map_err(|e| eprintln!("Could not read directory entry: {}", e)) - .ok() - }) - .filter_map(|home_dir_entry| { - let package_path = home_dir_entry.path(); - parse_packageinfo(&package_path) - .map_err(|e| { - eprintln!( - "Error parsing package info from package at {}: {}", - package_path.display(), - e - ) - }) - .ok() - }) - .collect(); - - infos.sort_unstable_by(|a, b| a.package_number.cmp(&b.package_number)); - - Ok(infos - .iter() - .group_by(|p| p.package_number) - .into_iter() - .map(|(k, g)| { - let g: Vec<_> = g.collect(); - ( - k, - g.iter() - .map(|p| (p.version.clone(), (*p).clone())) - .collect(), - ) - }) - .collect()) -} - -#[derive(Builder, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)] -#[builder(setter(skip), build_fn(skip))] -pub struct Package { - #[serde(skip)] - #[builder(setter(into))] - /// The SIMICS Home directory. You should never need to manually specify this. - pub home: PathBuf, - #[serde(skip)] - #[builder(setter(into, name = "version"))] - /// The version string for the package - pub version_constraint: VersionConstraint, - #[serde(skip)] - pub path: PathBuf, - /// The package name - pub name: String, - /// The package description - pub description: String, - /// The version string for the package - pub version: String, - #[serde(rename = "extra-version")] - /// The extra version string for the package, usually blank - pub extra_version: String, - //// Host type, e.g. `linux64` - pub host: String, - /// Whether the package is public or private - pub confidentiality: String, - #[serde(rename = "package-name")] - /// The name of the package, again (this field is typically the same as `name`) - pub package_name: String, - #[serde(rename = "package-number")] - #[builder(setter(into))] - /// The package number - pub package_number: PackageNumber, - #[serde(rename = "build-id")] - /// A monotonically increasing build ID for the package number - pub build_id: u64, - #[serde(rename = "build-id-namespace")] - /// Namespace for build IDs, `simics` for public/official packages - pub build_id_namespace: String, - #[serde(rename = "type")] - /// The type of package, typically either `base` or `addon` - pub typ: String, - #[serde(rename = "package-name-full")] - /// Long package name - pub package_name_full: String, - /// Complete list of files in the package - pub files: Vec, -} - -impl TryFrom for Package { - type Error = Error; - fn try_from(value: PathBuf) -> Result { - let mut package = parse_packageinfo(&value)?; - package.home = value - .parent() - .ok_or_else(|| anyhow!("No parent directory for package path {}", value.display()))? - .to_path_buf(); - package.path = value; - Ok(package) - } -} - -impl Debug for Package { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Package") - .field("home", &self.home) - .field("version_constraint", &self.version_constraint) - .field("path", &self.path) - .field("name", &self.name) - .field("description", &self.description) - .field("version", &self.version) - .field("extra_version", &self.extra_version) - .field("host", &self.host) - .field("confidentiality", &self.confidentiality) - .field("package_name", &self.package_name) - .field("package_number", &self.package_number) - .field("build_id", &self.build_id) - .field("build_id_namespace", &self.build_id_namespace) - .field("typ", &self.typ) - .field("package_name_full", &self.package_name_full) - .field("files", &"[...]") - .finish() - } -} - -impl PackageBuilder { - pub fn build(&mut self) -> Result { - let home = self.home.as_ref().cloned().unwrap_or(simics_home()?); - - let package_number = self - .package_number - .ok_or_else(|| anyhow!("No package number set"))?; - - let packages = packages(&home)?; - let packages_for_number = packages.get(&package_number).ok_or_else(|| { - anyhow!( - "No package found with number {} in {}", - package_number, - home.display() - ) - })?; - - let package_version = self - .version_constraint - .as_ref() - .cloned() - .unwrap_or("*".parse()?); - - let version = packages_for_number - .keys() - .filter_map(|k| Versioning::new(k)) - .filter(|v| package_version.matches(v)) - .max() - .ok_or_else(|| anyhow!("No version found"))?; - - packages_for_number - .get(&version.to_string()) - .ok_or_else(|| { - anyhow!( - "No version {} found for package {} in {}", - version, - package_number, - home.display() - ) - }) - .cloned() - } -} - -impl Package { - /// A default, blank, package info structure - fn try_default() -> Result { - Ok(Self::blank_in_at(simics_home()?, PathBuf::from(""))) - } - - fn blank_in_at(home: PathBuf, path: PathBuf) -> Self { - Self { - home, - path, - version_constraint: VersionConstraint::default(), - name: "".to_string(), - description: "".to_string(), - version: "".to_string(), - extra_version: "".to_string(), - host: "".to_string(), - confidentiality: "".to_string(), - package_name: "".to_string(), - package_number: -1, - build_id: 0, - build_id_namespace: "".to_string(), - typ: "".to_string(), - package_name_full: "".to_string(), - files: vec![], - } - } -} - -impl FromStr for Package { - type Err = Error; - fn from_str(s: &str) -> Result { - let mut package = Package::try_default()?; - - s.lines().for_each(|l| { - if l.trim_start() != l { - // There is some whitespace at the front - package.files.push(l.trim().to_string()); - } else { - let kv: Vec<&str> = l.split(':').map(|lp| lp.trim()).collect(); - if let Some(k) = kv.first() { - if let Some(v) = kv.get(1) { - match k.to_string().as_str() { - "name" => package.name = v.to_string(), - "description" => package.description = v.to_string(), - "version" => package.version = v.to_string(), - "extra-version" => package.extra_version = v.to_string(), - "host" => package.host = v.to_string(), - "confidentiality" => package.confidentiality = v.to_string(), - "package-name" => package.package_name = v.to_string(), - "package-number" => { - package.package_number = - v.to_string().parse().unwrap_or(0).try_into().unwrap_or(-1) - } - "build-id" => package.build_id = v.to_string().parse().unwrap_or(0), - "build-id-namespace" => package.build_id_namespace = v.to_string(), - "type" => package.typ = v.to_string(), - "package-name-full" => package.package_name_full = v.to_string(), - _ => {} - } - } - } - } - }); - - Ok(package) - } -} - -const SIMICS_HOME: &str = dotenv!("SIMICS_HOME"); - -/// Return the SIMICS_HOME directory as a PathBuf. This depends on the SIMICS_HOME environment -/// variable being defined at compile time, and runtime changes to this variable will have no -/// effect. -fn simics_home() -> Result { - let simics_home = PathBuf::from(SIMICS_HOME); - match simics_home.exists() { - true => Ok(simics_home), - false => { - bail!( - "SIMICS_HOME is defined, but {} does not exist.", - SIMICS_HOME - ) - } - } -} - -/// Find the latest version of the Simics Base package with a particular constraint. -pub fn package_version

( - simics_home: P, - package_number: PackageNumber, - version_constraint: VersionConstraint, -) -> Result -where - P: AsRef, -{ - let infos = packages(simics_home.as_ref())?[&package_number].clone(); - let version = infos - .keys() - .filter_map(|k| Versioning::new(k)) - .filter(|v| version_constraint.matches(v)) - .max() - .ok_or_else(|| { - anyhow!( - "No simics base package number {} matching version {:?} in {}. Package infos found: {:?}", - package_number, - version_constraint, - simics_home.as_ref().display(), - infos, - ) - })?; - - Ok(infos - .get(&version.to_string()) - .ok_or_else(|| anyhow!("No such version {}", version))? - .clone()) -} - -/// Locate a file recursively using a regex pattern in the simics base directory. If there are -/// multiple occurrences of a filename, it is undefined which will be returned. -pub fn find_file_in_dir(simics_base_dir: P, file_name_pattern: S) -> Result -where - P: AsRef, - S: AsRef, -{ - let file_name_regex = Regex::new(file_name_pattern.as_ref())?; - let found_file = WalkDir::new(&simics_base_dir) - .into_iter() - .filter_map(|de| de.ok()) - // is_ok_and is unstable ;_; - .filter(|de| { - if let Ok(m) = de.metadata() { - m.is_file() - } else { - false - } - }) - .find(|de| { - if let Some(name) = de.path().file_name() { - file_name_regex.is_match(&name.to_string_lossy()) - } else { - false - } - }) - .ok_or_else(|| { - anyhow!( - "Could not find {} in {}", - file_name_pattern.as_ref(), - simics_base_dir.as_ref().display() - ) - })? - .path() - .to_path_buf(); - - ensure!( - found_file.is_file(), - "No file {} found in {}", - file_name_pattern.as_ref(), - simics_base_dir.as_ref().display() - ); - - Ok(found_file) -} - -/// Emit cargo directives to link to SIMICS given a particular version constraint -pub fn link_simics_linux(version_constraint: S) -> Result<()> -where - S: AsRef, -{ - let simics_home_dir = simics_home()?; - - let simics_base_info = package_version( - &simics_home_dir, - PublicPackageNumber::Base.into(), - version_constraint.as_ref().parse()?, - )?; - let simics_base_version = simics_base_info.version.clone(); - let simics_base_dir = simics_base_info.path; - eprintln!( - "Found simics base for version '{}' in {}", - version_constraint.as_ref(), - simics_base_dir.display() - ); - - let simics_common_lib = find_file_in_dir(&simics_base_dir, "libsimics-common.so")?; - eprintln!( - "Found simics common library: {}", - simics_common_lib.display() - ); - - let simics_bin_dir = simics_home_dir - .join(format!("simics-{}", &simics_base_version)) - .join("bin"); - - ensure!( - simics_bin_dir.is_dir(), - "No bin directory found in {}", - simics_home_dir.display() - ); - - let mut output = Command::new("ld.so") - .arg(&simics_common_lib) - .stdout(Stdio::piped()) - .output() - .map_err(|e| { - eprintln!("Error running 'ld.so': {}", e); - }) - .ok(); - - if output.is_none() || output.as_ref().is_some_and(|o| !o.status.success()) { - output = Some( - Command::new("ldd") - .arg(simics_common_lib) - .stdout(Stdio::piped()) - .output() - .map_err(|e| { - eprintln!("Error running 'ldd': {}", e); - e - })?, - ); - } - - let output = output.ok_or_else(|| anyhow!("No output from 'ld.so' or 'ldd'"))?; - - ensure!( - output.status.success(), - "Command failed to obtain dependency listing" - ); - - let ld_line_pattern = Regex::new(r"\s*([^\s]+)\s*=>\s*(.*)")?; - let mut notfound_libs: Vec<_> = String::from_utf8_lossy(&output.stdout) - .lines() - .filter_map(|l| { - if let Some(captures) = ld_line_pattern.captures(l) { - captures.get(1) - } else { - None - } - }) - .map(|m| m.as_str().to_string()) - .collect(); - - if !notfound_libs.contains(&"libsimics-common.so".to_string()) { - notfound_libs.push("libsimics-common.so".to_string()); - } - - println!("Locating {}", notfound_libs.join(", ")); - - let mut lib_search_dirs = HashSet::new(); - - // NOTE: Right now, there aren't any recursive dependencies we need to worry about, it's only - // vtutils, package-paths, libpython, and libsimics-common. *if* this changes, we will need to - // reimplement this search recursively - println!("cargo:rustc-link-arg=-Wl,--disable-new-dtags"); - - for lib_name in notfound_libs { - if let Ok(found_lib) = find_file_in_dir(&simics_base_dir, &lib_name) { - // If we are running a build script right now, we will copy the library - let found_lib_parent = found_lib - .parent() - .ok_or_else(|| anyhow!("No parent path found"))?; - lib_search_dirs.insert(found_lib_parent.to_path_buf().canonicalize()?); - println!("cargo:rustc-link-lib=dylib:+verbatim={}", &lib_name); - } else { - eprintln!("Warning! Could not find simics dependency library {}. Chances are, it is a system library and this is OK.", lib_name); - } - } - - for lib_search_dir in &lib_search_dirs { - println!( - "cargo:rustc-link-search=native={}", - lib_search_dir.display() - ); - // println!( - // "cargo:rustc-link-arg=-Wl,-rpath,$ORIGIN/{}{}", - // UPDIR_MAX, - // lib_search_dir.display() - // ) - println!( - "cargo:rustc-link-arg=-Wl,-rpath,{}", - lib_search_dir.display() - ); - } - - // NOTE: This only works for `cargo run` and `cargo test` and won't work for just running - // the output binary - let search_dir_strings = lib_search_dirs - .iter() - .map(|pb| pb.to_string_lossy()) - .collect::>(); - - println!( - "cargo:rustc-env=LD_LIBRARY_PATH={}", - search_dir_strings.join(";") - ); - Ok(()) -} - -#[cfg(test)] -mod tests { - #[cfg(feature = "6.0.169")] - use anyhow::Result; - - #[cfg(feature = "6.0.169")] - use crate::link_simics_linux; - - #[cfg(feature = "6.0.169")] - #[test] - #[cfg_attr(miri, ignore)] - fn test_link_simics_linux() -> Result<()> { - link_simics_linux("6.0.169") - } -} diff --git a/simics-tests/Cargo.toml b/simics-tests/Cargo.toml deleted file mode 100644 index 9b69b340..00000000 --- a/simics-tests/Cargo.toml +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "simics-tests" -categories.workspace = true -description = "Test cases for Rust SIMICS bindings and TSFFS SIMICS fuzzer" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - - -[dependencies] -anyhow.workspace = true -clap = "4.3.0" -simics = { workspace = true } -tmp-dir.workspace = true - -[build-dependencies] -anyhow.workspace = true -simics-api.workspace = true -simics = { workspace = true } -artifact-dependency = { workspace = true } - -[dev-dependencies] -simics = { workspace = true, features = ["link"] } -anyhow.workspace = true -tracing = "0.1.37" -tracing-test = "0.2.4" -simics-fuzz = { workspace = true } -version-tools.workspace = true - - -[features] -"6.0.163" = ["simics/6.0.163", "simics-fuzz/6.0.163"] -"6.0.164" = ["simics/6.0.164", "simics-fuzz/6.0.164"] -"6.0.165" = ["simics/6.0.165", "simics-fuzz/6.0.165"] -"6.0.166" = ["simics/6.0.166", "simics-fuzz/6.0.166"] -"6.0.167" = ["simics/6.0.167", "simics-fuzz/6.0.167"] -"6.0.168" = ["simics/6.0.168", "simics-fuzz/6.0.168"] -"6.0.169" = ["simics/6.0.169", "simics-fuzz/6.0.169"] -"6.0.170" = ["simics/6.0.170", "simics-fuzz/6.0.170"] -"6.0.171" = ["simics/6.0.171", "simics-fuzz/6.0.171"] -"6.0.172" = ["simics/6.0.172", "simics-fuzz/6.0.172"] diff --git a/simics-tests/build.rs b/simics-tests/build.rs deleted file mode 100644 index 245b6b40..00000000 --- a/simics-tests/build.rs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; -use simics::link::link_simics_linux; -use simics_api::sys::SIMICS_VERSION; - -fn main() -> Result<()> { - #[cfg(target_family = "unix")] - link_simics_linux(SIMICS_VERSION)?; - - #[cfg(not(target_family = "unix"))] - compile_error!("Non-unix-like platforms are not yet supported"); - - println!("cargo:rerun-if-changed=build.rs"); - Ok(()) -} diff --git a/simics-tests/src/bin/simics-tests.rs b/simics-tests/src/bin/simics-tests.rs deleted file mode 100644 index 0cb6b02e..00000000 --- a/simics-tests/src/bin/simics-tests.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; - -fn main() -> Result<()> { - Ok(()) -} diff --git a/simics-tests/src/lib.rs b/simics-tests/src/lib.rs deleted file mode 100644 index b027e732..00000000 --- a/simics-tests/src/lib.rs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![deny(clippy::unwrap_used)] -#![forbid(unsafe_code)] - -use anyhow::Result; -use simics::{ - api::{GuiMode, InitArg, InitArgs}, - simics::Simics, -}; - -pub fn test_init() -> Result<()> { - let args = InitArgs::default() - .arg(InitArg::batch_mode(true)?) - .arg(InitArg::gui_mode(GuiMode::None.to_string())?) - .arg(InitArg::quiet(true)?) - .arg(InitArg::no_windows(true)?) - .arg(InitArg::no_settings(true)?); - - Simics::try_init(args)?; - Ok(()) -} - -#[cfg(test)] -mod test { - use std::{path::PathBuf, str::FromStr}; - - use super::test_init; - use anyhow::Result; - use simics::project::SimicsPath; - - #[test] - #[cfg_attr(miri, ignore)] - pub fn init() -> Result<()> { - test_init() - } - - #[test] - pub fn test_simics_path_traversal_reject() -> Result<()> { - let base = PathBuf::from("/tmp/"); - let out_of_base_path = SimicsPath::from_str("%simics%/../bad.txt")?; - assert!( - out_of_base_path.canonicalize(base).is_err(), - "Canonicalization should not be allowed outside of simics base" - ); - Ok(()) - } - - #[test] - pub fn test_simics_path_canonicalize() -> Result<()> { - let base = PathBuf::from("/tmp/"); - let in_base_path = SimicsPath::from_str("%simics%/bad.txt")?; - - let canonicalized = in_base_path.canonicalize(base)?; - assert!( - canonicalized.is_absolute(), - "Canonicalization should not be allowed outside of simics base" - ); - Ok(()) - } -} diff --git a/simics-tests/tests/test_harnessing_uefi_cli.rs b/simics-tests/tests/test_harnessing_uefi_cli.rs deleted file mode 100644 index f26d6180..00000000 --- a/simics-tests/tests/test_harnessing_uefi_cli.rs +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - env::var, - fs::{read_dir, write}, -}; - -use anyhow::Result; -use clap::Parser; -use simics::{manifest::package_latest, simics::home::simics_home}; -use simics_fuzz::{args::Args, fuzzer::SimicsFuzzer}; - -const CARGO_MANIFEST_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../"); -const ITERATIONS: usize = 3; - -#[test] -#[cfg_attr(miri, ignore)] -fn test_harnessing_uefi_cli() -> Result<()> { - use tmp_dir::TmpDirBuilder; - - let mut tmp_input_dir = TmpDirBuilder::default() - .prefix("test_harnessing_uefi_cli_input") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_corpus_dir = TmpDirBuilder::default() - .prefix("test_harnessing_uefi_cli_corpus") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_solution_dir = TmpDirBuilder::default() - .prefix("test_harnessing_uefi_cli_solution") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - - let package_version_2096 = - var("SIMICS_PACKAGE_VERSION_2096").unwrap_or(package_latest(simics_home()?, 2096)?.version); - - eprintln!("Created tmp corpus: {}", tmp_corpus_dir.path().display()); - - // For this test, we set up an input corpus - write(tmp_input_dir.path().join("1"), "racecar".as_bytes())?; - - let args = &[ - "simics-fuzz", - "-i", - &tmp_input_dir.path().to_string_lossy(), - "-c", - &tmp_corpus_dir.path().to_string_lossy(), - "-o", - &tmp_solution_dir.path().to_string_lossy(), - "-l", - "INFO", - "-C", - "1", - "--iterations", - &format!("{}", ITERATIONS), - "--no-keep-temp-projects", - "--package", - &format!("2096:{}", package_version_2096), - "--file", - &format!("{}/examples/harnessing-uefi/rsrc/target.efi:%simics%/target.efi", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/harnessing-uefi/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/harnessing-uefi/rsrc/fuzz.simics:%simics%/fuzz.simics", CARGO_MANIFEST_DIR), - "--command", - "CONFIG:%simics%/fuzz.simics", - ]; - - println!("{}", args.join(" ")); - - let args = Args::parse_from(args); - - println!("{:?}", args); - - SimicsFuzzer::cli_main(args)?; - - let corpus_entries = read_dir(tmp_corpus_dir.path()) - .map_err(|e| { - eprintln!( - "Couldn't read corpus directory {}: {}", - tmp_corpus_dir.path().display(), - e - ); - e - })? - .count(); - - // NOTE: We enable this after cli main runs because otherwise they are dropped multiple times, - // in the fuzzer children *and* in this thread - tmp_input_dir.remove_on_drop(true); - tmp_corpus_dir.remove_on_drop(true); - tmp_solution_dir.remove_on_drop(true); - - assert!(corpus_entries > 0, "No corpus in {} iterations", ITERATIONS); - Ok(()) -} diff --git a/simics-tests/tests/test_hello_world_cli.rs b/simics-tests/tests/test_hello_world_cli.rs deleted file mode 100644 index b0ce1163..00000000 --- a/simics-tests/tests/test_hello_world_cli.rs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - env::var, - fs::{read_dir, write}, -}; - -use anyhow::Result; -use clap::Parser; -use simics::{manifest::package_latest, simics::home::simics_home}; -use simics_fuzz::{args::Args, fuzzer::SimicsFuzzer}; - -const CARGO_MANIFEST_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../"); -const ITERATIONS: usize = 3; - -#[test] -#[cfg_attr(miri, ignore)] -fn test_hello_world_cli() -> Result<()> { - use tmp_dir::TmpDirBuilder; - - let mut tmp_input_dir = TmpDirBuilder::default() - .prefix("test_hello_world_cli_input") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_corpus_dir = TmpDirBuilder::default() - .prefix("test_hello_world_cli_corpus") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_solution_dir = TmpDirBuilder::default() - .prefix("test_hello_world_cli_solution") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - - let package_version_2096 = - var("SIMICS_PACKAGE_VERSION_2096").unwrap_or(package_latest(simics_home()?, 2096)?.version); - - eprintln!("Created tmp corpus: {}", tmp_corpus_dir.path().display()); - - // For this test, we set up an input corpus - write(tmp_input_dir.path().join("1"), "racecar".as_bytes())?; - - let args = &[ - "simics-fuzz", - "-i", - &tmp_input_dir.path().to_string_lossy(), - "-c", - &tmp_corpus_dir.path().to_string_lossy(), - "-o", - &tmp_solution_dir.path().to_string_lossy(), - "-l", - "INFO", - "-C", - "1", - "--iterations", - &format!("{}", ITERATIONS), - "--no-keep-temp-projects", - "--package", - &format!("2096:{}", package_version_2096), - "--file", - &format!("{}/examples/hello-world/rsrc/HelloWorld.efi:%simics%/targets/hello-world/HelloWorld.efi", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/hello-world/rsrc/app.py:%simics%/scripts/app.py", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/hello-world/rsrc/app.yml:%simics%/scripts/app.yml", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/hello-world/rsrc/minimal_boot_disk.craff:%simics%/targets/hello-world/minimal_boot_disk.craff", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/hello-world/rsrc/run_uefi_app.nsh:%simics%/targets/hello-world/run_uefi_app.nsh", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/hello-world/rsrc/run-uefi-app.simics:%simics%/targets/hello-world/run-uefi-app.simics", CARGO_MANIFEST_DIR), - "--command", - "CONFIG:%simics%/scripts/app.yml", - ]; - - println!("{}", args.join(" ")); - - let args = Args::parse_from(args); - - println!("{:?}", args); - - SimicsFuzzer::cli_main(args)?; - - let corpus_entries = read_dir(tmp_corpus_dir.path()) - .map_err(|e| { - eprintln!( - "Couldn't read corpus directory {}: {}", - tmp_corpus_dir.path().display(), - e - ); - e - })? - .count(); - - // NOTE: We enable this after cli main runs because otherwise they are dropped multiple times, - // in the fuzzer children *and* in this thread - tmp_input_dir.remove_on_drop(true); - tmp_corpus_dir.remove_on_drop(true); - tmp_solution_dir.remove_on_drop(true); - - assert!(corpus_entries > 0, "No corpus in {} iterations", ITERATIONS); - Ok(()) -} diff --git a/simics-tests/tests/test_mini_cli.rs b/simics-tests/tests/test_mini_cli.rs deleted file mode 100644 index 40beed00..00000000 --- a/simics-tests/tests/test_mini_cli.rs +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - env::var, - fs::{read_dir, write}, -}; - -use anyhow::Result; -use clap::Parser; -use simics::{manifest::package_latest, simics::home::simics_home}; -use simics_fuzz::{args::Args, fuzzer::SimicsFuzzer}; - -const CARGO_MANIFEST_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../"); -const ITERATIONS: usize = 3; - -#[test] -#[cfg_attr(miri, ignore)] -fn test_harnessing_mini_cli() -> Result<()> { - use tmp_dir::TmpDirBuilder; - - let mut tmp_input_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_input") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_corpus_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_corpus") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_solution_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_solution") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - - let package_version_2096 = - var("SIMICS_PACKAGE_VERSION_2096").unwrap_or(package_latest(simics_home()?, 2096)?.version); - - eprintln!("Created tmp corpus: {}", tmp_corpus_dir.path().display()); - - // For this test, we set up an input corpus - write(tmp_input_dir.path().join("1"), "racecar".as_bytes())?; - - let args = &[ - "simics-fuzz", - "-i", - &tmp_input_dir.path().to_string_lossy(), - "-c", - &tmp_corpus_dir.path().to_string_lossy(), - "-o", - &tmp_solution_dir.path().to_string_lossy(), - "-l", - "INFO", - "-C", - "1", - "--iterations", - &format!("{}", ITERATIONS), - "--no-keep-temp-projects", - "--package", - &format!("2096:{}", package_version_2096), - "--file", - &format!( - "{}/examples/mini/rsrc/mini.efi:%simics%/mini.efi", - CARGO_MANIFEST_DIR - ), - "--file", - &format!( - "{}/examples/mini/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff", - CARGO_MANIFEST_DIR - ), - "--file", - &format!( - "{}/examples/mini/rsrc/fuzz.simics:%simics%/fuzz.simics", - CARGO_MANIFEST_DIR - ), - "--command", - "CONFIG:%simics%/fuzz.simics", - ]; - - println!("{}", args.join(" ")); - - let args = Args::parse_from(args); - - println!("{:?}", args); - - SimicsFuzzer::cli_main(args)?; - - let corpus_entries = read_dir(tmp_corpus_dir.path()) - .map_err(|e| { - eprintln!( - "Couldn't read corpus directory {}: {}", - tmp_corpus_dir.path().display(), - e - ); - e - })? - .count(); - - // NOTE: We enable this after cli main runs because otherwise they are dropped multiple times, - // in the fuzzer children *and* in this thread - tmp_input_dir.remove_on_drop(true); - tmp_corpus_dir.remove_on_drop(true); - tmp_solution_dir.remove_on_drop(true); - - assert!(corpus_entries > 0, "No corpus in {} iterations", ITERATIONS); - Ok(()) -} diff --git a/simics-tests/tests/test_no_overwrite_packagelist.rs b/simics-tests/tests/test_no_overwrite_packagelist.rs deleted file mode 100644 index 63feb7bf..00000000 --- a/simics-tests/tests/test_no_overwrite_packagelist.rs +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - env::var, - fs::{read_dir, write}, - process::Command, -}; - -use anyhow::{anyhow, Result}; -use clap::Parser; -use simics::{ - api::sys::SIMICS_VERSION, - manifest::{package_latest, package_version}, - package::PublicPackageNumber, - project::Project, - simics::home::simics_home, -}; -use simics_fuzz::{args::Args, fuzzer::SimicsFuzzer}; - -const CARGO_MANIFEST_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../"); -const ITERATIONS: usize = 1; - -#[test] -#[cfg_attr(miri, ignore)] -fn test_no_overwrite_packagelist() -> Result<()> { - use tmp_dir::TmpDirBuilder; - - let mut tmp_input_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_input") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_corpus_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_corpus") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_solution_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_solution") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_project_dir = TmpDirBuilder::default() - .prefix("test_mini_cli_solution") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - - let package_1000 = package_version( - simics_home()?, - PublicPackageNumber::Base.into(), - SIMICS_VERSION.parse()?, - )?; - - let project_setup = package_1000.path.join("bin").join("project-setup"); - - let package_version_2096 = - var("SIMICS_PACKAGE_VERSION_2096").unwrap_or(package_latest(simics_home()?, 2096)?.version); - - let package_2096 = package_version( - simics_home()?, - PublicPackageNumber::QspX86.into(), - package_version_2096.parse()?, - )?; - - Command::new(project_setup) - .arg("--ignore-existing-files") - .arg("--force") - .arg(tmp_project_dir.path()) - .output() - .map_err(|e| anyhow!("Error running project-setup: {}", e)) - .and_then(|s| { - if s.status.success() { - Ok(()) - } else { - Err(anyhow!( - "Error doing project-setup:\nstderr: {}\nstdout: {}", - String::from_utf8_lossy(&s.stderr), - String::from_utf8_lossy(&s.stdout) - )) - } - })?; - - let package_list_contents = format!( - "{}\n{}", - package_2096.path.canonicalize()?.display(), - package_1000.path.canonicalize()?.display() - ); - - write( - tmp_project_dir.path().join(".package-list"), - package_list_contents.as_bytes(), - )?; - - let project_project_setup = tmp_project_dir.path().join("bin").join("project-setup"); - - Command::new(project_project_setup) - .current_dir(tmp_project_dir.path()) - .output() - .map_err(|e| anyhow!("Error running project-setup: {}", e)) - .and_then(|s| { - if s.status.success() { - Ok(()) - } else { - Err(anyhow!( - "Error doing project-setup:\nstderr: {}\nstdout: {}", - String::from_utf8_lossy(&s.stderr), - String::from_utf8_lossy(&s.stdout) - )) - } - })?; - - eprintln!("Created tmp corpus: {}", tmp_corpus_dir.path().display()); - - let project_before: Project = tmp_project_dir.path().to_path_buf().try_into()?; - - // For this test, we set up an input corpus - write(tmp_input_dir.path().join("1"), "racecar".as_bytes())?; - - let args = &[ - "simics-fuzz", - "-p", - &tmp_project_dir.path().to_string_lossy(), - "-i", - &tmp_input_dir.path().to_string_lossy(), - "-c", - &tmp_corpus_dir.path().to_string_lossy(), - "-o", - &tmp_solution_dir.path().to_string_lossy(), - "-l", - "INFO", - "-C", - "1", - "--iterations", - &format!("{}", ITERATIONS), - "--no-keep-temp-projects", - "--package", - &format!("2096:{}", package_version_2096), - "--file", - &format!( - "{}/examples/mini/rsrc/mini.efi:%simics%/mini.efi", - CARGO_MANIFEST_DIR - ), - "--file", - &format!( - "{}/examples/mini/rsrc/minimal_boot_disk.craff:%simics%/minimal_boot_disk.craff", - CARGO_MANIFEST_DIR - ), - "--file", - &format!( - "{}/examples/mini/rsrc/fuzz.simics:%simics%/fuzz.simics", - CARGO_MANIFEST_DIR - ), - "--command", - "CONFIG:%simics%/fuzz.simics", - ]; - - println!("{}", args.join(" ")); - - let args = Args::parse_from(args); - - println!("{:?}", args); - - SimicsFuzzer::cli_main(args)?; - - let project_after: Project = tmp_project_dir.path().to_path_buf().try_into()?; - - assert_eq!( - project_after.packages(), - project_before.packages(), - "Package list contents differed" - ); - - let corpus_entries = read_dir(tmp_corpus_dir.path()) - .map_err(|e| { - eprintln!( - "Couldn't read corpus directory {}: {}", - tmp_corpus_dir.path().display(), - e - ); - e - })? - .count(); - - // NOTE: We enable this after cli main runs because otherwise they are dropped multiple times, - // in the fuzzer children *and* in this thread - tmp_input_dir.remove_on_drop(true); - tmp_corpus_dir.remove_on_drop(true); - tmp_solution_dir.remove_on_drop(true); - tmp_project_dir.remove_on_drop(true); - - assert!(corpus_entries > 0, "No corpus in {} iterations", ITERATIONS); - Ok(()) -} diff --git a/simics-tests/tests/test_x509_parse_cli.rs b/simics-tests/tests/test_x509_parse_cli.rs deleted file mode 100644 index 4f30db09..00000000 --- a/simics-tests/tests/test_x509_parse_cli.rs +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use std::{ - env::var, - fs::{read_dir, write}, -}; - -use anyhow::Result; -use clap::Parser; -use simics::{manifest::package_latest, simics::home::simics_home}; -use simics_fuzz::{args::Args, fuzzer::SimicsFuzzer}; - -const CARGO_MANIFEST_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/../"); -const ITERATIONS: usize = 3; - -#[test] -#[cfg_attr(miri, ignore)] -fn test_harnessing_x509_parse_cli() -> Result<()> { - use tmp_dir::TmpDirBuilder; - - let mut tmp_input_dir = TmpDirBuilder::default() - .prefix("test_x509_parse_cli_input") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_corpus_dir = TmpDirBuilder::default() - .prefix("test_x509_parse_cli_corpus") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - let mut tmp_solution_dir = TmpDirBuilder::default() - .prefix("test_x509_parse_cli_solution") - .permissions(0o40755u32) - .remove_on_drop(false) - .build()?; - - let package_version_2096 = - var("SIMICS_PACKAGE_VERSION_2096").unwrap_or(package_latest(simics_home()?, 2096)?.version); - - eprintln!("Created tmp corpus: {}", tmp_corpus_dir.path().display()); - - // For this test, we set up an input corpus - write(tmp_input_dir.path().join("1"), "racecar".as_bytes())?; - - let args = &[ - "simics-fuzz", - "-i", - &tmp_input_dir.path().to_string_lossy(), - "-c", - &tmp_corpus_dir.path().to_string_lossy(), - "-o", - &tmp_solution_dir.path().to_string_lossy(), - "-l", - "INFO", - "-C", - "1", - "--iterations", - &format!("{}", ITERATIONS), - "--no-keep-temp-projects", - "--package", - &format!("2096:{}", package_version_2096), - "--file", - &format!("{}/examples/x509-parse/rsrc/X509Parse.efi:%simics%/targets/x509-parse/X509Parse.efi", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/x509-parse/rsrc/app.py:%simics%/scripts/app.py", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/x509-parse/rsrc/app.yml:%simics%/scripts/app.yml", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/x509-parse/rsrc/minimal_boot_disk.craff:%simics%/targets/x509-parse/minimal_boot_disk.craff", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/x509-parse/rsrc/run_uefi_app.nsh:%simics%/targets/x509-parse/run_uefi_app.nsh", CARGO_MANIFEST_DIR), - "--file", - &format!("{}/examples/x509-parse/rsrc/run-uefi-app.simics:%simics%/targets/x509-parse/run-uefi-app.simics", CARGO_MANIFEST_DIR), - "--command", - "CONFIG:%simics%/scripts/app.yml", - ]; - - println!("{}", args.join(" ")); - - let args = Args::parse_from(args); - - println!("{:?}", args); - - SimicsFuzzer::cli_main(args)?; - - let corpus_entries = read_dir(tmp_corpus_dir.path()) - .map_err(|e| { - eprintln!( - "Couldn't read corpus directory {}: {}", - tmp_corpus_dir.path().display(), - e - ); - e - })? - .count(); - - // NOTE: We enable this after cli main runs because otherwise they are dropped multiple times, - // in the fuzzer children *and* in this thread - tmp_input_dir.remove_on_drop(true); - tmp_corpus_dir.remove_on_drop(true); - tmp_solution_dir.remove_on_drop(true); - - assert!(corpus_entries > 0, "No corpus in {} iterations", ITERATIONS); - Ok(()) -} diff --git a/simics/Cargo.toml b/simics/Cargo.toml deleted file mode 100644 index ccf02b18..00000000 --- a/simics/Cargo.toml +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "simics" -categories.workspace = true -description = "Tools for embedding SIMICS in Rust applications" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow.workspace = true -artifact-dependency.workspace = true -cargo_metadata = "0.18.0" -clap = { version = "4.3.0", features = ["derive"] } -derive_builder = "0.12.0" -dotenvy_macro = "0.15.7" -itertools = "0.11.0" -num = "0.4.0" -num-derive = "0.4.0" -num-traits = "0.2.15" -rand = "0.8.5" -regex = "1.8.3" -serde = { workspace = true, features = ["derive"] } -serde_json.workspace = true -simics-api = { workspace = true } -strum = { version = "0.25.0", features = ["strum_macros", "derive"] } -tmp-dir.workspace = true -tracing = "0.1.37" -version-tools.workspace = true -versions = "5.0.0" -walkdir = "2.3.3" - -[build-dependencies] -anyhow.workspace = true -simics-api.workspace = true -simics-link.workspace = true - -[dev-dependencies] - -[features] -link = [] -"6.0.163" = ["simics-api/6.0.163"] -"6.0.164" = ["simics-api/6.0.164"] -"6.0.165" = ["simics-api/6.0.165"] -"6.0.166" = ["simics-api/6.0.166"] -"6.0.167" = ["simics-api/6.0.167"] -"6.0.168" = ["simics-api/6.0.168"] -"6.0.169" = ["simics-api/6.0.169"] -"6.0.170" = ["simics-api/6.0.170"] -"6.0.171" = ["simics-api/6.0.171"] -"6.0.172" = ["simics-api/6.0.172"] diff --git a/simics/build.rs b/simics/build.rs deleted file mode 100644 index fce9d762..00000000 --- a/simics/build.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; - -fn main() -> Result<()> { - #[cfg(feature = "link")] - { - use simics_api::sys::SIMICS_VERSION; - use simics_link::link_simics_linux; - - #[cfg(target_family = "unix")] - link_simics_linux(SIMICS_VERSION)?; - - #[cfg(not(target_family = "unix"))] - compile_error!("Non-unix-like platforms are not yet supported"); - } - - println!("cargo:rerun-if-changed=build.rs"); - Ok(()) -} diff --git a/simics/src/lib.rs b/simics/src/lib.rs deleted file mode 100644 index 5d402561..00000000 --- a/simics/src/lib.rs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![forbid(unsafe_code)] -#![deny(clippy::unwrap_used)] - -extern crate num_traits; -#[macro_use] -extern crate num_derive; - -pub mod api; -pub mod link; -pub mod manifest; -pub mod module; -pub mod package; -pub mod project; -pub mod simics; -pub mod traits; -pub mod util; diff --git a/simics/src/link/mod.rs b/simics/src/link/mod.rs deleted file mode 100644 index 9281fb2d..00000000 --- a/simics/src/link/mod.rs +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Utilities for linking to the simics library. This linking process is only compatible -//! with Linux. - -use crate::{ - manifest::package_version, package::PublicPackageNumber, simics::home::simics_home, - util::find_file_in_dir, -}; -use anyhow::{anyhow, ensure, Result}; -use regex::Regex; -use std::{ - collections::HashSet, - process::{Command, Stdio}, -}; - -/// Emit cargo directives to link to SIMICS given a particular version constraint -pub fn link_simics_linux(version_constraint: S) -> Result<()> -where - S: AsRef, -{ - let simics_home_dir = simics_home()?; - - let simics_base_info = package_version( - &simics_home_dir, - PublicPackageNumber::Base.into(), - version_constraint.as_ref().parse()?, - )?; - let simics_base_version = simics_base_info.version.clone(); - let simics_base_dir = simics_base_info.path; - println!( - "Found simics base for version '{}' in {}", - version_constraint.as_ref(), - simics_base_dir.display() - ); - - let simics_common_lib = find_file_in_dir(&simics_base_dir, "libsimics-common.so")?; - println!( - "Found simics common library: {}", - simics_common_lib.display() - ); - - let simics_bin_dir = simics_home_dir - .join(format!("simics-{}", &simics_base_version)) - .join("bin"); - - ensure!( - simics_bin_dir.is_dir(), - "No bin directory found in {}", - simics_home_dir.display() - ); - - let mut output = Command::new("ld.so") - .arg(&simics_common_lib) - .stdout(Stdio::piped()) - .output() - .map_err(|e| { - eprintln!("Error running 'ld.so': {}", e); - }) - .ok(); - - if output.is_none() || output.as_ref().is_some_and(|o| !o.status.success()) { - output = Some( - Command::new("ldd") - .arg(simics_common_lib) - .stdout(Stdio::piped()) - .output() - .map_err(|e| { - eprintln!("Error running 'ldd': {}", e); - e - })?, - ); - } - - let output = output.ok_or_else(|| anyhow!("No output from 'ld.so' or 'ldd'"))?; - - ensure!( - output.status.success(), - "Command failed to obtain dependency listing" - ); - - let ld_line_pattern = Regex::new(r"\s*([^\s]+)\s*=>\s*(.*)")?; - let mut notfound_libs: Vec<_> = String::from_utf8_lossy(&output.stdout) - .lines() - .filter_map(|l| { - if let Some(captures) = ld_line_pattern.captures(l) { - captures.get(1) - } else { - None - } - }) - .map(|m| m.as_str().to_string()) - .collect(); - - if !notfound_libs.contains(&"libsimics-common.so".to_string()) { - notfound_libs.push("libsimics-common.so".to_string()); - } - - println!("Locating {}", notfound_libs.join(", ")); - - let mut lib_search_dirs = HashSet::new(); - - // NOTE: Right now, there aren't any recursive dependencies we need to worry about, it's only - // vtutils, package-paths, libpython, and libsimics-common. *if* this changes, we will need to - // reimplement this search recursively - println!("cargo:rustc-link-arg=-Wl,--disable-new-dtags"); - - for lib_name in notfound_libs { - if let Ok(found_lib) = find_file_in_dir(&simics_base_dir, &lib_name) { - // If we are running a build script right now, we will copy the library - let found_lib_parent = found_lib - .parent() - .ok_or_else(|| anyhow!("No parent path found"))?; - lib_search_dirs.insert(found_lib_parent.to_path_buf().canonicalize().map_err(|e| { - anyhow!( - "Failed to canonicalize found library parent path {}: {}", - found_lib_parent.display(), - e - ) - })?); - println!("cargo:rustc-link-lib=dylib:+verbatim={}", &lib_name); - } else { - eprintln!("Warning! Could not find simics dependency library {}. Chances are, it is a system library and this is OK.", lib_name); - } - } - - for lib_search_dir in &lib_search_dirs { - println!( - "cargo:rustc-link-search=native={}", - lib_search_dir.display() - ); - // println!( - // "cargo:rustc-link-arg=-Wl,-rpath,$ORIGIN/{}{}", - // UPDIR_MAX, - // lib_search_dir.display() - // ) - println!( - "cargo:rustc-link-arg=-Wl,-rpath,{}", - lib_search_dir.display() - ); - } - - // NOTE: This only works for `cargo run` and `cargo test` and won't work for just running - // the output binary - let search_dir_strings = lib_search_dirs - .iter() - .map(|pb| pb.to_string_lossy()) - .collect::>(); - - println!( - "cargo:rustc-env=LD_LIBRARY_PATH={}", - search_dir_strings.join(";") - ); - Ok(()) -} diff --git a/simics/src/manifest/mod.rs b/simics/src/manifest/mod.rs deleted file mode 100644 index 13028e71..00000000 --- a/simics/src/manifest/mod.rs +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Parse package manifest files and extract package specifications containing information about -//! files in the package, package version, etc. - -use anyhow::{anyhow, Result}; -use std::path::Path; -use version_tools::VersionConstraint; -use versions::Versioning; - -use crate::package::{packages, Package, PackageNumber}; - -/// Parse all SIMICS manifest(s) in the installation to determine the latest simics version and -/// return its manifest -pub fn package_latest

(simics_home: P, package_number: PackageNumber) -> Result -where - P: AsRef, -{ - let infos = packages(simics_home)?[&package_number].clone(); - - let max_base = infos - .into_iter() - .max_by_key(|k| Versioning::new(&k.0).expect("Invalid version string")) - .ok_or_else(|| anyhow!("No versions for base"))?; - - Ok(max_base.1) -} - -/// Find the latest version of the Simics Base package with a particular constraint. -pub fn package_version

( - simics_home: P, - package_number: PackageNumber, - version_constraint: VersionConstraint, -) -> Result -where - P: AsRef, -{ - let infos = packages(simics_home.as_ref())?[&package_number].clone(); - let version = infos - .keys() - .filter_map(|k| Versioning::new(k)) - .filter(|v| version_constraint.matches(v)) - .max() - .ok_or_else(|| { - anyhow!( - "No simics base package number {} matching version {:?} in {}. Got package infos {:?}", - package_number, - version_constraint, - simics_home.as_ref().display(), - infos - ) - })?; - - Ok(infos - .get(&version.to_string()) - .ok_or_else(|| anyhow!("No such version {} in {:?}", version, infos))? - .clone()) -} diff --git a/simics/src/module/mod.rs b/simics/src/module/mod.rs deleted file mode 100644 index c42ceaa4..00000000 --- a/simics/src/module/mod.rs +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Utilities for managing simics modules, specifically adding them to a project. -//! -//! Rust Simics Modules are Rust cdylib crates that are linked into a SIMICS module to provide -//! a way to essentially write your SIMICS module in Rust, or as a hybrid of Rust and C. They may -//! also provide a SIMICS interface so the module can be interacted with from C, DML, and -//! Python. -//! -//! A Simics Module specifies the directories for its module C source and optional -//! interface source in its `Cargo.toml`. For example, the canonical `tsffs_module`'s source -//! directory is laid out like so: -//! -//! - `tsffs_module` -//! - `stubs` -//! - `tsffs_module` -//! - `tsffs_module.c` -//! - `Makefile` -//! - `tsffs_module-interface` -//! - `tsffs_module-interface.h` -//! - `tsffs_module-interface.dml` -//! - `Makefile` -//! - `src` -//! - `Cargo.toml` -//! -//! The module source's only C file just defines the `init_local` function like so: -//! -//! ```c -//! void init_local(void) { -//! tsffs_init_local(); -//! } -//! ``` -//! -//! This function is a stub that calls into the linked Rust cdylib that provides the actual -//! functionality of the module. The Makefile can be set up however you need, whether you need to -//! link additional libraries, specify python scripts, etc. -//! -//! A Simics Module needs to specify a few keys in its `Cargo.toml` to inform this project -//! management system how it should be set up and built. -//! -//! The table `package.metadata.tsffs` can contain the following keys: -//! -//! - `module`: [Required] A relative path from the crate root to the directory containing the -//! `Makefile` for the module's C stub -//! - `lib`: [Required] A relative path in the SIMICS project to place the built cdylib. When the -//! `SimicsModule` is used in a `SimicsProject`, the resulting cdylib will be placed in -//! this location so that the module and (optionally) the interface Makefiles can locate -//! and link against it, probably using the `rpath` linker argument. This path must be a -//! path to a file, it cannot be a directory. Any subdirectories in the relative path -//! will be created if they do not exist. If the extension provided is `.so`, this -//! library will be copied from the `cdylib` crate output. If it is `.a`, this -//! library will be copied from the `staticlib` crate output. If the crate doesn't -//! have an output matching this field's library type, it is an error. -//! - `interface`: [Optional] A relative path from the crate root to the directory containing the -//! `Makefile` for the interface - -use crate::{project::Project, traits::Setup, util::copy_dir_contents}; -use anyhow::{anyhow, ensure, Error, Result}; -use artifact_dependency::Artifact; -use derive_builder::Builder; -use serde::{Deserialize, Serialize}; -use serde_json::from_value as from_json_value; -use std::{ - fs::{copy, create_dir_all}, - path::PathBuf, - process::{Command, Stdio}, -}; -use tracing::{debug, info}; - -#[derive(Clone, Eq, Hash, PartialEq, Debug, Serialize, Deserialize)] -pub struct ModuleCargoMetadata { - /// A relative path inside the module crate to the directory containing the module - /// Makefile for the module - module: String, - /// The relative path inside a simics project where the module's library will be - /// placed - lib: String, - /// The optional relative path inside the module crate to the directory containing - /// the interface Makefile for the module - interface: Option, -} - -impl TryFrom<&Artifact> for ModuleCargoMetadata { - type Error = Error; - fn try_from(value: &Artifact) -> Result { - from_json_value( - value - .package - .metadata - .get("module") - .ok_or_else(|| anyhow!("No field 'module' in package.metadata"))? - .clone(), - ) - .map_err(|e| { - anyhow!( - "Could not extract module metadata from package artifact {:?}: {}", - value, - e - ) - }) - } -} - -#[derive(Builder, Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)] -#[builder(build_fn(skip))] -/// A built module, including the built artifact object (shared object, binary, etc) and the -/// metadata for the crate that built the artifact -pub struct Module { - #[builder(setter(skip))] - pub metadata: ModuleCargoMetadata, - pub artifact: Artifact, -} - -impl ModuleBuilder { - pub fn build(&self) -> Result { - Ok(Module { - metadata: self - .artifact - .as_ref() - .map(ModuleCargoMetadata::try_from) - .ok_or_else(|| anyhow!("No artifact set, could not extract metadata"))??, - - artifact: self - .artifact - .as_ref() - .ok_or_else(|| anyhow!("No artifact set, could not create module")) - .cloned()?, - }) - } -} - -impl Setup for Module { - /// Add the files for a module to a project, compile the module with its stub and interface - /// files, and make them available to load and run in SIMICS - fn setup(&self, project: &Project) -> Result<&Self> - where - Self: Sized, - { - debug!( - "Setting up module {} from {}", - self.artifact.package.name, - self.artifact.path.display() - ); - let lib_target_path = project.path.path.join(&self.metadata.lib); - lib_target_path - .parent() - .ok_or_else(|| anyhow!("No parent of library path {}", lib_target_path.display())) - .and_then(|p| { - create_dir_all(p) - .map_err(|e| anyhow!("Couldn't create directory {}: {}", p.display(), e)) - }) - .and_then(|_| { - copy(&self.artifact.path, &lib_target_path).map_err(|e| { - anyhow!( - "Couldn't copy module library artifact from {} to {}: {}", - self.artifact.path.display(), - lib_target_path.display(), - e - ) - }) - })?; - - let module_src_path: PathBuf = self - .artifact - .package - .manifest_path - .parent() - .ok_or_else(|| { - anyhow!( - "No parent of package manifest path {}", - self.artifact.package.manifest_path - ) - })? - .join(&self.metadata.module) - .into(); - - let module_dir_name = module_src_path - .components() - .last() - .ok_or_else(|| anyhow!("No final path component of {}", module_src_path.display()))? - .as_os_str() - .to_string_lossy() - .to_string(); - - let module_target_path = project.path.path.join("modules").join(&module_dir_name); - - create_dir_all(&module_target_path)?; - copy_dir_contents(&module_src_path, &module_target_path)?; - - if let Some(interface_src_dir) = self.metadata.interface.as_ref() { - let interface_src_path: PathBuf = self - .artifact - .package - .manifest_path - .parent() - .ok_or_else(|| { - anyhow!( - "No parent of package manifest path {}", - self.artifact.package.manifest_path - ) - })? - .join(interface_src_dir) - .into(); - - let interface_target_path = project.path.path.join("modules").join( - interface_src_path.components().last().ok_or_else(|| { - anyhow!( - "No final path component of {}", - interface_src_path.display() - ) - })?, - ); - create_dir_all(&interface_target_path)?; - copy_dir_contents(&interface_src_path, &interface_target_path)?; - } - - info!("Running make in project"); - - let output = Command::new("make") - .current_dir(&project.path.path) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .output()?; - - output.status.success().then_some(()).ok_or_else(|| { - anyhow!( - "Failed to run make:\nstdout: {}\nstderr: {}", - String::from_utf8_lossy(&output.stdout), - String::from_utf8_lossy(&output.stderr) - ) - })?; - - #[cfg(target_family = "unix")] - let lib_build_path = project - .path - .path - .join("linux64") - .join("lib") - .join(&module_dir_name) - .with_extension("so"); - - ensure!( - lib_build_path.exists(), - "Failed to build module library {}", - lib_build_path.display() - ); - - Ok(self) - } -} diff --git a/simics/src/package/mod.rs b/simics/src/package/mod.rs deleted file mode 100644 index 01d894e7..00000000 --- a/simics/src/package/mod.rs +++ /dev/null @@ -1,367 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Utilities for managing SIMICS packages, reading and writing their metadata, and creating -//! packages from a specification - -use crate::simics::home::simics_home; -use anyhow::{anyhow, bail, Error, Result}; -use derive_builder::Builder; -use itertools::Itertools; -use num::{FromPrimitive, ToPrimitive}; -use serde::{Deserialize, Serialize}; -use std::{ - collections::HashMap, - fmt::Debug, - fs::{read_dir, read_to_string}, - path::{Path, PathBuf}, - str::FromStr, -}; -use tracing::{error, warn}; -use version_tools::VersionConstraint; -use versions::Versioning; - -pub type PackageVersion = String; -pub type PackageNumber = i64; - -#[derive(Hash, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Debug, FromPrimitive, ToPrimitive)] -#[repr(i64)] -/// Numbers for public SIMICS packages. These numbers can be used to conveniently specify package -/// numbers -pub enum PublicPackageNumber { - QspClearLinux = 4094, - QspCpu = 8112, - QspIsim = 8144, - DoceaBase = 7801, - OssSources = 1020, - Training = 6010, - Viewer = 8126, - QspX86 = 2096, - Base = 1000, - Error = -1, -} - -impl From for PublicPackageNumber { - fn from(value: i64) -> Self { - FromPrimitive::from_i64(value).unwrap_or(PublicPackageNumber::Error) - } -} - -impl From for i64 { - fn from(val: PublicPackageNumber) -> Self { - ToPrimitive::to_i64(&val).expect("Invalid conversion to i64") - } -} - -pub fn parse_packageinfo

(package_path: P) -> Result -where - P: AsRef, -{ - let package_path = package_path.as_ref().to_path_buf(); - - if !package_path.is_dir() { - bail!( - "Package path {} does not exist or is not a directory", - package_path.display() - ); - } - - let packageinfo_path = package_path.join("packageinfo"); - - if !packageinfo_path.is_dir() { - bail!( - "Package info path {} does not exist or is not a directory", - packageinfo_path.display() - ); - } - - let package_home = package_path - .parent() - .ok_or_else(|| anyhow!("No parent of package path {}", package_path.display()))? - .to_path_buf(); - - read_dir(&packageinfo_path) - .map_err(|e| { - anyhow!( - "Failed to read packageinfo directory {}: {}", - packageinfo_path.display(), - e - ) - }) - .and_then(|packageinfo_entries| { - packageinfo_entries - .into_iter() - .take(1) - .next() - .ok_or_else(|| { - anyhow!( - "No entries in packageinfo directory {}", - packageinfo_path.display() - ) - }) - .map(|packageinfo_manifest| { - packageinfo_manifest - .map(|packageinfo_manifest| packageinfo_manifest.path()) - .map_err(|e| anyhow!("Couldn't get entry for manifest: {}", e)) - }) - })? - .and_then(|packageinfo_manifest| { - read_to_string(&packageinfo_manifest) - .map_err(|e| { - anyhow!( - "Failed to read manifest {}: {}", - packageinfo_manifest.display(), - e - ) - }) - .map(|packageinfo_contents| { - packageinfo_contents.parse().map(|mut package: Package| { - package.home = package_home.clone(); - package.path = package_path.clone(); - package - }) - }) - })? -} - -/// Get all the package information of all packages in the `simics_home` installation directory as -/// a mapping between the package number and a nested mapping of package version to the package -/// info for the package -pub fn packages

(home: P) -> Result>> -where - P: AsRef, -{ - let mut infos: Vec = read_dir(&home)? - .filter_map(|home_dir_entry| { - home_dir_entry - .map_err(|e| error!("Could not read directory entry: {}", e)) - .ok() - }) - .filter_map(|home_dir_entry| { - let package_path = home_dir_entry.path(); - parse_packageinfo(&package_path) - .map_err(|e| { - warn!( - "Could not parse package info from package at {}: {}", - package_path.display(), - e - ) - }) - .ok() - }) - .collect(); - - infos.sort_unstable_by(|a, b| a.package_number.cmp(&b.package_number)); - - Ok(infos - .iter() - .group_by(|p| p.package_number) - .into_iter() - .map(|(k, g)| { - let g: Vec<_> = g.collect(); - ( - k, - g.iter() - .map(|p| (p.version.clone(), (*p).clone())) - .collect(), - ) - }) - .collect()) -} - -#[derive(Builder, Clone, Serialize, Deserialize, Hash, Eq, PartialEq)] -#[builder(setter(skip), build_fn(skip))] -pub struct Package { - #[serde(skip)] - #[builder(setter(into))] - /// The SIMICS Home directory. You should never need to manually specify this. - pub home: PathBuf, - #[serde(skip)] - #[builder(setter(into, name = "version"))] - /// The version string for the package - pub version_constraint: VersionConstraint, - #[serde(skip)] - pub path: PathBuf, - /// The package name - pub name: String, - /// The package description - pub description: String, - /// The version string for the package - pub version: String, - #[serde(rename = "extra-version")] - /// The extra version string for the package, usually blank - pub extra_version: String, - //// Host type, e.g. `linux64` - pub host: String, - /// Whether the package is public or private - pub confidentiality: String, - #[serde(rename = "package-name")] - /// The name of the package, again (this field is typically the same as `name`) - pub package_name: String, - #[serde(rename = "package-number")] - #[builder(setter(into))] - /// The package number - pub package_number: PackageNumber, - #[serde(rename = "build-id")] - /// A monotonically increasing build ID for the package number - pub build_id: u64, - #[serde(rename = "build-id-namespace")] - /// Namespace for build IDs, `simics` for public/official packages - pub build_id_namespace: String, - #[serde(rename = "type")] - /// The type of package, typically either `base` or `addon` - pub typ: String, - #[serde(rename = "package-name-full")] - /// Long package name - pub package_name_full: String, - /// Complete list of files in the package - pub files: Vec, -} - -impl TryFrom for Package { - type Error = Error; - fn try_from(value: PathBuf) -> Result { - let mut package = parse_packageinfo(&value)?; - package.home = value - .parent() - .ok_or_else(|| anyhow!("No parent directory for package path {}", value.display()))? - .to_path_buf(); - package.path = value; - Ok(package) - } -} - -impl Debug for Package { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Package") - .field("home", &self.home) - .field("version_constraint", &self.version_constraint) - .field("path", &self.path) - .field("name", &self.name) - .field("description", &self.description) - .field("version", &self.version) - .field("extra_version", &self.extra_version) - .field("host", &self.host) - .field("confidentiality", &self.confidentiality) - .field("package_name", &self.package_name) - .field("package_number", &self.package_number) - .field("build_id", &self.build_id) - .field("build_id_namespace", &self.build_id_namespace) - .field("typ", &self.typ) - .field("package_name_full", &self.package_name_full) - .field("files", &"[...]") - .finish() - } -} - -impl PackageBuilder { - pub fn build(&mut self) -> Result { - let home = self.home.as_ref().cloned().unwrap_or(simics_home()?); - - let package_number = self - .package_number - .ok_or_else(|| anyhow!("No package number set"))?; - - let packages = packages(&home)?; - let packages_for_number = packages.get(&package_number).ok_or_else(|| { - anyhow!( - "No package found with number {} in {}", - package_number, - home.display() - ) - })?; - - let package_version = self - .version_constraint - .as_ref() - .cloned() - .unwrap_or("*".parse()?); - - let version = packages_for_number - .keys() - .filter_map(|k| Versioning::new(k)) - .filter(|v| package_version.matches(v)) - .max() - .ok_or_else(|| anyhow!("No version found"))?; - - packages_for_number - .get(&version.to_string()) - .ok_or_else(|| { - anyhow!( - "No version {} found for package {} in {}", - version, - package_number, - home.display() - ) - }) - .cloned() - } -} - -impl Package { - /// A default, blank, package info structure - fn try_default() -> Result { - Ok(Self::blank_in_at(simics_home()?, PathBuf::from(""))) - } - - fn blank_in_at(home: PathBuf, path: PathBuf) -> Self { - Self { - home, - path, - version_constraint: VersionConstraint::default(), - name: "".to_string(), - description: "".to_string(), - version: "".to_string(), - extra_version: "".to_string(), - host: "".to_string(), - confidentiality: "".to_string(), - package_name: "".to_string(), - package_number: -1, - build_id: 0, - build_id_namespace: "".to_string(), - typ: "".to_string(), - package_name_full: "".to_string(), - files: vec![], - } - } -} - -impl FromStr for Package { - type Err = Error; - fn from_str(s: &str) -> Result { - let mut package = Package::try_default()?; - - s.lines().for_each(|l| { - if l.trim_start() != l { - // There is some whitespace at the front - package.files.push(l.trim().to_string()); - } else { - let kv: Vec<&str> = l.split(':').map(|lp| lp.trim()).collect(); - if let Some(k) = kv.first() { - if let Some(v) = kv.get(1) { - match k.to_string().as_str() { - "name" => package.name = v.to_string(), - "description" => package.description = v.to_string(), - "version" => package.version = v.to_string(), - "extra-version" => package.extra_version = v.to_string(), - "host" => package.host = v.to_string(), - "confidentiality" => package.confidentiality = v.to_string(), - "package-name" => package.package_name = v.to_string(), - "package-number" => { - package.package_number = - v.to_string().parse().unwrap_or(0).try_into().unwrap_or(-1) - } - "build-id" => package.build_id = v.to_string().parse().unwrap_or(0), - "build-id-namespace" => package.build_id_namespace = v.to_string(), - "type" => package.typ = v.to_string(), - "package-name-full" => package.package_name_full = v.to_string(), - _ => {} - } - } - } - } - }); - - Ok(package) - } -} diff --git a/simics/src/project/mod.rs b/simics/src/project/mod.rs deleted file mode 100644 index 458c2466..00000000 --- a/simics/src/project/mod.rs +++ /dev/null @@ -1,802 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Simics Project -//! -//! Tools for managing simics projects, including linking to simics, loading -//! modules, and creating and destroying temporary project directories, and actually running -//! the SIMICS process after configuration - -use crate::{ - module::Module, - package::{Package, PackageBuilder, PublicPackageNumber}, - simics::home::simics_home, - traits::Setup, - util::copy_dir_contents, -}; -use anyhow::{anyhow, bail, ensure, Error, Result}; -use derive_builder::Builder; -use simics_api::sys::SIMICS_VERSION; -use std::{ - collections::{HashMap, HashSet}, - fmt::Debug, - fs::{copy, create_dir_all, read_to_string, set_permissions, OpenOptions, Permissions}, - io::{ErrorKind, Write}, - os::unix::{fs::symlink, prelude::PermissionsExt}, - path::{Component, Path, PathBuf}, - process::{Command, Stdio}, - str::FromStr, -}; -use strum::{AsRefStr, Display}; -use tmp_dir::{TmpDir, TmpDirBuilder}; -use tracing::{debug, error, info}; -use version_tools::VersionConstraint; - -/// CAUTION: This does not resolve symlinks (unlike -/// [`std::fs::canonicalize`]). This may cause incorrect or surprising -/// behavior at times. This should be used carefully. Unfortunately, -/// [`std::fs::canonicalize`] can be hard to use correctly, since it can often -/// fail, or on Windows returns annoying device paths. This is a problem Cargo -/// needs to improve on. -/// -/// # Notes -/// -/// - Taken from the `cargo` project which is Apache/MIT dual licensed -/// https://github.com/rust-lang/cargo/blob/fede83ccf973457de319ba6fa0e36ead454d2e20/src/cargo/util/paths.rs#L61 -pub fn normalize_path

(path: P) -> PathBuf -where - P: AsRef, -{ - let mut components = path.as_ref().components().peekable(); - let mut ret = if let Some(c @ Component::Prefix(..)) = components.peek().cloned() { - components.next(); - PathBuf::from(c.as_os_str()) - } else { - PathBuf::new() - }; - - for component in components { - match component { - Component::Prefix(..) => unreachable!(), - Component::RootDir => { - ret.push(component.as_os_str()); - } - Component::CurDir => {} - Component::ParentDir => { - ret.pop(); - } - Component::Normal(c) => { - ret.push(c); - } - } - } - ret -} - -#[derive(Debug, Clone)] -pub struct SimicsPath { - from: Option, - to: PathBuf, -} - -impl SimicsPath { - fn new

(p: P, from: Option) -> Self - where - P: AsRef, - { - if from.is_some() { - let to = p.as_ref().to_path_buf().components().skip(1).collect(); - Self { from, to } - } else { - Self { - from: None, - to: p.as_ref().to_path_buf(), - } - } - } - - pub fn simics

(p: P) -> Self - where - P: AsRef, - { - Self::new(p, Some(SimicsPathMarker::Simics)) - } - - pub fn script

(p: P) -> Self - where - P: AsRef, - { - Self::new(p, Some(SimicsPathMarker::Script)) - } - - pub fn path

(p: P) -> Self - where - P: AsRef, - { - Self::new(p, None) - } - - pub fn canonicalize

(&self, base: P) -> Result - where - P: AsRef, - { - debug!( - "Canonicalizing {:?} on base {}", - self, - base.as_ref().display() - ); - let canonicalized = match self.from { - Some(SimicsPathMarker::Script) => bail!("Script relative paths are not supported"), - Some(SimicsPathMarker::Simics) => { - let p = normalize_path( - base.as_ref() - .to_path_buf() - .canonicalize() - .map_err(|e| { - anyhow!( - "Could not canonicalize base path for simics path {}: {}", - base.as_ref().display(), - e - ) - })? - .join(&self.to), - ); - p.starts_with(base.as_ref()) - .then_some(p.clone()) - .ok_or_else(|| { - anyhow!( - "Canonicalized non-simics path {} is not relative to the base path {}", - p.display(), - base.as_ref().display() - ) - })? - } - None => { - let p = normalize_path(&self.to); - if p.is_absolute() { - p.starts_with(base.as_ref()) - .then_some(p.clone()) - .ok_or_else(|| { - anyhow!( - "Canonicalized non-simics path {} is not relative to the base path {}", - p.display(), - base.as_ref().display() - ) - })? - } else { - let p = normalize_path( - base.as_ref() - .to_path_buf() - .canonicalize() - .map_err(|e| { - anyhow!( - "Could not canonicalize base path for simics path {}: {}", - base.as_ref().display(), - e - ) - })? - .join(&self.to), - ); - p.starts_with(base.as_ref()) - .then_some(p.clone()) - .ok_or_else(|| { - anyhow!( - "Canonicalized non-simics path {} is not relative to the base path {}", - p.display(), - base.as_ref().display() - ) - })? - } - } - }; - debug!( - "Canonicalized simics path {:?} to {}", - self, - canonicalized.display() - ); - Ok(canonicalized) - } -} - -impl From for SimicsPath { - fn from(value: PathBuf) -> Self { - Self::path(value) - } -} - -impl FromStr for SimicsPath { - type Err = Error; - - fn from_str(s: &str) -> Result { - let p = PathBuf::from(s); - Ok(match p.components().next() { - Some(c) if c.as_os_str() == SimicsPathMarker::Script.as_ref() => Self::script(s), - Some(c) if c.as_os_str() == SimicsPathMarker::Simics.as_ref() => Self::simics(s), - _ => Self::path(PathBuf::from(s)), - }) - } -} - -impl TryFrom<&str> for SimicsPath { - type Error = Error; - - fn try_from(value: &str) -> Result { - value.parse() - } -} - -#[derive(Debug, Clone, AsRefStr, Display)] -enum SimicsPathMarker { - /// `%simics%` - #[strum(serialize = "%simics%")] - Simics, - /// `%script%` - #[strum(serialize = "%script%")] - Script, -} - -#[derive(Debug)] -pub struct ProjectPath { - pub path: PathBuf, - temporary: Option, -} - -impl ProjectPath { - const PREFIX: &'static str = "project"; - - fn default() -> Result { - // By default, remove_on_drop is false, because if it is set to true before the launcher - // is spawned, we will remove it twice (not good) - let tmp = TmpDirBuilder::default() - .prefix(Self::PREFIX) - .remove_on_drop(false) - .build()?; - Ok(Self { - path: tmp.path().to_path_buf(), - temporary: Some(tmp), - }) - } - - pub fn remove_on_drop(&mut self, remove_on_drop: bool) { - if let Some(temporary) = self.temporary.as_mut() { - temporary.remove_on_drop(remove_on_drop); - } - } -} - -impl

From

for ProjectPath -where - P: AsRef, -{ - fn from(value: P) -> Self { - Self { - path: value.as_ref().to_path_buf(), - temporary: None, - } - } -} - -#[derive(Clone, Debug, Eq, PartialEq, Hash)] -pub struct PropertiesMd5Entry { - path: String, - // Always 'MD5' - hash_type: String, - hash: String, -} - -impl PropertiesMd5Entry { - pub const SEPARATOR: &'static str = "MD5"; -} - -impl FromStr for PropertiesMd5Entry { - type Err = Error; - fn from_str(s: &str) -> Result { - let cols = s - .split(Self::SEPARATOR) - .map(|c| c.trim()) - .collect::>(); - Ok(Self { - path: cols - .first() - .ok_or_else(|| anyhow!("No path column in {}", s))? - .to_string(), - hash_type: Self::SEPARATOR.to_string(), - hash: cols - .get(1) - .ok_or_else(|| anyhow!("No hash column in {}", s))? - .to_string(), - }) - } -} - -pub struct PropertiesMd5 { - _md5: HashSet, -} - -impl FromStr for PropertiesMd5 { - type Err = Error; - fn from_str(s: &str) -> Result { - Ok(Self { - _md5: s - .lines() - .filter_map(|l| { - l.parse() - .map_err(|e| { - error!("Error parsing line {} into md5 entry", e); - e - }) - .ok() - }) - .collect(), - }) - } -} - -pub struct PropertiesPaths { - _project: String, - simics_root: String, - _simics_model_builder: String, - _mingw: String, -} - -impl FromStr for PropertiesPaths { - type Err = Error; - fn from_str(s: &str) -> Result { - let paths = s - .lines() - .map(|l| l.split(':').map(|l| l.trim()).collect::>()) - .map(|l| { - ( - l.first().map(|k| k.to_string()).unwrap_or("".to_owned()), - l.get(1).map(|v| v.to_string()).unwrap_or("".to_owned()), - ) - }) - .collect::>(); - Ok(Self { - _project: paths - .get("project") - .cloned() - .ok_or_else(|| anyhow!("No field project in {}", s))?, - simics_root: paths - .get("simics-root") - .cloned() - .ok_or_else(|| anyhow!("No field simics-root in {}", s))?, - _simics_model_builder: paths - .get("simics-model-builder") - .cloned() - .ok_or_else(|| anyhow!("No field simics-model-builder in {}", s))?, - _mingw: paths - .get("mingw") - .cloned() - .ok_or_else(|| anyhow!("No field mingw in {}", s))?, - }) - } -} - -pub struct Properties { - _md5: PropertiesMd5, - paths: PropertiesPaths, -} - -impl TryFrom for Properties { - type Error = Error; - fn try_from(value: PathBuf) -> Result { - Self::try_from(&value) - } -} -impl TryFrom<&PathBuf> for Properties { - type Error = Error; - fn try_from(value: &PathBuf) -> Result { - let properties_dir = value.join(".project-properties"); - let md5_path = properties_dir.join("project-md5"); - let paths_path = properties_dir.join("project-paths"); - Ok(Self { - _md5: read_to_string(md5_path)?.parse()?, - paths: read_to_string(paths_path)?.parse()?, - }) - } -} - -#[derive(Builder)] -#[builder(pattern = "owned", build_fn(error = "Error"))] -pub struct Project { - #[builder(setter(into), default = "ProjectPath::default()?")] - /// The path to the project base directory. - pub path: ProjectPath, - #[builder( - setter(into), - default = r#" - PackageBuilder::default() - .package_number(PublicPackageNumber::Base) - .version(SIMICS_VERSION.parse::()?) - .home(self.home.as_ref().cloned().unwrap_or(simics_home()?)) - .build()? - "# - )] - /// The base version constraint to use when building the project. You should never - /// have to specify this. - base: Package, - #[builder(setter(into), default = "simics_home()?")] - /// The SIMICS Home directory. You should never need to manually specify this. - home: PathBuf, - #[builder(setter(each(name = "package", into), into), default)] - packages: HashSet, - #[builder(setter(each(name = "module", into), into), default)] - modules: HashSet, - #[builder(setter(each(name = "directory", into), into), default)] - directories: HashMap, - #[builder(setter(each(name = "file", into), into), default)] - files: HashMap, - #[builder(setter(each(name = "file_content", into), into), default)] - file_contents: HashMap, SimicsPath>, - #[builder(setter(each(name = "path_symlink", into), into), default)] - path_symlinks: HashMap, -} - -impl Project { - pub fn base(&self) -> &Package { - &self.base - } - - pub fn home(&self) -> &Path { - &self.home - } - - pub fn packages(&self) -> &HashSet { - &self.packages - } - - pub fn modules(&self) -> &HashSet { - &self.modules - } - - pub fn directories(&self) -> &HashMap { - &self.directories - } - - pub fn files(&self) -> &HashMap { - &self.files - } - - pub fn file_contents(&self) -> &HashMap, SimicsPath> { - &self.file_contents - } - - pub fn path_symlinks(&self) -> &HashMap { - &self.path_symlinks - } -} - -impl TryFrom for Project { - type Error = Error; - - /// Initialize a project from an existing project on disk - fn try_from(value: PathBuf) -> Result { - let properties = Properties::try_from(&value) - .map_err(|e| anyhow!("Failed to get properties from '{}': {}", value.display(), e))?; - let simics_root = PathBuf::from(&properties.paths.simics_root); - let home = simics_root - .parent() - .ok_or_else(|| anyhow!("No parent found for {}", properties.paths.simics_root))?; - let base = Package::try_from(PathBuf::from(properties.paths.simics_root))?; - let packages = read_to_string(value.join(".package-list")) - .unwrap_or_default() - .lines() - .filter(|s| !s.trim().is_empty()) - .filter_map(|l| { - PathBuf::from(l.trim()) - .canonicalize() - .map_err(|e| { - anyhow!("Error canonicalizing package list entry path {}: {}", l, e) - }) - .ok() - }) - .map(Package::try_from) - .filter_map(|p| { - p.map_err(|e| { - error!("Error parsing package: {}", e); - e - }) - .ok() - }) - .collect::>(); - Ok(Self { - path: value.into(), - base, - home: home.to_path_buf(), - packages, - // TODO: Get modules back from disk by grabbing the manifest or something, we probably - // want to know a module came from us - modules: HashSet::new(), - // TODO: We don't *need* to keep track of dir/file/contents/symlinks - // (if the project already exists, we can assume we aren't responsible for cleaning - // up files or dirs from disk or anything, and they already exist so we don't ened to - // configure them. That said, we *could* and it might be helpful) - directories: HashMap::new(), - files: HashMap::new(), - file_contents: HashMap::new(), - path_symlinks: HashMap::new(), - }) - } -} - -impl Project { - fn setup_project(&mut self) -> Result<()> { - if !self.path.path.is_dir() { - debug!( - "Project path {} does not exist. Creating it.", - self.path.path.display() - ); - create_dir_all(&self.path.path)?; - set_permissions(&self.path.path, Permissions::from_mode(0o750))?; - } - - self.path.path = self.path.path.canonicalize()?; - - let (project_setup, extra_args) = if self.base.path.join(".project-properties").is_dir() { - // The project already exists, we don't need to instruct on how to create the project - (self.path.path.join("bin").join("project-setup"), vec![]) - } else { - // Creating a new project, we will ignore existing files and add all build systems - ( - self.base.path.join("bin").join("project-setup"), - vec!["--ignore-existing-files"], - ) - }; - - ensure!( - project_setup.exists(), - "Could not find `project-setup` binary at '{}'", - project_setup.display() - ); - - info!("Setting up project at {}", self.path.path.display()); - - let output = Command::new(&project_setup) - .args(&extra_args) - // self.path.path always exists already at this point, so we will project-setup . - .arg(".") - .current_dir(&self.path.path) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .output()?; - - output.status.success().then_some(()).ok_or_else(|| { - anyhow!( - "Failed to run {}:\nstdout: {}\nstderr: {}", - project_setup.display(), - String::from_utf8_lossy(&output.stdout), - String::from_utf8_lossy(&output.stderr) - ) - }) - } - - fn setup_project_directories(&self) -> Result<()> { - self.directories.iter().try_for_each(|(src, dst)| { - debug!("Adding directory {} to {:?}", src.display(), dst); - dst.canonicalize(&self.path.path) - .map_err(|e| { - anyhow!( - "Failed to canonicalize project path {}: {}", - self.path.path.display(), - e - ) - }) - .and_then(|dst| copy_dir_contents(src, &dst)) - }) - } - - fn setup_project_files(&self) -> Result<()> { - self.files.iter().try_for_each(|(src, dst)| { - debug!("Adding file {} to {:?}", src.display(), dst); - dst.canonicalize(&self.path.path).and_then(|dst| { - dst.parent() - .ok_or_else(|| { - error!("No parent directory of destination path {}", dst.display()); - anyhow!("No parent directory of destination path {}", dst.display()) - }) - .and_then(|p| { - create_dir_all(p).map_err(|e| { - error!("Couldn't create directory {}: {}", p.display(), e); - anyhow!("Couldn't create directory {}: {}", p.display(), e) - }) - }) - .and_then(|_| { - copy(src, &dst).map_err(|e| { - error!("Couldn't copy {} to {:?}: {}", src.display(), dst, e); - anyhow!("Couldn't copy {} to {:?}: {}", src.display(), dst, e) - }) - }) - .map(|_| ()) - }) - }) - } - - fn setup_project_file_contents(&self) -> Result<()> { - self.file_contents.iter().try_for_each(|(contents, dst)| { - debug!("Adding contents to {:?}", dst); - dst.canonicalize(&self.path.path).and_then(|dst| { - dst.parent() - .ok_or_else(|| { - anyhow!("No parent directory of destination path {}", dst.display()) - }) - .and_then(|p| { - debug!("Creating directory {}", p.display()); - create_dir_all(p).map_err(|e| { - anyhow!("Couldn't create directory {}: {}", p.display(), e) - }) - }) - .and_then(|_| { - debug!("Writing file {}", dst.display()); - OpenOptions::new() - .write(true) - .truncate(true) - .create(true) - .open(&dst) - .map_err(|e| anyhow!("Couldn't open file {}: {}", dst.display(), e)) - .and_then(|mut f| { - f.write_all(contents).map_err(|e| { - anyhow!("Couldn't write to file {}: {}", dst.display(), e) - }) - }) - }) - }) - }) - } - - fn setup_project_symlinks(&self) -> Result<()> { - self.path_symlinks.iter().try_for_each(|(src, dst)| { - debug!("Adding symlink from {} to {:?}", src.display(), dst); - dst.canonicalize(&self.path.path).and_then(|dst| { - dst.parent() - .ok_or_else(|| { - anyhow!("No parent directory of destination path {}", dst.display()) - }) - .and_then(|p| { - create_dir_all(p).map_err(|e| { - anyhow!("Couldn't create directory {}: {}", p.display(), e) - }) - }) - .and_then(|_| { - symlink(src, &dst).map_err(|e| { - anyhow!( - "Couldn't create symlink from {} to {}: {}", - src.display(), - dst.display(), - e - ) - }) - }) - }) - }) - } - - fn setup_project_contents(&self) -> Result<()> { - self.setup_project_directories()?; - self.setup_project_files()?; - self.setup_project_file_contents()?; - self.setup_project_symlinks()?; - Ok(()) - } - - fn setup_packages(&self) -> Result<()> { - let mut packages = read_to_string(self.path.path.join(".package-list")) - .or_else(|e| { - matches!(e.kind(), ErrorKind::NotFound) - .then(String::new) - .ok_or_else(|| anyhow!("Couldn't read existing .package-list file: {}", e)) - })? - .lines() - .map(|l| Package::try_from(PathBuf::from(l))) - .collect::>>()?; - packages.extend(self.packages.iter().cloned()); - let packages_string = packages - .iter() - .map(|p| { - info!("Adding package {}", p.name); - p.path.to_string_lossy().to_string() - }) - .collect::>() - .join("\n"); - OpenOptions::new() - .create(true) - .write(true) - .truncate(true) - .open(self.path.path.join(".package-list")) - .map_err(|e| { - anyhow!( - "Couldn't open file {}: {}", - self.path.path.join(".package-list").display(), - e - ) - }) - .and_then(|mut f| { - f.write_all(packages_string.as_bytes()) - .map_err(|e| anyhow!("Couldn't write packages list: {}", e)) - .map(|_| ()) - })?; - - debug!("Wrote .package-list file"); - - ensure!( - self.path.path.exists(), - "Project path '{}' did not exist when setting up packages", - self.path.path.display() - ); - - let output = Command::new("bin/project-setup") - // self.path.path always exists at this point, so we run project-setup . - .arg(".") - .current_dir(&self.path.path) - .stdout(Stdio::piped()) - .stderr(Stdio::piped()) - .output() - .map_err(|e| { - error!("Failed to run command 'bin/project-setup': {}", e); - e - })?; - - output - .status - .success() - .then_some(()) - .ok_or_else(|| { - error!("Failed setting up project"); - anyhow!( - "Failed to run 'bin/project-setup':\nstdout: {}\nstderr: {}", - String::from_utf8_lossy(&output.stdout), - String::from_utf8_lossy(&output.stderr) - ) - }) - .map(|_| { - info!("Set up project with packages"); - }) - } - - fn setup_modules(&self) -> Result<()> { - self.modules.iter().try_for_each(|m| { - info!("Adding module {}", m.artifact.package.name); - m.setup(self).map(|_| ()) - }) - } - - pub fn setup(mut self) -> Result { - self.setup_project()?; - self.setup_project_contents()?; - self.setup_packages()?; - self.setup_modules()?; - Ok(self) - } -} - -impl From for ProjectBuilder { - fn from(value: Project) -> Self { - Self { - path: Some(value.path), - base: Some(value.base), - home: Some(value.home), - packages: Some(value.packages), - modules: Some(value.modules), - directories: Some(value.directories), - files: Some(value.files), - file_contents: Some(value.file_contents), - path_symlinks: Some(value.path_symlinks), - } - } -} - -impl Debug for Project { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Project") - .field("path", &self.path) - .field("base", &self.base) - .field("home", &self.home) - .field("packages", &self.packages) - .field("modules", &self.modules) - .field("directories", &self.directories) - .field("files", &self.files) - .field("file_contents", &self.file_contents.values()) - .field("path_symlinks", &self.path_symlinks) - .finish() - } -} diff --git a/simics/src/simics/home.rs b/simics/src/simics/home.rs deleted file mode 100644 index de66ca38..00000000 --- a/simics/src/simics/home.rs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Source of trust for identifying the SIMICS home location - -use anyhow::{bail, Result}; -use dotenvy_macro::dotenv; -use std::path::PathBuf; - -const SIMICS_HOME: &str = dotenv!("SIMICS_HOME"); - -/// Return the SIMICS_HOME directory as a PathBuf. This depends on the SIMICS_HOME environment -/// variable being defined at compile time, and runtime changes to this variable will have no -/// effect. -pub fn simics_home() -> Result { - let simics_home = PathBuf::from(SIMICS_HOME); - match simics_home.exists() { - true => Ok(simics_home), - false => { - bail!( - "SIMICS_HOME is defined, but {} does not exist.", - SIMICS_HOME - ) - } - } -} diff --git a/simics/src/simics/mod.rs b/simics/src/simics/mod.rs deleted file mode 100644 index 1b3752ae..00000000 --- a/simics/src/simics/mod.rs +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! High level control of SIMICS running inside the current process - -use anyhow::{bail, Result}; -use simics_api::{ - clear_exception, continue_simulation_alone, free_attribute, init_command_line, - init_environment, init_simulator, last_error, main_loop, run_command, run_python, - source_python, InitArgs, SimException, -}; -use std::{env::current_exe, path::Path}; -use tracing::{error, info}; - -pub mod home; - -pub struct Simics {} - -impl Simics { - pub fn try_init(mut args: InitArgs) -> Result<()> { - let exe = current_exe()?; - let argv = &[exe.to_string_lossy()]; - init_environment(argv, false, false)?; - init_simulator(&mut args); - Ok(()) - } - - #[allow(unreachable_code)] - pub fn run() -> ! { - continue_simulation_alone(); - main_loop(); - error!("Main loop exited while running simulation. This indicates a problem."); - } - - #[allow(unreachable_code)] - pub fn interactive() -> ! { - init_command_line(); - main_loop(); - error!("Main loop exited while running simulation. This indicates a problem."); - } - - pub fn command(command: S) -> Result<()> - where - S: AsRef, - { - info!("Running SIMICS command {}", command.as_ref()); - free_attribute(run_command(command)?); - - Ok(()) - } - - pub fn python

(file: P) -> Result<()> - where - P: AsRef, - { - info!("Running SIMICS Python file {}", file.as_ref().display()); - source_python(file) - } - - pub fn config

(file: P) -> Result<()> - where - P: AsRef, - { - info!("Running SIMICS config {}", file.as_ref().display()); - - // TODO: Figure out the C apis for doing this - run_python(format!( - "cli.global_cmds.run_script(script='{}')", - file.as_ref().to_string_lossy() - ))?; - - match clear_exception()? { - SimException::NoException => Ok(()), - exception => { - bail!( - "Error running simics config: {:?}: {}", - exception, - last_error() - ); - } - } - } -} diff --git a/simics/src/traits/mod.rs b/simics/src/traits/mod.rs deleted file mode 100644 index f1d007ad..00000000 --- a/simics/src/traits/mod.rs +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::Result; - -use crate::project::Project; - -pub trait Setup { - /// Set up some extra properties, files, or state around an existing SIMICS project - /// specification - fn setup(&self, project: &Project) -> Result<&Self> - where - Self: Sized; -} diff --git a/tsffs_module/Cargo.toml b/tsffs_module/Cargo.toml deleted file mode 100644 index 26a7a2c4..00000000 --- a/tsffs_module/Cargo.toml +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2023 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "tsffs_module" -categories.workspace = true -description = "Loadable SIMICS module for TSFFS fuzzer" -edition.workspace = true -homepage.workspace = true -keywords.workspace = true -license.workspace = true -publish.workspace = true -readme.workspace = true -repository.workspace = true -version.workspace = true - - -# This metadata table configures the `SimicsProject` we'll eventually add this module to -[package.metadata.module] -# The relative path in this crate's root to the directory containing the Makefile for this module -module = "./stubs/tsffs_module" -# The relative path in the resulting SIMICS project where the built library should be placed so the -# Makefile(s) can find it (any subdirectories will be created if they do not exist) -lib = "./lib/libtsffs_module.so" -# The relative path in this crate's root to the directory containing the Makefile for this -# module's DML/C/Python interface specification -interface = "./stubs/tsffs_module-interface" - -[lib] -crate-type = ["cdylib", "rlib"] - -[dependencies] -anyhow.workspace = true -simics = { workspace = true } -const_format = "0.2.30" -ffi-macro.workspace = true -num = "0.4.0" -num-derive = "0.4.0" -num-traits = "0.2.15" -rand = "0.8.5" -raw-cstr.workspace = true -rng = "0.1.0" -rust-fsm = "0.6.1" -serde = { workspace = true, features = ["derive"] } -simics-api = { workspace = true } -simics-api-macro = { workspace = true } -yaxpeax-arch = "0.2.7" -yaxpeax-x86 = "1.2.0" -crc32fast = "1.3.2" -libafl.workspace = true -tracing = "0.1.37" -derive_builder = "0.12.0" -tracing-subscriber = { version = "0.3.17", features = [ - "ansi", - "json", - "fmt", - "std", -] } -libafl_bolts.workspace = true -c2rust-bitfields-derive = "0.18.0" -c2rust-bitfields = "0.18.0" - -[dev-dependencies] - -[build-dependencies] - -[features] -"6.0.163" = ["simics-api/6.0.163", "simics/6.0.163", "simics-api-macro/6.0.163"] -"6.0.164" = ["simics-api/6.0.164", "simics/6.0.164", "simics-api-macro/6.0.164"] -"6.0.165" = ["simics-api/6.0.165", "simics/6.0.165", "simics-api-macro/6.0.165"] -"6.0.166" = ["simics-api/6.0.166", "simics/6.0.166", "simics-api-macro/6.0.166"] -"6.0.167" = ["simics-api/6.0.167", "simics/6.0.167", "simics-api-macro/6.0.167"] -"6.0.168" = ["simics-api/6.0.168", "simics/6.0.168", "simics-api-macro/6.0.168"] -"6.0.169" = ["simics-api/6.0.169", "simics/6.0.169", "simics-api-macro/6.0.169"] -"6.0.170" = ["simics-api/6.0.170", "simics/6.0.170", "simics-api-macro/6.0.170"] -"6.0.171" = ["simics-api/6.0.171", "simics/6.0.171", "simics-api-macro/6.0.171"] -"6.0.172" = ["simics-api/6.0.172", "simics/6.0.172", "simics-api-macro/6.0.172"] \ No newline at end of file diff --git a/tsffs_module/src/client/mod.rs b/tsffs_module/src/client/mod.rs deleted file mode 100644 index df1a9549..00000000 --- a/tsffs_module/src/client/mod.rs +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! The TSFFS module client provides a common client-side controller for a fuzzer or other tool -//! to communicate with the module while keeping consistent with the state machine the module -//! implements. -//! -//! This client is designed to be used with the [`simics-fuzz`] crate, but can be used manually as -//! well to implement bespoke systems. -//! - -use crate::{ - config::{InputConfig, OutputConfig, RunConfig}, - messages::{client::ClientMessage, module::ModuleMessage}, - state::ModuleStateMachine, - stops::StopReason, - traits::ThreadClient, -}; -use anyhow::{bail, Result}; -use std::sync::mpsc::{Receiver, Sender}; -use tracing::{info, trace}; - -/// The client for the module. Allows controlling the module over IPC using the child -/// process spawned by a running project. -pub struct Client { - /// State machine to keep track of the current state between the client and module - state: ModuleStateMachine, - /// Transmit end of IPC message channel between client and module - tx: Sender, - /// Receive end of IPC message channel between client and module - rx: Receiver, -} - -impl Client { - /// Try to initialize a `Client` from a built `SimicsProject` on disk, which should include - /// the module and may have additional configuration according to user needs. Creating - /// the client will start the SIMICS project, which should be configured as necessary *before* - /// passing it into this constructor. - /// - /// The module will be added to the project for you if it is not present, - /// so - pub fn new(tx: Sender, rx: Receiver) -> Self { - Self { - state: ModuleStateMachine::new(), - tx, - rx, - } - } -} - -impl ThreadClient for Client { - /// Initialize the client with a configuration. The client will return an output - /// configuration which contains various information the SIMICS module needs to - /// inform the client of, including memory maps for coverage. Changes the - /// internal state from `Uninitialized` to `HalfInitialized` and then from - /// `HalfInitialized` to `ModuleState::Initialized`. - fn initialize(&mut self, config: InputConfig) -> Result { - info!("Sending initialize message"); - self.send_msg(ClientMessage::Initialize(config))?; - - info!("Waiting for initialized message"); - if let ModuleMessage::Initialized(config) = self.recv_msg()? { - Ok(config) - } else { - bail!("Initialization failed, received unexpected message"); - } - } - - /// Reset the module to the beginning of the fuzz loop (the state as snapshotted). - /// Changes the internal state from `Stopped` or `Initialized` to `HalfReady`, then - /// from `HalfReady` to `Ready`. - fn reset(&mut self) -> Result<()> { - trace!("Sending reset message"); - self.send_msg(ClientMessage::Reset)?; - - trace!("Waiting for ready message"); - if let ModuleMessage::Ready = self.recv_msg()? { - Ok(()) - } else { - bail!("Reset failed, received unexpected message"); - } - } - - /// Signal the module to run the target software. Changes the intenal state from `Ready` to - /// `Running`, then once the run finishes either with a normal stop, a timeout, or a crash, - /// from `Running` to `Stopped`. This function blocks until the target software stops and the - /// module detects it, so it may take a long time or if there is an unexpected bug it may - /// hang. - fn run(&mut self, input: Vec, config: RunConfig) -> Result { - trace!("Sending run message"); - self.send_msg(ClientMessage::Run((input, config)))?; - - trace!("Waiting for stopped message"); - if let ModuleMessage::Stopped(reason) = self.recv_msg()? { - Ok(reason) - } else { - bail!("Run failed, received unexpected message"); - } - } - - /// Signal the module to exit SIMICS, stopping the fuzzing process. Changes the internal state - /// from any state to `Done`. - fn exit(&mut self) -> Result<()> { - info!("Sending exit message"); - self.send_msg(ClientMessage::Exit)?; - - Ok(()) - } - - fn state_mut(&mut self) -> &mut ModuleStateMachine { - &mut self.state - } - - fn rx_mut(&mut self) -> &mut Receiver { - &mut self.rx - } - - fn tx_mut(&mut self) -> &mut Sender { - &mut self.tx - } -} diff --git a/tsffs_module/src/config/mod.rs b/tsffs_module/src/config/mod.rs deleted file mode 100644 index 1962eb5d..00000000 --- a/tsffs_module/src/config/mod.rs +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Configuration data for the module, passed to it when it starts up - -use crate::faults::Fault; -use anyhow::{bail, Error, Result}; -use derive_builder::Builder; -use libafl::prelude::AFLppCmpMap; -use serde::{Deserialize, Serialize}; -use std::{collections::HashSet, str::FromStr}; -use tracing::metadata::LevelFilter; - -#[derive(Deserialize, Serialize, Debug, Clone, Copy)] -/// Tracing mode for the branch tracer -pub enum TraceMode { - /// Trace each instruction once, this does not necessarily enable hit counting, - /// and will be less precise than `HitCount` but is significantly (2x+) faster - Once, - /// Trace each instruction every time it is executed - HitCount, -} - -impl Default for TraceMode { - fn default() -> Self { - Self::HitCount - } -} - -impl ToString for TraceMode { - fn to_string(&self) -> String { - match self { - TraceMode::Once => "once", - TraceMode::HitCount => "hit_count", - } - .to_string() - } -} - -impl FromStr for TraceMode { - type Err = Error; - fn from_str(s: &str) -> Result { - Ok(match s.to_lowercase().as_str() { - "once" => Self::Once, - "hit_count" => Self::HitCount, - "hitcount" => Self::HitCount, - _ => bail!("No such trace mode {}", s), - }) - } -} - -#[derive(Builder, Debug, Clone)] -/// Contains parameters for the module to configure things like timeout duration, which faults -/// indicate a crash, etc. This is sent by the client in `ClientMessage::Initialize` -pub struct InputConfig { - #[builder(setter(each(name = "fault")), default)] - pub faults: HashSet, - pub timeout: f64, - pub log_level: LevelFilter, - pub trace_mode: TraceMode, - pub coverage_map: (*mut u8, usize), - pub cmp_map: *mut AFLppCmpMap, - /// If repro is set, the simics thread will drop into the CLI on the first exception - #[builder(default)] - pub repro: bool, -} - -unsafe impl Send for InputConfig {} -unsafe impl Sync for InputConfig {} - -impl InputConfig { - /// Add a fault to the set of faults considered crashes for a given fuzzing campaign - pub fn with_fault(mut self, fault: Fault) -> Self { - self.faults.insert(fault); - self - } - - /// Add one or more faults to the set of faults considered crashes for a given fuzzing - /// campaign - pub fn with_faults(mut self, faults: I) -> Self - where - I: IntoIterator, - { - faults.into_iter().for_each(|i| { - self.faults.insert(i); - }); - self - } - - /// Set the timeout in seconds - pub fn with_timeout_seconds(mut self, seconds: f64) -> Self { - self.timeout = seconds; - self - } - - pub fn with_timeout_milliseconds(mut self, milliseconds: f64) -> Self { - self.timeout = milliseconds / 1000.0; - self - } - - pub fn with_timeout_microseconds(mut self, microseconds: f64) -> Self { - self.timeout = microseconds / 1_000_000.0; - self - } - - /// Set the trace mode to either once or hitcount - pub fn with_trace_mode(mut self, mode: TraceMode) -> Self { - self.trace_mode = mode; - self - } -} - -#[derive(Debug, Serialize, Deserialize, Default, Clone)] -/// Contains the resulting configuration of the module after initialization with the provided -/// `InputConfig`. This is used to pass memory maps back to the client for things like -/// coverage and cmplog data, but can be extended. -pub struct OutputConfig {} - -impl OutputConfig {} - -#[derive(Debug, Serialize, Deserialize, Default, Clone)] -pub struct RunConfig { - pub cmplog: bool, -} diff --git a/tsffs_module/src/faults/mod.rs b/tsffs_module/src/faults/mod.rs deleted file mode 100644 index ba9fc173..00000000 --- a/tsffs_module/src/faults/mod.rs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Defines a Fault that is interpreted by the `FaultDetector` component of the -//! module to determine what faults are "valid" i.e. are faults that we care about for a -//! given run. For example, an x86_64 edk2 UEFI application dereferncing an unmapped -//! pointer will generate a Page Fault (exception #14 on x86). -//! -//! The top-level `Fault` enum is designed to be platform-independent, and encapsulates a -//! platform-specific fault enum. In general, additional sideband faults can be defined -//! as negative numbers, although this may not be supported on all platforms - -extern crate num_traits; -use self::x86_64::X86_64Fault; - -use anyhow::{Error, Result}; -use serde::{Deserialize, Serialize}; - -pub mod x86_64; - -#[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq, Copy, Clone)] -#[repr(i64)] -/// An architecture independent container for faults on various architectures -pub enum Fault { - X86_64(X86_64Fault), -} - -impl TryInto for Fault { - type Error = Error; - fn try_into(self) -> Result { - match self { - Fault::X86_64(f) => f.try_into(), - } - } -} - -impl TryInto for &Fault { - type Error = Error; - fn try_into(self) -> Result { - match self { - Fault::X86_64(f) => f.try_into(), - } - } -} diff --git a/tsffs_module/src/faults/x86_64.rs b/tsffs_module/src/faults/x86_64.rs deleted file mode 100644 index 8b4c35f8..00000000 --- a/tsffs_module/src/faults/x86_64.rs +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! X86_64 specific fault information - -extern crate num_traits; -use anyhow::{anyhow, Error, Result}; -use num_derive::{FromPrimitive, ToPrimitive}; -use num_traits::ToPrimitive; -use serde::{Deserialize, Serialize}; - -use super::Fault; - -#[derive( - Debug, Serialize, Deserialize, FromPrimitive, Hash, PartialEq, Eq, Copy, Clone, ToPrimitive, -)] -#[repr(i64)] -/// An X86 CPU Fault. Faults are generated by SIMICS' `Core_Exception` HAP and checked -/// against a set of faults that are considered crashes for a given fuzzing campaign. Most -/// of these faults are self-explanatory or documented in the SDM -pub enum X86_64Fault { - /// Triple Fault - /// - /// Triple fault doesn't have a number, so we choose -1 which will never be the exception - /// number - Triple = -1, - Division = 0, - Debug = 1, - NonMaskableInterrupt = 2, - Breakpoint = 3, - Overflow = 4, - BoundRangeExceeded = 5, - InvalidOpcode = 6, - DeviceNotAvailable = 7, - Double = 8, - InvalidTss = 10, - SegmentNotPresent = 11, - StackSegment = 12, - GeneralProtection = 13, - Page = 14, - X86Fpe = 16, - AlignmentCheck = 17, - MachineCheck = 18, - SimdFpen = 19, - Virtualization = 20, - ControlProtection = 21, - HypervisorInjection = 28, - VMMCommunication = 29, - Security = 30, -} - -impl TryFrom for X86_64Fault { - type Error = Error; - - /// Try to convert an i64 to a fault and fail if the number is unknown - fn try_from(value: i64) -> Result { - num::FromPrimitive::from_i64(value).ok_or_else(|| anyhow!("Could not convert to Fault")) - } -} - -impl TryInto for X86_64Fault { - type Error = Error; - fn try_into(self) -> Result { - self.to_i64() - .ok_or_else(|| anyhow!("Could not convert self to i64")) - } -} - -impl TryInto for &X86_64Fault { - type Error = Error; - fn try_into(self) -> Result { - self.to_i64() - .ok_or_else(|| anyhow!("Could not convert self to i64")) - } -} - -impl X86_64Fault { - /// All faults. Using this isn't recommended. - pub fn all() -> Vec { - vec![ - Fault::X86_64(X86_64Fault::Triple), - Fault::X86_64(X86_64Fault::Division), - Fault::X86_64(X86_64Fault::Debug), - Fault::X86_64(X86_64Fault::NonMaskableInterrupt), - Fault::X86_64(X86_64Fault::Breakpoint), - Fault::X86_64(X86_64Fault::Overflow), - Fault::X86_64(X86_64Fault::BoundRangeExceeded), - Fault::X86_64(X86_64Fault::InvalidOpcode), - Fault::X86_64(X86_64Fault::DeviceNotAvailable), - Fault::X86_64(X86_64Fault::Double), - Fault::X86_64(X86_64Fault::InvalidTss), - Fault::X86_64(X86_64Fault::SegmentNotPresent), - Fault::X86_64(X86_64Fault::StackSegment), - Fault::X86_64(X86_64Fault::GeneralProtection), - Fault::X86_64(X86_64Fault::Page), - Fault::X86_64(X86_64Fault::X86Fpe), - Fault::X86_64(X86_64Fault::AlignmentCheck), - Fault::X86_64(X86_64Fault::MachineCheck), - Fault::X86_64(X86_64Fault::SimdFpen), - Fault::X86_64(X86_64Fault::Virtualization), - Fault::X86_64(X86_64Fault::ControlProtection), - Fault::X86_64(X86_64Fault::HypervisorInjection), - Fault::X86_64(X86_64Fault::VMMCommunication), - Fault::X86_64(X86_64Fault::Security), - ] - } -} diff --git a/tsffs_module/src/lib.rs b/tsffs_module/src/lib.rs deleted file mode 100644 index ff97d268..00000000 --- a/tsffs_module/src/lib.rs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! TFFS Module for SIMICS -//! -//! # Overview -//! -//! This crate provides a client and module loadable by SIMICS to enable fuzzing on the SIMICS -//! platform. The client is intended to be used by the `simics-fuzz` crate, but it can be used -//! manually to enable additional use cases. -//! -//! # Capabilities -//! -//! The Module can: -//! -//! - Trace branch hits during an execution of a target on an x86_64 processor. These branches -//! are traced into shared memory in the format understood by the AFL family of tools. -//! - Catch exception/fault events registered in an initial configuration or dynamically using -//! a SIMICS Python script -//! - Catch timeout events registered in an initial configuration or dynamically using a SIMICS -//! Python script -//! - Manage the state of a target under test by taking and restoring a snapshot of its state for -//! deterministic snapshot fuzzing - -#![deny(clippy::all)] -// NOTE: We have to do this a lot, and it sucks to have all these functions be unsafe -#![allow(clippy::not_unsafe_ptr_arg_deref)] -#![deny(clippy::unwrap_used)] - -pub mod client; -pub mod config; -pub mod faults; -pub mod magic; -pub mod messages; -/// cbindgen:ignore -pub mod module; -mod processor; -pub mod state; -pub mod stops; -pub mod traits; -mod util; - -pub use module::ModuleInterface; - -/// The class name used for all operations interfacing with SIMICS -pub const CLASS_NAME: &str = env!("CARGO_PKG_NAME"); diff --git a/tsffs_module/src/magic/mod.rs b/tsffs_module/src/magic/mod.rs deleted file mode 100644 index 78a424e3..00000000 --- a/tsffs_module/src/magic/mod.rs +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Magic instructions raised by guest software - -extern crate num_traits; -use anyhow::{anyhow, Error, Result}; -use num_derive::{FromPrimitive, ToPrimitive}; -use num_traits::ToPrimitive as _; -use serde::{Deserialize, Serialize}; - -// Magic number definitions for harnessing via magic instruction. The lowest `n` value is `12` on -// ARM, so all magic numbers must stay below this number. - -// NOTE: 0x00 is reserved -/// MAGIC_START, when passed as the value of `n` in a [Magic -/// Instruction](https://simics-download.pdx.intel.com/simics-6/docs/html/simics-user-guide/breakpoints.html#Magic-Breakpoints) -/// indicates that the register `ARG0` and `ARG1` (as defined per platform) are set to the buffer -/// pointer and a pointer to the buffer size, respectively. -pub const MAGIC_START: u16 = 0x0001; -/// MAGIC_STOP, when passed as the value of `n` in a [Magic -/// Instruction](https://simics-download.pdx.intel.com/simics-6/docs/html/simics-user-guide/breakpoints.html#Magic-Breakpoints) -/// indicates that execution should stop, and the root fuzzing snapshot should be restored -pub const MAGIC_STOP: u16 = 0x0002; -/// MAGIC_START_WININTRIN, when passed as the value of `n` in a magic instruction, indicates a -/// magic start sequence that is supported by X64 windows intrinsic `__cpuidex`. This signals the -/// start of the following sequence of cpuid (as this is only supported on X64) instructions: -/// - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=(BUFFER_PTR & 0xffffffff) -/// - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=((BUFFER_PTR >> 32U) & 0xffffffff) -/// - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=(SIZE & 0xffffffff) -/// - cpuid eax=[(MAGIC_START_WININTRIN << 16U) | MAGIC] ecx=((SIZE >> 32U) & 0xffffffff) -/// -/// The first three `__cpuid` calls output no value into the `cpuInfo` buffer. The fourth sets -/// `cpuInfo` to: -/// -/// ```c -/// { -/// BUFFER_PTR & 0xffffffff, -/// (BUFFER_PTR >> 32U) & 0xffffffff, -/// SIZE & 0xffffffff, -/// (SIZE >> 32U) & 0xffffffff, -/// } -/// ``` -pub const MAGIC_START_WININTRIN: u16 = 0x0003; -// NOTE: 0x0c is reserved - -// Defined by the fuzzer, these are the registers we retrieve buffer/size and extended values -// from for each architecture and are used by the include crate to generate C headers and a Rust -// target software interface -pub const MAGIC_ARG0_REG_X86: &str = "esi"; -pub const MAGIC_ARG1_REG_X86: &str = "edi"; -pub const MAGIC_ARG0_REG_X86_64: &str = "rsi"; -pub const MAGIC_ARG1_REG_X86_64: &str = "rdi"; - -/// Holds the following, in order, over 4 cpuid invocations: -/// - Lower 32 of buffer ptr -/// - upper 32 of buffer ptr -/// - lower 32 of size -/// - upper 32 of size -pub const MAGIC_ARG0_REG_X86_64_WININTRIN: &str = "ecx"; - -/// Holds the low 32 bits of the buffer pointer during output -pub const MAGIC_OUT0_REG_X86_64_WININTRIN: &str = "eax"; -/// Holds the high 32 bits of the buffer pointer during output -pub const MAGIC_OUT1_REG_X86_64_WININTRIN: &str = "ebx"; -/// Holds the low 32 bits of the size during output -pub const MAGIC_OUT2_REG_X86_64_WININTRIN: &str = "ecx"; -/// Holds the high 32 bits of the size during output -pub const MAGIC_OUT3_REG_X86_64_WININTRIN: &str = "edx"; - -#[derive(Debug, ToPrimitive, FromPrimitive, Serialize, Deserialize, Clone)] -#[repr(u16)] -/// A Magic value that can be generated by a target as part of a "Magic Instruction" (cpuid with -/// a specific leaf on x86) and passed to SIMICS through the `Core_Magic_Instruction` HAP -pub enum MagicCode { - /// Magic value that the target has reached its start location - Start = MAGIC_START, - /// Magic value that the target has reached its stop location - Stop = MAGIC_STOP, - /// Magic value that the target is executing a winintrin `__cpuidex` at its start location - StartWinIntrin64 = MAGIC_START_WININTRIN, -} - -impl TryFrom for MagicCode { - type Error = Error; - - /// Try to convert a u16 value to a known `Magic` value - fn try_from(value: i64) -> Result { - num::FromPrimitive::from_u16(value as u16) - .ok_or_else(|| anyhow!("Could not convert value {} to MagicCode", value)) - } -} - -impl TryInto for MagicCode { - type Error = Error; - fn try_into(self) -> Result { - Ok(self - .to_u16() - .ok_or_else(|| anyhow!("Could not convert self to i64"))? as i64) - } -} - -#[derive(Debug, Serialize, Deserialize, Clone)] -pub enum Magic { - /// Start magic instruction - Start((MagicCode, Option, Option)), - /// Stop magic instruction - Stop((MagicCode, Option)), - /// Start magic instruction, windows intrinsic version - StartWinIntrin64((MagicCode, Option)), -} - -impl TryFrom for Magic { - type Error = Error; - - fn try_from(value: i64) -> Result { - let code = MagicCode::try_from(value)?; - Ok(match code { - MagicCode::Start => Self::Start((code, None, None)), - MagicCode::Stop => Self::Stop((code, None)), - MagicCode::StartWinIntrin64 => Self::StartWinIntrin64((code, None)), - }) - } -} diff --git a/tsffs_module/src/messages/client.rs b/tsffs_module/src/messages/client.rs deleted file mode 100644 index 9908e632..00000000 --- a/tsffs_module/src/messages/client.rs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Messages generated by the client - -use crate::config::{InputConfig, RunConfig}; - -#[derive(Debug, Clone)] -/// Messages from the client -pub enum ClientMessage { - /// Initialize event, the fuzzer signals the module to initialize itself with - /// a given set of global campaign settings - Initialize(InputConfig), - /// The fuzzer signals the module to run with a given input of bytes - Run((Vec, RunConfig)), - /// The fuzzer signals the module to reset to the start snapshot - Reset, - /// The fuzzer signals the module to stop execution and exit - Exit, -} diff --git a/tsffs_module/src/messages/mod.rs b/tsffs_module/src/messages/mod.rs deleted file mode 100644 index c7768834..00000000 --- a/tsffs_module/src/messages/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Messages used in communication between the module and client - -pub mod client; -pub mod module; diff --git a/tsffs_module/src/messages/module.rs b/tsffs_module/src/messages/module.rs deleted file mode 100644 index f0cacfce..00000000 --- a/tsffs_module/src/messages/module.rs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Messages generated by the module - -use crate::{config::OutputConfig, stops::StopReason}; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Serialize, Deserialize, Clone)] -/// Messages from the module -pub enum ModuleMessage { - /// Mesage - Initialized(OutputConfig), - /// Message indicating ready to run - Ready, - /// Message indicating stopped and the reason why, for example a crash, normal run finished, - /// or some error occurred. - Stopped(StopReason), -} diff --git a/tsffs_module/src/module/components/detector/fault.rs b/tsffs_module/src/module/components/detector/fault.rs deleted file mode 100644 index 5458879b..00000000 --- a/tsffs_module/src/module/components/detector/fault.rs +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Defines a Fault that is interpreted by the `FaultDetector` component of the -//! module to determine what faults are "valid" i.e. are faults that we care about for a -//! given run. For example, an x86_64 edk2 UEFI application dereferncing an unmapped -//! pointer will generate a Page Fault (exception #14 on x86). -//! -//! The top-level `Fault` enum is designed to be platform-independent, and encapsulates a -//! platform-specific fault enum. In general, additional sideband faults can be defined -//! as negative numbers, although this may not be supported on all platforms - -extern crate num_traits; -use anyhow::{anyhow, Error, Result}; -use num_derive::FromPrimitive; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Serialize, Deserialize, FromPrimitive, Hash, PartialEq, Eq, Copy, Clone)] -#[repr(i64)] -/// An X86 CPU Fault. Faults are generated by SIMICS' `Core_Exception` HAP and checked -/// against a set of faults that are considered crashes for a given fuzzing campaign. Most -/// of these faults are self-explanatory or documented in the SDM -pub enum X86_64Fault { - /// Triple Fault - /// - /// Triple fault doesn't have a number, so we choose -1 which will never be the exception - /// number - Triple = -1, - Division = 0, - Debug = 1, - NonMaskableInterrupt = 2, - Breakpoint = 3, - Overflow = 4, - BoundRangeExceeded = 5, - InvalidOpcode = 6, - DeviceNotAvailable = 7, - Double = 8, - InvalidTss = 10, - SegmentNotPresent = 11, - StackSegment = 12, - GeneralProtection = 13, - Page = 14, - X86Fpe = 16, - AlignmentCheck = 17, - MachineCheck = 18, - SimdFpen = 19, - Virtualization = 20, - ControlProtection = 21, - HypervisorInjection = 28, - VMMCommunication = 29, - Security = 30, -} - -impl TryFrom for X86_64Fault { - type Error = Error; - - /// Try to convert an i64 to a fault and fail if the number is unknown - fn try_from(value: i64) -> Result { - num::FromPrimitive::from_i64(value).ok_or_else(|| anyhow!("Could not convert to Fault")) - } -} - -impl X86_64Fault { - pub fn all() -> Vec { - vec![ - Fault::X86_64(X86_64Fault::Triple), - Fault::X86_64(X86_64Fault::Division), - Fault::X86_64(X86_64Fault::Debug), - Fault::X86_64(X86_64Fault::NonMaskableInterrupt), - Fault::X86_64(X86_64Fault::Breakpoint), - Fault::X86_64(X86_64Fault::Overflow), - Fault::X86_64(X86_64Fault::BoundRangeExceeded), - Fault::X86_64(X86_64Fault::InvalidOpcode), - Fault::X86_64(X86_64Fault::DeviceNotAvailable), - Fault::X86_64(X86_64Fault::Double), - Fault::X86_64(X86_64Fault::InvalidTss), - Fault::X86_64(X86_64Fault::SegmentNotPresent), - Fault::X86_64(X86_64Fault::StackSegment), - Fault::X86_64(X86_64Fault::GeneralProtection), - Fault::X86_64(X86_64Fault::Page), - Fault::X86_64(X86_64Fault::X86Fpe), - Fault::X86_64(X86_64Fault::AlignmentCheck), - Fault::X86_64(X86_64Fault::MachineCheck), - Fault::X86_64(X86_64Fault::SimdFpen), - Fault::X86_64(X86_64Fault::Virtualization), - Fault::X86_64(X86_64Fault::ControlProtection), - Fault::X86_64(X86_64Fault::HypervisorInjection), - Fault::X86_64(X86_64Fault::VMMCommunication), - Fault::X86_64(X86_64Fault::Security), - ] - } -} - -#[derive(Debug, Serialize, Deserialize, Hash, PartialEq, Eq, Copy, Clone)] -#[repr(i64)] -/// An architecture independent container for faults on various architectures -pub enum Fault { - X86_64(X86_64Fault), -} diff --git a/tsffs_module/src/module/components/detector/mod.rs b/tsffs_module/src/module/components/detector/mod.rs deleted file mode 100644 index bfa55fd4..00000000 --- a/tsffs_module/src/module/components/detector/mod.rs +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use crate::{ - config::{OutputConfig, RunConfig}, - faults::{x86_64::X86_64Fault, Fault}, - module::Module, - processor::Processor, - stops::StopReason, - traits::{Interface, State}, - CLASS_NAME, -}; -use anyhow::{bail, Result}; -use ffi_macro::{callback_wrappers, params}; -use simics_api::{ - attr_object_or_nil_from_ptr, break_simulation, event::register_event, event_cancel_time, - event_find_next_time, event_post_time, get_class, get_processor_number, hap_add_callback, - object_clock, AttrValue, ConfObject, CoreExceptionCallback, EventClass, GenericTransaction, - Hap, HapCallback, X86TripleFaultCallback, -}; -use std::{ - collections::{HashMap, HashSet}, - ffi::c_void, -}; -use tracing::{debug, error, info, trace}; - -#[derive(Default)] -pub struct Detector { - pub faults: HashSet, - pub timeout_seconds: Option, - pub timeout_event: Option<*mut EventClass>, - pub processors: HashMap, - pub stop_reason: Option, - pub exception_cb_added: bool, - pub triple_cb_added: bool, - pub module: Option<*mut ConfObject>, - pub breakpoints_are_faults: bool, -} - -impl Detector { - const TIMEOUT_EVENT_NAME: &'static str = "detector_timeout_event"; - - pub fn try_new() -> Result { - Ok(Detector::default()) - } -} - -impl<'a> From<*mut std::ffi::c_void> for &'a mut Detector { - /// Convert from a *mut Module pointer to a mutable reference to Detector - fn from(value: *mut std::ffi::c_void) -> &'a mut Detector { - let module_ptr: *mut Module = value as *mut Module; - let module = unsafe { &mut *module_ptr }; - &mut module.detector - } -} - -impl State for Detector { - fn on_initialize( - &mut self, - module: *mut ConfObject, - input_config: &mut crate::config::InputConfig, - output_config: crate::config::OutputConfig, - ) -> Result { - self.faults = input_config.faults.clone(); - self.timeout_seconds = Some(input_config.timeout); - self.module = Some(module); - - for fault in self.faults.clone() { - self.on_add_fault(fault.try_into()?)?; - } - - info!("Initialized Detector"); - - Ok(output_config) - } - - fn pre_first_run(&mut self, module: *mut ConfObject) -> Result<()> { - let module_cls = get_class(CLASS_NAME)?; - - let event = register_event( - Detector::TIMEOUT_EVENT_NAME, - module_cls, - detector_callbacks::on_timeout_event, - &[], - )?; - - let _bp_handle = hap_add_callback( - Hap::CoreBreakpointMemop, - HapCallback::CoreBreakpointMemop(detector_callbacks::on_breakpoint_memop), - Some(module as *mut c_void), - ); - - self.timeout_event = Some(event); - - Ok(()) - } - - fn on_ready(&mut self, _module: *mut ConfObject) -> Result<()> { - self.stop_reason = None; - Ok(()) - } - - fn on_run(&mut self, module: *mut ConfObject, _run_config: &RunConfig) -> Result<()> { - trace!("Setting up Detector before run"); - - self.stop_reason = None; - - if let Some(timeout_event) = self.timeout_event { - if let Some(timeout_seconds) = self.timeout_seconds { - for (processor_number, processor) in &self.processors { - let clock = object_clock(processor.cpu())?; - - trace!( - "Setting up timeout event with {} seconds on processor #{}", - timeout_seconds, - processor_number - ); - - event_post_time( - clock, - timeout_event, - processor.cpu(), - timeout_seconds, - Some(module as *mut c_void), - ); - } - } - } - - trace!("Done setting up detector"); - - Ok(()) - } - - fn on_stopped(&mut self, module: *mut ConfObject, reason: StopReason) -> Result<()> { - trace!("Detector handling stop with reason {:?}", reason); - - if let Some(timeout_event) = self.timeout_event { - if !timeout_event.is_null() { - for (processor_number, processor) in &self.processors { - let clock = object_clock(processor.cpu())?; - - if let Ok(remaining) = event_find_next_time(clock, timeout_event, module) { - trace!( - "Remaining time on stop for processor {}: {} seconds, cancelling event", - processor_number, - remaining - ); - - event_cancel_time(clock, timeout_event, module); - } else { - trace!("Stopped without timeout event, unable to cancel nonexistent event"); - } - } - } else { - debug!("Timeout event is null, not initialized yet, so skipping cancellation"); - } - } - Ok(()) - } -} - -impl Interface for Detector { - fn on_add_processor(&mut self, processor_attr: *mut AttrValue) -> Result<()> { - let processor_obj: *mut ConfObject = attr_object_or_nil_from_ptr(processor_attr)?; - let processor_number = get_processor_number(processor_obj); - - // Don't need any instrumentation for the detector - let processor = Processor::try_new(processor_number, processor_obj)?; - - self.processors.insert(processor_number, processor); - - info!("Detector added processor #{}", processor_number); - - Ok(()) - } - - fn on_add_fault(&mut self, fault: i64) -> Result<()> { - let fault = Fault::X86_64(X86_64Fault::try_from(fault).map_err(|e| { - error!("Failed to get fault for fault number {}", fault); - e - })?); - - info!("Detector adding fault {:?}", fault); - // TODO: Arch independent - self.faults.insert(fault); - - if let Some(module) = self.module { - if let Fault::X86_64(X86_64Fault::Triple) = fault { - if !self.triple_cb_added { - // Add the triple cb - let func: X86TripleFaultCallback = detector_callbacks::on_x86_triple_fault; - - let _triple_handle = hap_add_callback( - Hap::X86TripleFault, - HapCallback::X86TripleFault(func), - Some(module as *mut c_void), - )?; - self.triple_cb_added = true; - } - } else if !self.exception_cb_added { - // Add the standard cb - let func: CoreExceptionCallback = detector_callbacks::on_exception; - - let _core_handle = hap_add_callback( - Hap::CoreException, - HapCallback::CoreException(func), - Some(module as *mut c_void), - )?; - self.exception_cb_added = true; - } - } - - Ok(()) - } - - fn on_set_breakpoints_are_faults(&mut self, breakpoints_are_faults: bool) -> Result<()> { - self.breakpoints_are_faults = breakpoints_are_faults; - Ok(()) - } -} - -#[callback_wrappers(pub, unwrap_result)] -impl Detector { - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn on_exception( - &mut self, - trigger_obj: *mut ConfObject, - exception_number: i64, - ) -> Result<()> { - let cpu: *mut ConfObject = trigger_obj; - - let processor_number = get_processor_number(cpu); - - if let Some(processor) = self.processors.get(&processor_number) { - match processor.arch().as_ref() { - "x86-64" => { - if let Ok(fault) = X86_64Fault::try_from(exception_number) { - let fault = Fault::X86_64(fault); - if self.faults.contains(&fault) { - info!("Got exception with fault: {:?}", fault); - self.stop_reason = Some(StopReason::Crash((fault, processor_number))); - break_simulation("crash")?; - } - } - } - _ => { - bail!("Unsupported architecture"); - } - } - } - - Ok(()) - } - - #[params(..., !slf: *mut std::ffi::c_void)] - pub fn on_timeout_event(&mut self, _obj: *mut ConfObject) -> Result<()> { - info!("Got timeout event"); - self.stop_reason = Some(StopReason::TimeOut); - break_simulation("timeout")?; - Ok(()) - } - - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn on_x86_triple_fault(&mut self, trigger_obj: *mut ConfObject) -> Result<()> { - info!("Got triple fault"); - let processor_number = get_processor_number(trigger_obj); - self.stop_reason = Some(StopReason::Crash(( - Fault::X86_64(X86_64Fault::Triple), - processor_number, - ))); - break_simulation("triple")?; - Ok(()) - } - - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn on_breakpoint_memop( - &mut self, - _trigger_obj: *mut ConfObject, - breakpoint_number: i64, - _memop: *mut GenericTransaction, - ) -> Result<()> { - if self.breakpoints_are_faults { - info!("Got breakpoint"); - // TODO: Use trigger_obj (which is cpu?) to get address of the bp directly, memory op info - // and so forth? Or we can just have people use repro for this and save the trouble. - self.stop_reason = Some(StopReason::Breakpoint(breakpoint_number)); - break_simulation("breakpoint")?; - } - Ok(()) - } -} diff --git a/tsffs_module/src/module/components/mod.rs b/tsffs_module/src/module/components/mod.rs deleted file mode 100644 index 9b3382a4..00000000 --- a/tsffs_module/src/module/components/mod.rs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Module Components -//! -//! *Components* are parts of the module that implement discrete tasks, such as tracing execution, -//! catching faults, etc. - -pub mod detector; -pub mod tracer; diff --git a/tsffs_module/src/module/components/tracer/mod.rs b/tsffs_module/src/module/components/tracer/mod.rs deleted file mode 100644 index ab2ec924..00000000 --- a/tsffs_module/src/module/components/tracer/mod.rs +++ /dev/null @@ -1,310 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![allow(non_snake_case)] - -use std::{collections::HashMap, ffi::c_void, num::Wrapping, ptr::null_mut}; - -use crate::{ - config::{InputConfig, OutputConfig, TraceMode}, - module::Module, - processor::{CmpType, Processor}, - traits::{Interface, State}, -}; -use anyhow::{anyhow, bail, Result}; - -use ffi_macro::{callback_wrappers, params}; -use libafl::prelude::{ - AFLppCmpMap, AFLppCmpOperands, CmpMap, CmpValues, AFL_CMP_MAP_H, AFL_CMP_TYPE_INS, -}; -use libafl_bolts::{bolts_prelude::OwnedMutSlice, prelude::OwnedRefMut, AsMutSlice, AsSlice}; -use rand::{thread_rng, Rng}; -use tracing::{info, trace}; - -use simics_api::{ - attr_object_or_nil_from_ptr, get_processor_number, AttrValue, CachedInstructionHandle, - ConfObject, InstructionHandle, -}; - -pub struct Tracer { - coverage: OwnedMutSlice<'static, u8>, - cmp: OwnedRefMut<'static, AFLppCmpMap>, - coverage_prev_loc: u64, - processors: HashMap, - mode: TraceMode, - cmplog: bool, -} - -impl From<*mut std::ffi::c_void> for &mut Tracer { - /// Convert from a *mut Module pointer to a mutable reference to tracer - fn from(value: *mut std::ffi::c_void) -> &'static mut Tracer { - let module_ptr: *mut Module = value as *mut Module; - let module = unsafe { &mut *module_ptr }; - &mut module.tracer - } -} - -impl Tracer { - /// Try to instantiate a new AFL Coverage Tracer - pub fn try_new() -> Result { - Ok(Self { - // Initialize with a dummy coverage map - coverage: OwnedMutSlice::from(Vec::new()), - cmp: OwnedRefMut::Owned(unsafe { Box::from_raw(null_mut()) }), - coverage_prev_loc: 0, - processors: HashMap::new(), - mode: TraceMode::Once, - cmplog: false, - }) - } - - fn log_pc(&mut self, pc: u64) -> Result<()> { - let afl_idx = (pc ^ self.coverage_prev_loc) % self.coverage.as_slice().len() as u64; - let mut cur_byte: Wrapping = Wrapping(self.coverage.as_slice()[afl_idx as usize]); - cur_byte += 1; - self.coverage.as_mut_slice()[afl_idx as usize] = cur_byte.0; - self.coverage_prev_loc = (pc >> 1) % self.coverage.as_slice().len() as u64; - - Ok(()) - } - - fn log_cmp(&mut self, pc: u64, types: Vec, cmp: CmpValues) -> Result<()> { - // Consistently hash pc to the same header index - let shape = cmp_shape(&cmp)?; - let operands = cmp - .to_u64_tuple() - .ok_or_else(|| anyhow!("Conversion to tuple of non-integral operands not supported"))?; - let pc_index = hash_index(pc, self.cmp.as_ref().len() as u64); - - let hits = self.cmp.as_mut().headers_mut()[pc_index as usize].hits(); - self.cmp.as_mut().headers_mut()[pc_index as usize].set_hits(hits + 1); - self.cmp.as_mut().headers_mut()[pc_index as usize].set_shape(shape); - self.cmp.as_mut().headers_mut()[pc_index as usize].set__type(AFL_CMP_TYPE_INS); - let attribute = types - .iter() - .map(|t| *t as u32) - .reduce(|acc, t| acc | t) - .ok_or_else(|| anyhow!("Could not reduce types"))?; - self.cmp.as_mut().headers_mut()[pc_index as usize].set_attribute(attribute); - // NOTE: overflow isn't used by aflppredqueen - - trace!("Logging cmp with types {:?} and values {:?}", types, cmp); - - self.cmp.as_mut().values_mut().operands_mut()[pc_index as usize] - [hits as usize % AFL_CMP_MAP_H] = AFLppCmpOperands::new(operands.0, operands.1); - - Ok(()) - } -} - -fn cmp_shape(cmp: &CmpValues) -> Result { - match cmp { - CmpValues::U8(_) => Ok(0), - CmpValues::U16(_) => Ok(1), - CmpValues::U32(_) => Ok(3), - CmpValues::U64(_) => Ok(7), - _ => bail!("Shape not implemented for non-integral types"), - } -} - -fn byte_width(value: u64) -> usize { - if value < 0x10000 { - if value < 0x100 { - 1 - } else { - 2 - } - } else if value < 0x100000000 { - 4 - } else { - 8 - } -} - -/// Hash a value into an index into an array lf length `len` -fn hash_index(value: u64, len: u64) -> u64 { - let value_bytes = value.to_le_bytes(); - let hash_width = byte_width(len - 1); - let hash_iters = value_bytes.len() / hash_width; - let mut buffer = [0u8; 8]; - - for i in 0..hash_iters { - if i == 0 { - buffer[0..hash_width] - .clone_from_slice(&value_bytes[i * hash_width..(i + 1) * hash_width]) - } else { - (0..hash_width).for_each(|j| { - buffer[j] ^= value_bytes[i * hash_width..(i + 1) * hash_width][j]; - }); - } - } - - u64::from_le_bytes(buffer) -} - -#[cfg(test)] -mod test_tracer_math { - use crate::module::components::tracer::{byte_width, hash_index}; - - #[test] - fn test_cmp_hash() { - // Sanity check that we'll get the right number of bytes needed to represent the map width - assert_eq!(byte_width(65535), 2); - } - - #[test] - fn test_hash_into() { - const LEN: usize = 65536; - let x = hash_index(0x180001b0, LEN as u64); - let y = hash_index(0x180001b1, LEN as u64); - assert_ne!(x, y); - } -} - -impl State for Tracer { - fn on_initialize( - &mut self, - _module: *mut ConfObject, - input_config: &mut InputConfig, - output_config: OutputConfig, - ) -> Result { - self.mode = input_config.trace_mode; - // TODO: Maybe actually fix this lifetime stuff but it is actually unsafe to share this - // coverage map so maybe there is no unsafe solution here - self.coverage = unsafe { - OwnedMutSlice::from_raw_parts_mut( - input_config.coverage_map.0, - input_config.coverage_map.1, - ) - }; - self.cmp = unsafe { OwnedRefMut::Owned(Box::from_raw(input_config.cmp_map)) }; - self.coverage_prev_loc = thread_rng().gen_range(0..self.coverage.as_slice().len()) as u64; - info!("Initialized Tracer"); - Ok(output_config) - } - - fn pre_first_run(&mut self, module: *mut ConfObject) -> Result<()> { - for (_processor_number, processor) in self.processors.iter_mut() { - match self.mode { - TraceMode::Once => { - processor.register_cached_instruction_cb( - tracer_callbacks::on_cached_instruction, - Some(module as *mut c_void), - )?; - } - TraceMode::HitCount => { - processor.register_instruction_before_cb( - tracer_callbacks::on_instruction_before, - Some(module as *mut c_void), - )?; - } - } - } - Ok(()) - } - - fn on_run( - &mut self, - _module: *mut ConfObject, - run_config: &crate::config::RunConfig, - ) -> Result<()> { - self.cmplog = run_config.cmplog; - - trace!("Running with cmplog mode: {}", self.cmplog); - - Ok(()) - } - - // Uncomment to check map hash - // fn on_stopped(&mut self, module: *mut ConfObject, reason: StopReason) -> Result<()> { - // let buf = self.coverage_writer.read_all()?; - - // info!("Hash of AFL Map: {:#x}", hash(&buf)); - - // Ok(()) - // } -} - -impl Interface for Tracer { - fn on_add_processor(&mut self, processor_attr: *mut AttrValue) -> Result<()> { - let processor_obj: *mut ConfObject = attr_object_or_nil_from_ptr(processor_attr)?; - let processor_number = get_processor_number(processor_obj); - let processor = Processor::try_new(processor_number, processor_obj)? - .try_with_cpu_instrumentation_subscribe(processor_attr)? - .try_with_processor_info_v2(processor_attr)? - .try_with_cpu_instruction_query(processor_attr)? - .try_with_int_register(processor_attr)?; - - self.processors.insert(processor_number, processor); - - info!("Tracer added processor #{}", processor_number); - - Ok(()) - } -} - -#[callback_wrappers(pub, unwrap_result)] -impl Tracer { - #[params(..., !slf: *mut std::ffi::c_void)] - pub fn on_instruction_before( - &mut self, - _obj: *mut ConfObject, - cpu: *mut ConfObject, - handle: *mut InstructionHandle, - ) -> Result<()> { - let processor_number = get_processor_number(cpu); - - if let Some(processor) = self.processors.get_mut(&processor_number) { - if let Ok(r) = processor.trace(handle) { - // trace!("Traced execution was control flow: {:#x}", pc); - if let Some(pc) = r.edge { - self.log_pc(pc)?; - } - } - } - - if self.cmplog { - if let Some(processor) = self.processors.get_mut(&processor_number) { - if let Ok(r) = processor.trace_cmp(handle) { - if let Some((pc, types, cmp)) = r.cmp { - self.log_cmp(pc, types, cmp)?; - } - } - } - } - - Ok(()) - } - - #[params(..., !slf: *mut std::ffi::c_void)] - pub fn on_cached_instruction( - &mut self, - _obj: *mut ConfObject, - cpu: *mut ConfObject, - _cached_instruction_data: *mut CachedInstructionHandle, - handle: *mut InstructionHandle, - ) -> Result<()> { - let processor_number = get_processor_number(cpu); - - if let Some(processor) = self.processors.get_mut(&processor_number) { - if let Ok(r) = processor.trace(handle) { - // trace!("Traced execution was control flow: {:#x}", pc); - if let Some(pc) = r.edge { - self.log_pc(pc)?; - } - } - } - - if self.cmplog { - if let Some(processor) = self.processors.get_mut(&processor_number) { - if let Ok(r) = processor.trace_cmp(handle) { - if let Some((pc, types, cmp)) = r.cmp { - self.log_cmp(pc, types, cmp)?; - } - } - } - } - - Ok(()) - } -} diff --git a/tsffs_module/src/module/config.rs b/tsffs_module/src/module/config.rs deleted file mode 100644 index d1b1b007..00000000 --- a/tsffs_module/src/module/config.rs +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Configuration data for the module, passed to it when it starts up - -use anyhow::{anyhow, Result}; -use ipc_shm::IpcShm; -use serde::{Deserialize, Serialize}; -use std::collections::HashSet; - -use super::{components::detector::fault::Fault, map_type::MapType}; - -#[derive(Debug, Serialize, Deserialize, Clone)] -/// Contains parameters for the module to configure things like timeout duration, which faults -/// indicate a crash, etc. This is sent by the client in `ClientMessage::Initialize` -pub struct InputConfig { - pub faults: HashSet, - pub timeout: f64, -} - -impl Default for InputConfig { - fn default() -> Self { - Self { - faults: HashSet::new(), - timeout: f64::MAX, - } - } -} - -impl InputConfig { - /// Add a fault to the set of faults considered crashes for a given fuzzing campaign - pub fn with_fault(mut self, fault: Fault) -> Self { - self.faults.insert(fault); - self - } - - /// Add one or more faults to the set of faults considered crashes for a given fuzzing - /// campaign - pub fn with_faults(mut self, faults: I) -> Self - where - I: IntoIterator, - { - faults.into_iter().for_each(|i| { - self.faults.insert(i); - }); - self - } - - /// Set the timeout in seconds - pub fn with_timeout_seconds(mut self, seconds: f64) -> Self { - self.timeout = seconds; - self - } - - pub fn with_timeout_milliseconds(mut self, milliseconds: f64) -> Self { - self.timeout = milliseconds / 1000.0; - self - } - - pub fn with_timeout_microseconds(mut self, microseconds: f64) -> Self { - self.timeout = microseconds / 1_000_000.0; - self - } -} - -#[derive(Debug, Serialize, Deserialize, Default, Clone)] -/// Contains the resulting configuration of the module after initialization with the provided -/// `InputConfig`. This is used to pass memory maps back to the client for things like -/// coverage and cmplog data, but can be extended. -pub struct OutputConfig { - maps: Vec, -} - -impl OutputConfig { - pub fn with_map(mut self, map: MapType) -> Self { - self.maps.push(map); - self - } - - pub fn with_maps(mut self, maps: I) -> Self - where - I: IntoIterator, - { - maps.into_iter().for_each(|m| { - self.maps.push(m); - }); - self - } - - /// Retrieve the coverage map from an output config - pub fn coverage(&mut self) -> Result { - match self.maps.remove( - self.maps - .iter() - .position(|m| matches!(m, MapType::Coverage(_))) - .ok_or_else(|| anyhow!("No coverage map found"))?, - ) { - MapType::Coverage(coverage) => Ok(coverage), - } - } -} diff --git a/tsffs_module/src/module/map_type.rs b/tsffs_module/src/module/map_type.rs deleted file mode 100644 index 180da124..00000000 --- a/tsffs_module/src/module/map_type.rs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use ipc_shm::IpcShm; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Serialize, Deserialize, Clone)] -pub enum MapType { - Coverage(IpcShm), -} diff --git a/tsffs_module/src/module/mod.rs b/tsffs_module/src/module/mod.rs deleted file mode 100644 index 991d17e6..00000000 --- a/tsffs_module/src/module/mod.rs +++ /dev/null @@ -1,693 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use self::components::{detector::Detector, tracer::Tracer}; -use crate::{ - config::OutputConfig, - magic::{ - Magic, MAGIC_ARG0_REG_X86_64, MAGIC_ARG0_REG_X86_64_WININTRIN, MAGIC_ARG1_REG_X86_64, - MAGIC_OUT0_REG_X86_64_WININTRIN, MAGIC_OUT1_REG_X86_64_WININTRIN, - MAGIC_OUT2_REG_X86_64_WININTRIN, MAGIC_OUT3_REG_X86_64_WININTRIN, - }, - messages::{client::ClientMessage, module::ModuleMessage}, - processor::Processor, - state::ModuleStateMachine, - stops::{StopError, StopReason}, - traits::{Interface, State}, - CLASS_NAME, -}; -use anyhow::{anyhow, bail, Result}; -use ffi_macro::{callback_wrappers, params}; -use tracing::{debug, error, info, trace, Level}; - -use simics_api::{ - attr_data, attr_object_or_nil_from_ptr, break_simulation, clear_exception, - continue_simulation_alone, discard_future, free_attribute, get_processor_number, - hap_add_callback, init_command_line, last_error, main_loop, quit, register_interface, - restore_micro_checkpoint, run_alone, run_command, save_micro_checkpoint, AttrValue, ConfObject, - Hap, HapCallback, MicroCheckpointFlags, SimException, -}; -use simics_api::{SimicsClassCreate, SimicsModule}; -use simics_api_macro::module; -use std::{ - collections::HashMap, - ffi::c_void, - io::stdout, - sync::mpsc::{channel, Receiver, Sender}, -}; -use tracing_subscriber::{filter::filter_fn, fmt, prelude::*, registry, Layer}; - -pub mod components; - -enum TestcaseWriteType { - Standard, - WinIntrin, -} - -#[module(class_name = CLASS_NAME)] -pub struct Module { - state: ModuleStateMachine, - tx: Sender, - rx: Receiver, - tracer: Tracer, - detector: Detector, - processors: HashMap, - stop_reason: Option, - iterations: usize, - buffer_address: u64, - buffer_size: u64, - last_start_processor_number: i32, - /// Whether we are running in repro mode, which means once we hit a stop harness we will - /// drop into the CLI - repro_mode: bool, - /// Set to true when running in repro mode once we have reached the stop harness. This is - /// used to disable the normal fuzzing procedures when reproducing issues. - repro_started: bool, - /// Values received from cpuid start winintrin calls to __cpuidex - winintrin_values: Vec, - testcase_write_type: TestcaseWriteType, -} - -impl SimicsModule for Module { - fn init(module_instance: *mut ConfObject) -> Result<*mut ConfObject> { - let state = ModuleStateMachine::new(); - let detector = Detector::try_new()?; - let tracer = Tracer::try_new()?; - let (tx, _) = channel(); - let (_, rx) = channel(); - - Ok(Module::new( - module_instance, - state, - tx, - rx, - tracer, - detector, - HashMap::new(), - None, - 0, - 0, - 0, - -1, - false, - false, - Vec::new(), - TestcaseWriteType::Standard, - )) - } -} - -impl Module { - pub fn initialize(&mut self) -> Result<()> { - // Add callbacks on stops and magic instructions - - // TODO: bruh - let self_ptr = self as *mut Self as *mut ConfObject; - - info!("Adding HAPs"); - - hap_add_callback( - Hap::CoreSimulationStopped, - HapCallback::CoreSimulationStopped(module_callbacks::on_simulation_stopped), - Some(self_ptr as *mut c_void), - )?; - - hap_add_callback( - Hap::CoreMagicInstruction, - HapCallback::CoreMagicInstruction(module_callbacks::on_magic_instruction), - Some(self_ptr as *mut c_void), - )?; - - let mut output_config = OutputConfig::default(); - - let mut input_config = match self.recv_msg()? { - ClientMessage::Initialize(config) => config, - _ => bail!("Expected initialize command"), - }; - - let reg = registry().with({ - fmt::layer() - .compact() - .with_thread_ids(true) - .with_thread_names(true) - .with_writer(stdout) - .with_filter(input_config.log_level) - .with_filter(filter_fn(|metadata| { - // LLMP absolutely spams the log when tracing - !(metadata.target() == "libafl_bolts::llmp" - && matches!(metadata.level(), &Level::TRACE)) - })) - }); - - reg.try_init() - .map_err(|e| { - error!("Could not install tracing subscriber: {}", e); - e - }) - .ok(); - - info!("SIMICS logger initialized"); - - output_config = self - .detector - .on_initialize(self_ptr, &mut input_config, output_config)?; - output_config = self - .tracer - .on_initialize(self_ptr, &mut input_config, output_config)?; - - if input_config.repro { - info!("Initializing module in repro mode. Stopping on first fault."); - self.repro_mode = true; - } - - info!("Sending initialized message"); - - self.send_msg(ModuleMessage::Initialized(output_config))?; - - Ok(()) - } -} - -impl Module { - /// Send a message to the client - fn send_msg(&mut self, msg: ModuleMessage) -> Result<()> { - trace!("Sending module message {:?}", msg); - // NOTE: consume returns an Option<()>, and it's ok (not an error) if this option is - // None. - self.state.consume(&msg)?; - self.tx.send(msg)?; - Ok(()) - } - - /// Receive a message from the client - fn recv_msg(&mut self) -> Result { - trace!("Waiting to receive client message"); - let msg = self.rx.recv()?; - trace!("Received client message {:?}", msg); - - if matches!(msg, ClientMessage::Exit) { - info!("Received Exit message, exiting and quitting"); - let self_ptr = self as *mut Self as *mut ConfObject; - self.detector.on_exit(self_ptr)?; - self.tracer.on_exit(self_ptr)?; - quit(0); - } - - // NOTE: consume returns an Option<()>, and it's ok (not an error) if this option is - // None. - self.state.consume(&msg)?; - - Ok(msg) - } - - fn reset_and_run(&mut self, processor_number: i32) -> Result<()> { - let self_ptr = self as *mut Self as *mut ConfObject; - // Tasks to do on reset - if !matches!(self.recv_msg()?, ClientMessage::Reset) { - bail!("Unexpected message. Expected Reset."); - } - - restore_micro_checkpoint(0); - discard_future(); - - self.detector.on_ready(self_ptr)?; - self.tracer.on_ready(self_ptr)?; - - self.send_msg(ModuleMessage::Ready)?; - - let (mut input, config) = if let ClientMessage::Run(input) = self.recv_msg()? { - input - } else { - bail!("Unexpected message. Expected Run."); - }; - - input.truncate(self.buffer_size as usize); - - match self.testcase_write_type { - TestcaseWriteType::Standard => { - // Normal mode, write bytes to the buffer and write the size back to the arg1 register - let processor = self - .processors - .get_mut(&processor_number) - .ok_or_else(|| anyhow!("No processor number {}", processor_number))?; - // Write the testcase to the guest's memory - processor.write_bytes(self.buffer_address, &input)?; - // Write the testcase size back to rdi - processor.set_reg_value(MAGIC_ARG1_REG_X86_64, input.len() as u64)?; - } - TestcaseWriteType::WinIntrin => { - // WinIntrin mode, write bytes to the buffer and write the buffer pointer and size - // back to the cpuid output variables eax, ebx, ecx, edx so they can be grabbed - let processor = self - .processors - .get_mut(&processor_number) - .ok_or_else(|| anyhow!("No processor number {}", processor_number))?; - - // Write the testcase to the guest's memory - processor.write_bytes(self.buffer_address, &input)?; - - // Write the buffer address and buffer size to the cpuid output - processor.set_reg_value( - MAGIC_OUT0_REG_X86_64_WININTRIN, - self.buffer_address & 0xffffffff, - )?; - processor - .set_reg_value(MAGIC_OUT1_REG_X86_64_WININTRIN, self.buffer_address >> 32)?; - - processor.set_reg_value( - MAGIC_OUT2_REG_X86_64_WININTRIN, - input.len() as u64 & 0xffffffff, - )?; - processor - .set_reg_value(MAGIC_OUT3_REG_X86_64_WININTRIN, input.len() as u64 >> 32)?; - } - } - - // Run the simulation until the magic start instruction, where we will receive a stop - // callback - self.stop_reason = None; - - // If we are in repro mode, we create a bookmark here, after writing the buffer - if self.repro_mode { - free_attribute(run_command("set-bookmark start")?); - } - - self.detector.on_run(self_ptr, &config)?; - self.tracer.on_run(self_ptr, &config)?; - - trace!("Running with input {:?} and config {:?}", input, config); - - continue_simulation_alone(); - - Ok(()) - } - - fn repro(&mut self) { - info!("Entering repro mode, starting SIMICS CLI"); - self.repro_started = true; - run_alone(|| { - init_command_line(); - main_loop(); - }); - } -} - -impl From<*mut std::ffi::c_void> for &mut Module { - /// Convert from a *mut Module pointer to a mutable reference &mut Module - fn from(value: *mut std::ffi::c_void) -> &'static mut Module { - let module_ptr: *mut Module = value as *mut Module; - unsafe { &mut *module_ptr } - } -} - -#[callback_wrappers(pub, unwrap_result)] -impl Module { - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn on_simulation_stopped( - &mut self, - _trigger_obj: *mut ConfObject, - // Exception is always SimExc_No_Exception - _exception: i64, - // Error string is always NULL - _error_string: *mut std::ffi::c_char, - ) -> Result<()> { - if self.repro_mode && !self.repro_started { - info!("Simulation stopped in repro mode before repro started"); - } else if self.repro_started { - // We bail out here, we still want the detector and tracer to be able to do their - // thing (the detector needs to cancel its timeout and so forth) - info!("Simulation stopped during repro"); - return Ok(()); - } - - let reason = - if let Some(detector_reason) = &self.detector.stop_reason { - detector_reason.clone() - } else if let Some(reason) = &self.stop_reason { - reason.clone() - } else { - StopReason::Error((StopError::Other( - "Stop occurred without a reason -- this probably means a SIMICS error occurred" - .into()), 0)) - }; - - debug!("Module got stopped simulation with reason {:?}", reason); - - // TODO: bruh - let self_ptr = self as *mut Self as *mut ConfObject; - self.detector.on_stopped(self_ptr, reason.clone())?; - self.tracer.on_stopped(self_ptr, reason.clone())?; - - match reason { - StopReason::Magic((magic, processor_number)) => { - match magic { - Magic::Start(_) => { - if self.iterations == 0 { - self.iterations += 1; - self.testcase_write_type = TestcaseWriteType::Standard; - // Tasks to do before first run - { - let processor = - self.processors.get_mut(&processor_number).ok_or_else( - || anyhow!("No processor number {}", processor_number), - )?; - self.buffer_address = - processor.get_reg_value(MAGIC_ARG0_REG_X86_64)?; - self.buffer_size = - processor.get_reg_value(MAGIC_ARG1_REG_X86_64)?; - } - save_micro_checkpoint( - "origin", - &[ - MicroCheckpointFlags::IdUser, - MicroCheckpointFlags::Persistent, - ], - )?; - self.detector.pre_first_run(self_ptr)?; - self.tracer.pre_first_run(self_ptr)?; - self.reset_and_run(processor_number)?; - } else { - // Every run, we stop at the start harness, then continue - self.iterations += 1; - - self.stop_reason = None; - self.last_start_processor_number = processor_number; - - continue_simulation_alone(); - } - } - Magic::Stop((code, _)) => { - let processor = self - .processors - .get_mut(&processor_number) - .ok_or_else(|| anyhow!("No processor number {}", processor_number))?; - let stop_value = processor.get_reg_value(MAGIC_ARG0_REG_X86_64)?; - let magic = Magic::Stop((code, Some(stop_value))); - self.send_msg(ModuleMessage::Stopped(StopReason::Magic(( - magic, - processor_number, - ))))?; - self.reset_and_run(processor_number)?; - } - Magic::StartWinIntrin64(_) => { - if self.iterations == 0 { - let processor = - self.processors.get_mut(&processor_number).ok_or_else(|| { - anyhow!("No processor number {}", processor_number) - })?; - let value = - processor.get_reg_value(MAGIC_ARG0_REG_X86_64_WININTRIN)? as u32; - - debug!( - "Got startup windows intrinsic value #{}: {:#x}", - self.winintrin_values.len(), - value - ); - - self.winintrin_values.push(value); - - if self.winintrin_values.len() == 4 { - let mut addr = 0; - - addr |= *self.winintrin_values.first().ok_or_else(|| { - anyhow!("No windows intrinsic value at index 0") - })? as u64; - - addr |= (*self.winintrin_values.get(1).ok_or_else(|| { - anyhow!("No windows intrinsic value at index 1") - })? as u64) - << 32; - - let mut size = 0; - - size |= *self.winintrin_values.get(2).ok_or_else(|| { - anyhow!("No windows intrinsic value at index 2") - })? as u64; - - size |= (*self.winintrin_values.get(3).ok_or_else(|| { - anyhow!("No windows intrinsic value at index 3") - })? as u64) - << 32; - - debug!("Got startup windows intrinsic values buffer_addr={:#x} size_addr={:#x}", addr, size); - - self.testcase_write_type = TestcaseWriteType::WinIntrin; - self.buffer_address = addr; - self.buffer_size = size; - self.winintrin_values.clear(); - self.iterations += 1; - save_micro_checkpoint( - "origin", - &[ - MicroCheckpointFlags::IdUser, - MicroCheckpointFlags::Persistent, - ], - )?; - - self.detector.pre_first_run(self_ptr)?; - self.tracer.pre_first_run(self_ptr)?; - - self.reset_and_run(processor_number)?; - } else { - continue_simulation_alone(); - } - } else { - // TODO: This isn't used for anything, so we just accept this is 4x - // the actual number of iterations when running with this type of - // start harness - self.iterations += 1; - - self.stop_reason = None; - self.last_start_processor_number = processor_number; - - continue_simulation_alone(); - } - } - } - } - StopReason::SimulationExit(processor_number) => { - self.send_msg(ModuleMessage::Stopped(StopReason::SimulationExit( - processor_number, - )))?; - self.reset_and_run(processor_number)?; - } - StopReason::Crash((fault, processor_number)) => { - if self.repro_mode { - self.repro(); - } else { - self.send_msg(ModuleMessage::Stopped(StopReason::Crash(( - fault, - processor_number, - ))))?; - self.reset_and_run(processor_number)?; - } - } - StopReason::TimeOut => { - if self.repro_mode { - self.repro(); - } else { - self.send_msg(ModuleMessage::Stopped(StopReason::TimeOut))?; - let processor_number = self.last_start_processor_number; - self.reset_and_run(processor_number)?; - } - } - StopReason::Breakpoint(breakpoint_number) => { - if self.repro_mode { - self.repro(); - } else { - self.send_msg(ModuleMessage::Stopped(StopReason::Breakpoint( - breakpoint_number, - )))?; - let processor_number = self.last_start_processor_number; - self.reset_and_run(processor_number)?; - } - } - StopReason::Error((_error, _processor_number)) => { - if self.repro_mode { - self.repro(); - } else { - // TODO: Error reporting - error!("Simulation error! Exiting"); - let self_ptr = self as *mut Self as *mut ConfObject; - self.detector.on_exit(self_ptr)?; - self.tracer.on_exit(self_ptr)?; - quit(1); - } - } - } - - Ok(()) - } - - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn on_magic_instruction( - &mut self, - trigger_obj: *mut ConfObject, - parameter: i64, - ) -> Result<()> { - if self.repro_started { - return Ok(()); - } - - trace!("Got Magic instruction callback"); - // The trigger obj is a CPU - let processor_number = get_processor_number(trigger_obj); - - if let Ok(magic) = Magic::try_from(parameter) { - self.stop_reason = Some(StopReason::Magic((magic, processor_number))); - - break_simulation("on_magic_instruction")?; - } - - Ok(()) - } - - #[params(!slf: *mut simics_api::ConfObject, ...)] - pub fn on_add_fault(&mut self, fault: i64) -> Result<()> { - info!("Module adding fault to watched set: {}", fault); - self.detector.on_add_fault(fault)?; - self.tracer.on_add_fault(fault)?; - - Ok(()) - } - - #[params(!slf: *mut simics_api::ConfObject, ...)] - pub fn on_add_processor(&mut self, processor: *mut AttrValue) -> Result<()> { - info!("Adding processor"); - self.detector.on_add_processor(processor)?; - self.tracer.on_add_processor(processor)?; - - let processor_obj: *mut ConfObject = attr_object_or_nil_from_ptr(processor)?; - let processor_number = get_processor_number(processor_obj); - - let processor = Processor::try_new(processor_number, processor_obj)? - .try_with_int_register(processor)? - .try_with_processor_info_v2(processor)?; - - self.processors.insert(processor_number, processor); - - info!("Added processor #{}", processor_number); - - Ok(()) - } - - #[params(!slf: *mut simics_api::ConfObject)] - pub fn on_init(&mut self) -> Result<()> { - info!("Received init signal, initializing module state."); - self.initialize()?; - Ok(()) - } - - #[params(!slf: *mut simics_api::ConfObject, ...)] - /// - /// # Safety - /// - /// This function dereferences the raw pointers passed into it through the interface. These - /// pointers must be valid. - pub fn on_add_channels(&mut self, tx: *mut AttrValue, rx: *mut AttrValue) -> Result<()> { - info!( - "Setting up channels Tx: {:#x} Rx: {:#x}", - tx as usize, rx as usize - ); - - self.tx = attr_data(unsafe { *tx }).map_err(|e| { - error!("Couldn't make attr data from pointer for tx"); - e - })?; - self.rx = attr_data(unsafe { *rx }).map_err(|e| { - error!("Couldn't make attr data from pointer for tx"); - e - })?; - info!("Set up channels"); - - match clear_exception()? { - SimException::NoException => Ok(()), - exception => { - bail!( - "Error running simics config: {:?}: {}", - exception, - last_error() - ); - } - } - } - - #[params(!slf: *mut simics_api::ConfObject, ...)] - pub fn on_set_breakpoints_are_faults(&mut self, breakpoints_are_faults: bool) -> Result<()> { - self.detector - .on_set_breakpoints_are_faults(breakpoints_are_faults)?; - self.tracer - .on_set_breakpoints_are_faults(breakpoints_are_faults)?; - Ok(()) - } -} - -#[derive(Debug, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)] -/// This is the rust definition for the tffs_module_interface_t declaration in the stubs, which -/// are used to generate the interface module. This struct definition must match that one exactly -/// -/// # Examples -/// -/// Assuming your model is configured, and by resuming the simulation the target The -/// following SIMICS code (either in a SIMICS script, or in an equivalent Python script) -/// is typically sufficient to start the fuzzer immediately. -/// -/// ```simics -/// stop -/// @conf.tsffs_module.iface.tsffs_module.init() -/// @conf.tsffs_module.iface.tsffs_module.add_processor(SIM_get_object(simenv.system).mb.cpu0.core[0][0]) -/// # Add triple fault (special, -1 code because it has no interrupt number) -/// @conf.tsffs_module.iface.tsffs_module.add_fault(-1) -/// # Add general protection fault (interrupt #13) -/// @conf.tsffs_module.iface.tsffs_module.add_fault(13) -/// $con.input "target.efi\n" -/// # This continue is optional, the fuzzer will resume execution for you if you do not resume -/// # it at the end of your script -/// continue -/// ``` -pub struct ModuleInterface { - /// Start the fuzzer. If `run` is true, this call will not return and the SIMICS main loop - /// will be entered. If you need to run additional scripting commands after signaling the - /// fuzzer to start, pass `False` instead, and later call either `SIM_continue()` or `run` for - /// Python and SIMICS scripts respectively. - pub init: extern "C" fn(obj: *mut ConfObject), - /// Inform the module of a processor that should be traced and listened to for timeout and - /// crash objectives. You must add exactly one processor. - pub add_processor: extern "C" fn(obj: *mut ConfObject, processor: *mut AttrValue), - /// Add a fault to the set of faults listened to by the fuzzer. The default set of faults is - /// no faults, although the fuzzer frontend being used typically specifies a limited set. - pub add_fault: extern "C" fn(obj: *mut ConfObject, fault: i64), - /// Add channels to the module. This API should not be called by users from Python and is - /// instead used by the fuzzer frontend to initiate communication with the module. - pub add_channels: extern "C" fn(obj: *mut ConfObject, tx: *mut AttrValue, rx: *mut AttrValue), - /// Set whether breakpoints are treated as faults - pub set_breakpoints_are_faults: - extern "C" fn(obj: *mut ConfObject, breakpoints_are_faults: bool), -} - -impl Default for ModuleInterface { - fn default() -> Self { - Self { - init: module_callbacks::on_init, - add_processor: module_callbacks::on_add_processor, - add_fault: module_callbacks::on_add_fault, - add_channels: module_callbacks::on_add_channels, - set_breakpoints_are_faults: module_callbacks::on_set_breakpoints_are_faults, - } - } -} - -#[no_mangle] -/// Called by SIMICS C stub to initialize the module, this is the entrypoint of the entire -/// module -pub extern "C" fn module_init_local() { - let cls = - Module::create().unwrap_or_else(|e| panic!("Failed to create class {}: {}", CLASS_NAME, e)); - - register_interface::<_, ModuleInterface>(cls, CLASS_NAME).unwrap_or_else(|e| { - panic!( - "Failed to register interface for class {}: {}", - CLASS_NAME, e - ) - }); -} diff --git a/tsffs_module/src/module/stop_reason.rs b/tsffs_module/src/module/stop_reason.rs deleted file mode 100644 index 9dbd5e87..00000000 --- a/tsffs_module/src/module/stop_reason.rs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Definitions of various reasons the simulation can stop - -use serde::{Deserialize, Serialize}; - -use super::{components::detector::fault::Fault, controller::magic::Magic}; - -#[derive(Debug, Serialize, Deserialize, Clone)] -/// Each time the simulation stops, a stop type must be used to determine whether the stop is -/// normal, a crash, or a timeout (timeouts cannot be monitored by the fuzzer because the -/// simulator does not run at wall clock speeds, they MUST be monitored by SIMICS). In all cases -/// a snapshot will be reverted to, but we need this information to inform the fuzzer objectives -pub enum StopReason { - /// A magic instruction happened - Magic(Magic), - /// A (possibly) normal stop due to the simulation exiting - SimulationExit, - /// A crash occurred - Crash(Fault), - /// A timeout occurred - TimeOut, -} diff --git a/tsffs_module/src/processor/disassembler/mod.rs b/tsffs_module/src/processor/disassembler/mod.rs deleted file mode 100644 index e1635196..00000000 --- a/tsffs_module/src/processor/disassembler/mod.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -pub mod x86_64; - -#[derive(Debug)] -pub enum CmpExpr { - Deref((Box, Option)), - Reg((String, u8)), - Mul((Box, Box)), - Add((Box, Box)), - U8(u8), - I8(i8), - U16(u16), - I16(i16), - U32(u32), - I32(i32), - U64(u64), - I64(i64), - Addr(u64), -} diff --git a/tsffs_module/src/processor/disassembler/x86_64.rs b/tsffs_module/src/processor/disassembler/x86_64.rs deleted file mode 100644 index 26e82390..00000000 --- a/tsffs_module/src/processor/disassembler/x86_64.rs +++ /dev/null @@ -1,316 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use anyhow::{bail, Error, Result}; -use tracing::trace; -use yaxpeax_x86::amd64::{ConditionCode, InstDecoder, Instruction, Opcode, Operand}; - -use crate::{processor::CmpType, traits::TracerDisassembler}; - -use super::CmpExpr; - -pub struct Disassembler { - decoder: InstDecoder, - last: Option, -} - -impl Disassembler { - pub fn new() -> Self { - Self { - decoder: InstDecoder::default(), - last: None, - } - } -} - -impl TryFrom<(&Operand, Option)> for CmpExpr { - type Error = Error; - - fn try_from(value: (&Operand, Option)) -> Result { - let width = value.1; - let value = value.0; - - let expr = match value { - Operand::ImmediateI8(i) => CmpExpr::I8(*i), - Operand::ImmediateU8(u) => CmpExpr::U8(*u), - Operand::ImmediateI16(i) => CmpExpr::I16(*i), - Operand::ImmediateU16(u) => CmpExpr::U16(*u), - Operand::ImmediateI32(i) => CmpExpr::I32(*i), - Operand::ImmediateU32(u) => CmpExpr::U32(*u), - Operand::ImmediateI64(i) => CmpExpr::I64(*i), - Operand::ImmediateU64(u) => CmpExpr::U64(*u), - Operand::Register(r) => CmpExpr::Reg((r.name().to_string(), r.width())), - Operand::DisplacementU32(d) => CmpExpr::Addr(*d as u64), - Operand::DisplacementU64(d) => CmpExpr::Addr(*d), - Operand::RegDeref(r) => CmpExpr::Deref(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - width, - )), - Operand::RegDisp(r, d) => CmpExpr::Deref(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::I32(*d)), - ))), - width, - )), - Operand::RegScale(r, s) => CmpExpr::Deref(( - Box::new(CmpExpr::Mul(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::U8(*s)), - ))), - width, - )), - Operand::RegIndexBase(r, i) => CmpExpr::Deref(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), - ))), - width, - )), - Operand::RegIndexBaseDisp(r, i, d) => CmpExpr::Deref(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), - ))), - Box::new(CmpExpr::I32(*d)), - ))), - width, - )), - Operand::RegScaleDisp(r, s, d) => CmpExpr::Deref(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Mul(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::U8(*s)), - ))), - Box::new(CmpExpr::I32(*d)), - ))), - width, - )), - Operand::RegIndexBaseScale(r, i, s) => CmpExpr::Deref(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), - Box::new(CmpExpr::U8(*s)), - ))), - ))), - width, - )), - Operand::RegIndexBaseScaleDisp(r, i, s, d) => CmpExpr::Deref(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((r.name().to_string(), r.width()))), - Box::new(CmpExpr::Add(( - Box::new(CmpExpr::Reg((i.name().to_string(), i.width()))), - Box::new(CmpExpr::U8(*s)), - ))), - ))), - Box::new(CmpExpr::I32(*d)), - ))), - width, - )), - _ => { - bail!("Unsupported operand type for cmplog"); - } - }; - trace!("Convert operand {:?} to cmpexpr {:?}", value, expr); - Ok(expr) - } -} - -impl TracerDisassembler for Disassembler { - /// Check if an instruction is a control flow instruction - fn last_was_control_flow(&self) -> Result { - if let Some(last) = self.last { - if matches!( - last.opcode(), - Opcode::JA - | Opcode::JB - | Opcode::JRCXZ - | Opcode::JG - | Opcode::JGE - | Opcode::JL - | Opcode::JLE - | Opcode::JNA - | Opcode::JNB - | Opcode::JNO - | Opcode::JNP - | Opcode::JNS - | Opcode::JNZ - | Opcode::JO - | Opcode::JP - | Opcode::JS - | Opcode::JZ - | Opcode::LOOP - | Opcode::LOOPNZ - | Opcode::LOOPZ - ) { - Ok(true) - } else { - Ok(false) - } - } else { - bail!("No last instruction"); - } - } - - /// Check if an instruction is a call instruction - fn last_was_call(&self) -> Result { - if let Some(last) = self.last { - Ok(matches!(last.opcode(), Opcode::CALL | Opcode::CALLF)) - } else { - bail!("No last instruction"); - } - } - - /// Check if an instruction is a ret instruction - fn last_was_ret(&self) -> Result { - if let Some(last) = self.last { - Ok(matches!(last.opcode(), Opcode::RETF | Opcode::RETURN)) - } else { - bail!("No last instruction"); - } - } - - /// Check if an instruction is a cmp instruction - fn last_was_cmp(&self) -> Result { - if let Some(last) = self.last { - if matches!( - last.opcode(), - Opcode::CMP - | Opcode::CMPPD - | Opcode::CMPS - | Opcode::CMPSD - | Opcode::CMPSS - | Opcode::CMPXCHG16B - | Opcode::COMISD - | Opcode::COMISS - | Opcode::FCOM - | Opcode::FCOMI - | Opcode::FCOMIP - | Opcode::FCOMP - | Opcode::FCOMPP - | Opcode::FICOM - | Opcode::FICOMP - | Opcode::FTST - | Opcode::FUCOM - | Opcode::FUCOMI - | Opcode::FUCOMIP - | Opcode::FUCOMP - | Opcode::FXAM - | Opcode::PCMPEQB - | Opcode::PCMPEQD - | Opcode::PCMPEQW - | Opcode::PCMPGTB - | Opcode::PCMPGTD - | Opcode::PCMPGTQ - | Opcode::PCMPGTW - | Opcode::PMAXSB - | Opcode::PMAXSD - | Opcode::PMAXUD - | Opcode::PMAXUW - | Opcode::PMINSB - | Opcode::PMINSD - | Opcode::PMINUD - | Opcode::PMINUW - | Opcode::TEST - | Opcode::UCOMISD - | Opcode::UCOMISS - | Opcode::VPCMPB - | Opcode::VPCMPD - | Opcode::VPCMPQ - | Opcode::VPCMPUB - | Opcode::VPCMPUD - | Opcode::VPCMPUQ - | Opcode::VPCMPUW - | Opcode::VPCMPW - ) { - Ok(true) - } else { - Ok(false) - } - } else { - bail!("No last instruction"); - } - } - - fn disassemble(&mut self, bytes: &[u8]) -> Result<()> { - if let Ok(insn) = self.decoder.decode_slice(bytes) { - self.last = Some(insn); - } else { - bail!("Could not disassemble {:?}", bytes); - } - - Ok(()) - } - - fn cmp(&self) -> Result> { - let mut cmp_exprs = Vec::new(); - if self.last_was_cmp()? { - if let Some(last) = self.last { - for op_idx in 0..last.operand_count() { - let op = last.operand(op_idx); - let width = if let Some(width) = op.width() { - Some(width) - } else if let Some(width) = last.mem_size() { - width.bytes_size() - } else { - None - }; - if let Ok(expr) = CmpExpr::try_from((&op, width)) { - cmp_exprs.push(expr); - } - } - } - } else { - bail!("Last was not a compare"); - } - Ok(cmp_exprs) - } - - fn cmp_type(&self) -> Result> { - if self.last_was_cmp()? { - if let Some(last) = self.last { - if let Some(condition) = last.opcode().condition() { - return match condition { - // Overflow - ConditionCode::O => Ok(vec![]), - // No Overflow - ConditionCode::NO => Ok(vec![]), - // Below - ConditionCode::B => Ok(vec![CmpType::Lesser]), - // Above or Equal - ConditionCode::AE => Ok(vec![CmpType::Greater, CmpType::Equal]), - // Zero - ConditionCode::Z => Ok(vec![]), - // Not Zero - ConditionCode::NZ => Ok(vec![]), - // Above - ConditionCode::A => Ok(vec![CmpType::Greater]), - // Below or Equal - ConditionCode::BE => Ok(vec![CmpType::Lesser, CmpType::Equal]), - // Signed - ConditionCode::S => Ok(vec![]), - // Not Signed - ConditionCode::NS => Ok(vec![]), - // Parity - ConditionCode::P => Ok(vec![]), - // No Parity - ConditionCode::NP => Ok(vec![]), - // Less - ConditionCode::L => Ok(vec![CmpType::Lesser]), - // Greater or Equal - ConditionCode::GE => Ok(vec![CmpType::Greater, CmpType::Equal]), - // Greater - ConditionCode::G => Ok(vec![CmpType::Greater]), - // Less or Equal - ConditionCode::LE => Ok(vec![CmpType::Lesser, CmpType::Equal]), - }; - } - } - } - - bail!("Last instruction was not a compare"); - } -} diff --git a/tsffs_module/src/processor/mod.rs b/tsffs_module/src/processor/mod.rs deleted file mode 100644 index 4427c9ec..00000000 --- a/tsffs_module/src/processor/mod.rs +++ /dev/null @@ -1,932 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Implements generic processor operations on the simulated CPU or CPUs -use anyhow::{anyhow, bail, Error, Result}; - -use libafl::prelude::CmpValues; -use simics_api::{ - attr_string, get_attribute, read_byte, write_byte, AttrValue, CachedInstructionHandle, - ConfObject, CpuCachedInstruction, CpuInstructionQuery, CpuInstrumentationSubscribe, Cycle, - InstructionHandle, IntRegister, ProcessorInfoV2, -}; -use std::{collections::HashMap, ffi::c_void, mem::size_of}; -use tracing::{error, trace}; - -pub(crate) mod disassembler; - -use disassembler::x86_64::Disassembler as X86_64Disassembler; - -use crate::traits::TracerDisassembler; - -use self::disassembler::CmpExpr; - -#[derive(Clone, Copy, Debug)] -#[repr(u8)] -pub enum CmpType { - Equal = 1, - Greater = 2, - Lesser = 4, - Fp = 8, - FpMod = 16, - IntMod = 32, - Transform = 64, -} - -#[derive(Debug)] -pub enum CmpValue { - U8(u8), - I8(i8), - U16(u16), - I16(i16), - U32(u32), - I32(i32), - U64(u64), - I64(i64), - Expr(Box), -} - -impl TryFrom<&CmpExpr> for CmpValue { - type Error = Error; - fn try_from(value: &CmpExpr) -> Result { - Ok(match value { - CmpExpr::U8(u) => CmpValue::U8(*u), - CmpExpr::I8(i) => CmpValue::I8(*i), - CmpExpr::U16(u) => CmpValue::U16(*u), - CmpExpr::I16(i) => CmpValue::I16(*i), - CmpExpr::U32(u) => CmpValue::U32(*u), - CmpExpr::I32(i) => CmpValue::I32(*i), - CmpExpr::U64(u) => CmpValue::U64(*u), - CmpExpr::I64(i) => CmpValue::I64(*i), - _ => bail!("Can't convert directly from non-integral expr"), - }) - } -} - -#[derive(Default, Debug)] -pub struct TraceResult { - pub edge: Option, - pub cmp: Option<(u64, Vec, CmpValues)>, -} - -impl TraceResult { - fn from_pc(value: Option) -> Self { - Self { - edge: value, - cmp: None, - } - } - - fn from_pc_and_cmp_type_value(pc: u64, types: Vec, value: CmpValues) -> Self { - Self { - edge: None, - cmp: Some((pc, types, value)), - } - } -} - -pub struct Processor { - number: i32, - cpu: *mut ConfObject, - arch: String, - disassembler: Box, - cpu_instrumentation_subscribe: Option, - cpu_instruction_query: Option, - cpu_cached_instruction: Option, - processor_info_v2: Option, - int_register: Option, - cycle: Option, - reg_numbers: HashMap, -} - -impl Processor { - pub fn number(&self) -> i32 { - self.number - } - - pub fn cpu(&self) -> *mut ConfObject { - self.cpu - } - - pub fn arch(&self) -> String { - self.arch.clone() - } -} - -impl Processor { - pub fn try_new(number: i32, cpu: *mut ConfObject) -> Result { - let arch = attr_string(get_attribute(cpu, "architecture")?)?; - - let disassembler = match arch.as_str() { - "x86-64" => Box::new(X86_64Disassembler::new()), - _ => { - bail!("Unsupported architecture {}", arch) - } - }; - - Ok(Self { - number, - cpu, - arch, - disassembler, - cpu_instrumentation_subscribe: None, - cpu_instruction_query: None, - cpu_cached_instruction: None, - processor_info_v2: None, - int_register: None, - cycle: None, - reg_numbers: HashMap::new(), - }) - } - - pub fn try_with_cpu_instrumentation_subscribe( - mut self, - processor_attr: *mut AttrValue, - ) -> Result { - self.cpu_instrumentation_subscribe = - Some(CpuInstrumentationSubscribe::try_new(processor_attr)?); - Ok(self) - } - - pub fn try_with_cpu_instruction_query( - mut self, - processor_attr: *mut AttrValue, - ) -> Result { - self.cpu_instruction_query = Some(CpuInstructionQuery::try_new(processor_attr)?); - Ok(self) - } - - pub fn try_with_cpu_cached_instruction( - mut self, - processor_attr: *mut AttrValue, - ) -> Result { - self.cpu_cached_instruction = Some(CpuCachedInstruction::try_new(processor_attr)?); - Ok(self) - } - - pub fn try_with_processor_info_v2(mut self, processor_attr: *mut AttrValue) -> Result { - self.processor_info_v2 = Some(ProcessorInfoV2::try_new(processor_attr)?); - Ok(self) - } - - pub fn try_with_int_register(mut self, processor_attr: *mut AttrValue) -> Result { - self.int_register = Some(IntRegister::try_new(processor_attr)?); - Ok(self) - } - - pub fn try_with_cycle(mut self, processor_attr: *mut AttrValue) -> Result { - self.cycle = Some(Cycle::try_new(processor_attr)?); - Ok(self) - } -} - -impl Processor { - pub fn register_instruction_before_cb( - &mut self, - // cpu: *mut ConfObject, - cb: unsafe extern "C" fn( - *mut ConfObject, - *mut ConfObject, - *mut InstructionHandle, - *mut c_void, - ), - user_data: Option, - ) -> Result<()> - where - D: Into<*mut c_void>, - { - if let Some(cpu_instrumentation_subscribe) = self.cpu_instrumentation_subscribe.as_mut() { - cpu_instrumentation_subscribe - .register_instruction_before_cb(self.cpu, cb, user_data)?; - } - - Ok(()) - } - - pub fn register_cached_instruction_cb( - &mut self, - // cpu: *mut ConfObject, - cb: unsafe extern "C" fn( - *mut ConfObject, - *mut ConfObject, - *mut CachedInstructionHandle, - *mut InstructionHandle, - *mut c_void, - ), - user_data: Option, - ) -> Result<()> - where - D: Into<*mut c_void>, - { - if let Some(cpu_instrumentation_subscribe) = self.cpu_instrumentation_subscribe.as_mut() { - cpu_instrumentation_subscribe - .register_cached_instruction_cb(self.cpu, cb, user_data)?; - } - - Ok(()) - } - - /// This expression can only be nested approximately 4 deep, so we do this - /// reduction recursively - /// - /// We don't implement this as try_from because we need to read mem and regs - pub fn simplify(&mut self, expr: &CmpExpr) -> Result { - trace!("Reducing {:?}", expr); - match expr { - CmpExpr::Deref((expr, width)) => { - let v = self.simplify(expr)?; - - match v { - CmpValue::U64(a) => { - let casted = match width { - Some(1) => CmpValue::U8(u8::from_le_bytes( - self.read_bytes(a, size_of::()) - .map_err(|e| { - error!("Error reading bytes from {:#x}: {}", a, e); - anyhow!("Error reading bytes from {:#x}: {}", a, e) - })? - .try_into() - .map_err(|v| { - error!("Error converting u64 vec {:?} to byte array", v); - anyhow!("Error converting u64 vec {:?} to byte array", v) - })?, - )), - Some(2) => CmpValue::U16(u16::from_le_bytes( - self.read_bytes(a, size_of::()) - .map_err(|e| { - error!("Error reading bytes from {:#x}: {}", a, e); - anyhow!("Error reading bytes from {:#x}: {}", a, e) - })? - .try_into() - .map_err(|v| { - error!("Error converting u64 vec {:?} to byte array", v); - anyhow!("Error converting u64 vec {:?} to byte array", v) - })?, - )), - Some(4) => CmpValue::U32(u32::from_le_bytes( - self.read_bytes(a, size_of::()) - .map_err(|e| { - error!("Error reading bytes from {:#x}: {}", a, e); - anyhow!("Error reading bytes from {:#x}: {}", a, e) - })? - .try_into() - .map_err(|v| { - error!("Error converting u64 vec {:?} to byte array", v); - anyhow!("Error converting u64 vec {:?} to byte array", v) - })?, - )), - Some(8) => CmpValue::U64(u64::from_le_bytes( - self.read_bytes(a, size_of::()) - .map_err(|e| { - error!("Error reading bytes from {:#x}: {}", a, e); - anyhow!("Error reading bytes from {:#x}: {}", a, e) - })? - .try_into() - .map_err(|v| { - error!("Error converting u64 vec {:?} to byte array", v); - anyhow!("Error converting u64 vec {:?} to byte array", v) - })?, - )), - _ => bail!("Can't cast to non-power-of-2 width {:?}", width), - }; - Ok(casted) - } - _ => bail!("Can't dereference non-address"), - } - } - CmpExpr::Reg((name, width)) => { - let value = self.get_reg_value(name).map_err(|e| { - error!("Couldn't read register value for register {}: {}", name, e); - anyhow!("Couldn't read register value for register {}: {}", name, e) - })?; - - let casted = match width { - 1 => CmpValue::U8(value.to_le_bytes()[0]), - 2 => CmpValue::U16(u16::from_le_bytes( - value.to_le_bytes()[..size_of::()] - .try_into() - .map_err(|e| { - error!("Error converting to u32 bytes: {}", e); - anyhow!("Error converting to u32 bytes: {}", e) - })?, - )), - 4 => CmpValue::U32(u32::from_le_bytes( - value.to_le_bytes()[..size_of::()] - .try_into() - .map_err(|e| { - error!("Error converting to u32 bytes: {}", e); - anyhow!("Error converting to u32 bytes: {}", e) - })?, - )), - 8 => CmpValue::U64(u64::from_le_bytes(value.to_le_bytes())), - _ => bail!("Can't cast to non-power-of-2 width {}", width), - }; - Ok(casted) - } - CmpExpr::Mul((l, r)) => { - let lv = self.simplify(l)?; - let rv = self.simplify(r)?; - - match (lv, rv) { - (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_mul(ru))), - (CmpValue::U8(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U8((lu as i32).wrapping_mul(ru as i32) as u8)) - } - (CmpValue::U8(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U8((lu as u16).wrapping_mul(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U8((lu as i32).wrapping_mul(ru as i32) as u8)) - } - (CmpValue::U8(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U8((lu as u32).wrapping_mul(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U8((lu as i32).wrapping_mul(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U8((lu as u64).wrapping_mul(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U8((lu as i64).wrapping_mul(ru) as u8)) - } - (CmpValue::I8(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I8((lu as i16).wrapping_mul(ru as i16) as i8)) - } - (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_mul(ru))), - (CmpValue::I8(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I8((lu as i32).wrapping_mul(ru as i32) as i8)) - } - (CmpValue::I8(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I8((lu as i16).wrapping_mul(ru) as i8)) - } - (CmpValue::I8(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) - } - (CmpValue::I8(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) - } - (CmpValue::I8(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I8((lu as i64).wrapping_mul(ru as i64) as i8)) - } - (CmpValue::I8(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I8((lu as i64).wrapping_mul(ru) as i8)) - } - (CmpValue::U16(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::U16(lu.wrapping_mul(ru as u16))) - } - (CmpValue::U16(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U16((lu as i32).wrapping_mul(ru as i32) as u16)) - } - (CmpValue::U16(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U16(lu.wrapping_mul(ru))) - } - (CmpValue::U16(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U16((lu as i32).wrapping_mul(ru as i32) as u16)) - } - (CmpValue::U16(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U16((lu as u32).wrapping_mul(ru) as u16)) - } - (CmpValue::U16(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U16((lu as i32).wrapping_mul(ru) as u16)) - } - (CmpValue::U16(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U16((lu as u64).wrapping_mul(ru) as u16)) - } - (CmpValue::U16(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U16((lu as i64).wrapping_mul(ru) as u16)) - } - (CmpValue::I16(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I16(lu.wrapping_mul(ru as i16))) - } - (CmpValue::I16(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::I16(lu.wrapping_mul(ru as i16))) - } - (CmpValue::I16(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I16((lu as i32).wrapping_mul(ru as i32) as i16)) - } - (CmpValue::I16(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I16(lu.wrapping_mul(ru))) - } - (CmpValue::I16(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I16((lu as i64).wrapping_mul(ru as i64) as i16)) - } - (CmpValue::I16(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I16((lu as i32).wrapping_mul(ru) as i16)) - } - (CmpValue::I16(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I16((lu as i64).wrapping_mul(ru as i64) as i16)) - } - (CmpValue::I16(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I16((lu as i64).wrapping_mul(ru) as i16)) - } - (CmpValue::U32(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::U32(lu.wrapping_mul(ru as u32))) - } - (CmpValue::U32(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) - } - (CmpValue::U32(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U32(lu.wrapping_mul(ru as u32))) - } - (CmpValue::U32(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) - } - (CmpValue::U32(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U32(lu.wrapping_mul(ru))) - } - (CmpValue::U32(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U32((lu as i64).wrapping_mul(ru as i64) as u32)) - } - (CmpValue::U32(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U32((lu as u64).wrapping_mul(ru) as u32)) - } - (CmpValue::U32(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U32((lu as i64).wrapping_mul(ru) as u32)) - } - (CmpValue::I32(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) - } - (CmpValue::I32(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) - } - (CmpValue::I32(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) - } - (CmpValue::I32(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I32(lu.wrapping_mul(ru as i32))) - } - (CmpValue::I32(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I32((lu as i64).wrapping_mul(ru as i64) as i32)) - } - (CmpValue::I32(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I32(lu.wrapping_mul(ru))) - } - (CmpValue::I32(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I32((lu as i64).wrapping_mul(ru as i64) as i32)) - } - (CmpValue::I32(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I32((lu as i64).wrapping_mul(ru) as i32)) - } - (CmpValue::U64(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) - } - (CmpValue::U64(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) - } - (CmpValue::U64(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) - } - (CmpValue::U64(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) - } - (CmpValue::U64(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U64(lu.wrapping_mul(ru as u64))) - } - (CmpValue::U64(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U64((lu as i64).wrapping_mul(ru as i64) as u64)) - } - (CmpValue::U64(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U64(lu.wrapping_mul(ru))) - } - (CmpValue::U64(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U64((lu as i64).wrapping_mul(ru) as u64)) - } - (CmpValue::I64(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I64(lu.wrapping_mul(ru))) - } - _ => bail!("Cannot multiply non-integral types"), - } - } - CmpExpr::Add((l, r)) => { - let lv = self.simplify(l)?; - let rv = self.simplify(r)?; - - match (lv, rv) { - (CmpValue::U8(lu), CmpValue::U8(ru)) => Ok(CmpValue::U8(lu.wrapping_add(ru))), - (CmpValue::U8(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U8(lu.wrapping_add_signed(ru))) - } - (CmpValue::U8(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U8((lu as u16).wrapping_add(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U8((lu as u16).wrapping_add_signed(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U8((lu as u32).wrapping_add(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U8((lu as u32).wrapping_add_signed(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U8((lu as u64).wrapping_add(ru) as u8)) - } - (CmpValue::U8(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U8((lu as u64).wrapping_add_signed(ru) as u8)) - } - (CmpValue::I8(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I8(lu.wrapping_add_unsigned(ru))) - } - (CmpValue::I8(lu), CmpValue::I8(ru)) => Ok(CmpValue::I8(lu.wrapping_add(ru))), - (CmpValue::I8(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I8((lu as i16).wrapping_add_unsigned(ru) as i8)) - } - (CmpValue::I8(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I8((lu as i16).wrapping_add(ru) as i8)) - } - (CmpValue::I8(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I8((lu as i32).wrapping_add_unsigned(ru) as i8)) - } - (CmpValue::I8(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I8((lu as i32).wrapping_add(ru) as i8)) - } - (CmpValue::I8(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I8((lu as i64).wrapping_add_unsigned(ru) as i8)) - } - (CmpValue::I8(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I8((lu as i64).wrapping_add(ru) as i8)) - } - (CmpValue::U16(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::U16(lu.wrapping_add(ru as u16))) - } - (CmpValue::U16(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U16(lu.wrapping_add_signed(ru as i16))) - } - (CmpValue::U16(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U16(lu.wrapping_add(ru))) - } - (CmpValue::U16(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U16(lu.wrapping_add_signed(ru))) - } - (CmpValue::U16(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U16((lu as u32).wrapping_add(ru) as u16)) - } - (CmpValue::U16(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U16((lu as u32).wrapping_add_signed(ru) as u16)) - } - (CmpValue::U16(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U16((lu as u64).wrapping_add(ru) as u16)) - } - (CmpValue::U16(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U16((lu as u64).wrapping_add_signed(ru) as u16)) - } - (CmpValue::I16(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru as u16))) - } - (CmpValue::I16(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::I16(lu.wrapping_add(ru as i16))) - } - (CmpValue::I16(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I16(lu.wrapping_add_unsigned(ru))) - } - (CmpValue::I16(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I16(lu.wrapping_add(ru))) - } - (CmpValue::I16(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I16((lu as i32).wrapping_add_unsigned(ru) as i16)) - } - (CmpValue::I16(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I16((lu as i32).wrapping_add(ru) as i16)) - } - (CmpValue::I16(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I16((lu as i64).wrapping_add_unsigned(ru) as i16)) - } - (CmpValue::I16(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I16((lu as i64).wrapping_add(ru) as i16)) - } - (CmpValue::U32(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) - } - (CmpValue::U32(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) - } - (CmpValue::U32(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U32(lu.wrapping_add(ru as u32))) - } - (CmpValue::U32(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U32(lu.wrapping_add_signed(ru as i32))) - } - (CmpValue::U32(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U32(lu.wrapping_add(ru))) - } - (CmpValue::U32(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U32(lu.wrapping_add_signed(ru))) - } - (CmpValue::U32(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U32((lu as u64).wrapping_add(ru) as u32)) - } - (CmpValue::U32(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U32((lu as u64).wrapping_add_signed(ru) as u32)) - } - (CmpValue::I32(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) - } - (CmpValue::I32(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) - } - (CmpValue::I32(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru as u32))) - } - (CmpValue::I32(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I32(lu.wrapping_add(ru as i32))) - } - (CmpValue::I32(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I32(lu.wrapping_add_unsigned(ru))) - } - (CmpValue::I32(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I32(lu.wrapping_add(ru))) - } - (CmpValue::I32(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I32((lu as i64).wrapping_add_unsigned(ru) as i32)) - } - (CmpValue::I32(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I32((lu as i64).wrapping_add(ru) as i32)) - } - (CmpValue::U64(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) - } - (CmpValue::U64(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) - } - (CmpValue::U64(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) - } - (CmpValue::U64(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) - } - (CmpValue::U64(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add(ru as u64))) - } - (CmpValue::U64(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add_signed(ru as i64))) - } - (CmpValue::U64(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add(ru))) - } - (CmpValue::U64(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::U64(lu.wrapping_add_signed(ru))) - } - (CmpValue::I64(lu), CmpValue::U8(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) - } - (CmpValue::I64(lu), CmpValue::I8(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::U16(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) - } - (CmpValue::I64(lu), CmpValue::I16(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::U32(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru as u64))) - } - (CmpValue::I64(lu), CmpValue::I32(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add(ru as i64))) - } - (CmpValue::I64(lu), CmpValue::U64(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add_unsigned(ru))) - } - (CmpValue::I64(lu), CmpValue::I64(ru)) => { - Ok(CmpValue::I64(lu.wrapping_add(ru))) - } - _ => bail!("Cannot multiply non-integral types"), - } - } - CmpExpr::U8(_) - | CmpExpr::I8(_) - | CmpExpr::U16(_) - | CmpExpr::I16(_) - | CmpExpr::U32(_) - | CmpExpr::I32(_) - | CmpExpr::U64(_) - | CmpExpr::I64(_) => CmpValue::try_from(expr), - CmpExpr::Addr(a) => { - let bytes: [u8; 8] = self - .read_bytes(*a, size_of::()) - .map_err(|e| { - error!("Error reading bytes from {:#x}: {}", a, e); - anyhow!("Error reading bytes from {:#x}: {}", a, e) - })? - .try_into() - .map_err(|v| { - error!("Error converting u64 vec {:?} to byte array", v); - anyhow!("Error converting u64 vec {:?} to byte array", v) - })?; - Ok(CmpValue::U64(u64::from_le_bytes(bytes))) - } - } - } - - pub fn trace( - &mut self, - // cpu: *mut ConfObject, - instruction_query: *mut InstructionHandle, - ) -> Result { - if let Some(cpu_instruction_query) = self.cpu_instruction_query.as_mut() { - let bytes = cpu_instruction_query.get_instruction_bytes(self.cpu, instruction_query)?; - self.disassembler.disassemble(bytes)?; - - if self.disassembler.last_was_call()? - || self.disassembler.last_was_control_flow()? - || self.disassembler.last_was_ret()? - { - if let Some(processor_info_v2) = self.processor_info_v2.as_mut() { - Ok(TraceResult::from_pc( - processor_info_v2.get_program_counter(self.cpu).ok(), - )) - } else { - bail!("No ProcessorInfoV2 interface registered in processor. Try building with `try_with_processor_info_v2`"); - } - } else { - Ok(TraceResult::default()) - } - } else { - bail!("No CpuInstructionQuery interface registered in processor. Try building with `try_with_cpu_instruction_query`"); - } - } - - pub fn trace_cmp(&mut self, instruction_query: *mut InstructionHandle) -> Result { - if let Some(cpu_instruction_query) = self.cpu_instruction_query.as_mut() { - let bytes = cpu_instruction_query.get_instruction_bytes(self.cpu, instruction_query)?; - self.disassembler.disassemble(bytes)?; - if self.disassembler.last_was_cmp()? { - let pc = if let Some(processor_info_v2) = self.processor_info_v2.as_mut() { - processor_info_v2.get_program_counter(self.cpu)? - } else { - bail!("No ProcessorInfoV2 interface registered in processor. Try building with `try_with_processor_info_v2`"); - }; - - let mut cmp_values = Vec::new(); - - if let Ok(cmp) = self.disassembler.cmp() { - for expr in &cmp { - match self.simplify(expr) { - Ok(value) => cmp_values.push(value), - Err(e) => { - error!("Error reducing expression {:?}: {}", expr, e); - } - } - } - } - - trace!("Got cmp values: {:?}", cmp_values); - - let cmp_value = if let (Some(l), Some(r)) = (cmp_values.get(0), cmp_values.get(1)) { - match (l, r) { - (CmpValue::U8(l), CmpValue::U8(r)) => Some(CmpValues::U8((*l, *r))), - (CmpValue::I8(l), CmpValue::I8(r)) => Some(CmpValues::U8(( - u8::from_le_bytes(l.to_le_bytes()), - u8::from_le_bytes(r.to_le_bytes()), - ))), - (CmpValue::U16(l), CmpValue::U16(r)) => Some(CmpValues::U16((*l, *r))), - (CmpValue::I16(l), CmpValue::I16(r)) => Some(CmpValues::U16(( - u16::from_le_bytes(l.to_le_bytes()), - u16::from_le_bytes(r.to_le_bytes()), - ))), - (CmpValue::U32(l), CmpValue::U32(r)) => Some(CmpValues::U32((*l, *r))), - (CmpValue::I32(l), CmpValue::I32(r)) => Some(CmpValues::U32(( - u32::from_le_bytes(l.to_le_bytes()), - u32::from_le_bytes(r.to_le_bytes()), - ))), - (CmpValue::U64(l), CmpValue::U64(r)) => Some(CmpValues::U64((*l, *r))), - (CmpValue::I64(l), CmpValue::I64(r)) => Some(CmpValues::U64(( - u64::from_le_bytes(l.to_le_bytes()), - u64::from_le_bytes(r.to_le_bytes()), - ))), - (CmpValue::Expr(_), CmpValue::Expr(_)) => None, - _ => None, - } - } else { - None - }; - - let cmp_types = if let Ok(types) = self.disassembler.cmp_type() { - Some(types) - } else { - None - }; - - Ok(TraceResult::from_pc_and_cmp_type_value( - pc, - cmp_types.ok_or_else(|| anyhow!("No cmp type available"))?, - cmp_value.ok_or_else(|| anyhow!("No cmp value available"))?, - )) - } else { - Ok(TraceResult::default()) - } - } else { - bail!("No CpuInstructionQuery interface registered in processor. Try building with `try_with_cpu_instruction_query`"); - } - } - - pub fn get_reg_value(&mut self, reg: S) -> Result - where - S: AsRef, - { - let int_register = if let Some(int_register) = self.int_register.as_ref() { - int_register - } else { - bail!("No IntRegister interface registered in processor. Try building with `try_with_int_register`"); - }; - - let reg_number = if let Some(reg_number) = self.reg_numbers.get(reg.as_ref()) { - *reg_number - } else { - let reg_name = reg.as_ref().to_string(); - let reg_number = int_register.get_number(self.cpu, reg)?; - self.reg_numbers.insert(reg_name, reg_number); - reg_number - }; - - int_register.read(self.cpu, reg_number) - } - - pub fn set_reg_value(&mut self, reg: S, val: u64) -> Result<()> - where - S: AsRef, - { - let int_register = if let Some(int_register) = self.int_register.as_ref() { - int_register - } else { - bail!("No IntRegister interface registered in processor. Try building with `try_with_int_register`"); - }; - - let reg_number = if let Some(reg_number) = self.reg_numbers.get(reg.as_ref()) { - *reg_number - } else { - let reg_name = reg.as_ref().to_string(); - let reg_number = int_register.get_number(self.cpu, reg)?; - self.reg_numbers.insert(reg_name, reg_number); - reg_number - }; - - int_register.write(self.cpu, reg_number, val) - } - - pub fn write_bytes(&self, logical_address_start: u64, bytes: &[u8]) -> Result<()> { - let processor_info_v2 = if let Some(processor_info_v2) = self.processor_info_v2.as_ref() { - processor_info_v2 - } else { - bail!("No ProcessorInfoV2 interface registered in processor. Try building with `try_with_processor_info_v2`"); - }; - - let physical_memory = processor_info_v2.get_physical_memory(self.cpu)?; - - for (i, byte) in bytes.iter().enumerate() { - let logical_address = logical_address_start + i as u64; - let physical_address = - processor_info_v2.logical_to_physical(self.cpu, logical_address)?; - write_byte(physical_memory, physical_address.address, *byte)?; - // let written = read_byte(physical_memory, physical_address); - // ensure!(written == *byte, "Did not read back same written byte"); - } - - Ok(()) - } - - pub fn read_bytes(&self, logical_address_start: u64, size: usize) -> Result> { - let processor_info_v2 = if let Some(processor_info_v2) = self.processor_info_v2.as_ref() { - processor_info_v2 - } else { - bail!("No ProcessorInfoV2 interface registered in processor. Try building with `try_with_processor_info_v2`"); - }; - - let physical_memory = processor_info_v2.get_physical_memory(self.cpu)?; - - let mut bytes = Vec::new(); - - for i in 0..size { - let logical_address = logical_address_start + i as u64; - let physical_address = - processor_info_v2.logical_to_physical(self.cpu, logical_address)?; - bytes.push(read_byte(physical_memory, physical_address.address)?); - // let written = read_byte(physical_memory, physical_address); - // ensure!(written == *byte, "Did not read back same written byte"); - } - - Ok(bytes) - } -} diff --git a/tsffs_module/src/state/mod.rs b/tsffs_module/src/state/mod.rs deleted file mode 100644 index 9708f804..00000000 --- a/tsffs_module/src/state/mod.rs +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Implements the state machine for this module. This state machine represents the different -//! states the module (and through it, simics) can be in and the transitions between those states -//! -//! The module starts in the `Uninitialized` state. This state is named slightly deceptively -- -//! the module will do any allocations it needs, set up its components, map memory, and more -//! in this state. -//! -//! When the module is instructed to `Initialize`, it moves to a `HalfInitialized` state. In this -//! state, it has received the `InputConfig` from the client, but it has not applied it. Only -//! once the module sends back an `Initialized` message to the client is the module fully -//! `Initialized`, which means it has taken its initial snapshot and is ready to begin the fuzzing -//! process (in this state, the client has received any necessary shared information from the -//! module as well). -//! -//! Next, the module will receive a `Reset` signal and will enter the `HalfReady` state. The -//! module will internally reset the target state to the snapshot (on first run, this is -//! essentially a no-op) and send back a `Ready` message. Only then is the module ready to actually -//! run a test. -//! -//! Finally, the module will receive a `Run` signal, and will start running with the given input. -//! When the module reaches a `Stopped` state, it will signal back that it has stopped as well -//! as the reason. From this state, it can be `Reset` again before another `Run`. -//! -//! At any point, an `Exit` signal can be sent to cause the module to immediately exit cleanly. - -use anyhow::{bail, Result}; -use rust_fsm::*; -use tracing::{error, trace}; - -use crate::messages::{client::ClientMessage, module::ModuleMessage}; - -state_machine! { - derive(Debug, Clone) - pub Module(Uninitialized) - Uninitialized => { - Initialize => HalfInitialized, - Exit => Done, - }, - HalfInitialized => { - Initialized => Initialized, - Exit => Done, - }, - Initialized => { - Reset => HalfReady, - Exit => Done, - }, - HalfReady => { - Ready => Ready, - Exit => Done, - }, - Ready => { - Run => Running, - Exit => Done, - }, - Running(Stopped) => Stopped, - Stopped => { - Reset => HalfReady, - Exit => Done, - } -} - -impl From<&ClientMessage> for ModuleInput { - fn from(value: &ClientMessage) -> Self { - match value { - ClientMessage::Initialize(_) => Self::Initialize, - ClientMessage::Run(_) => Self::Run, - ClientMessage::Reset => Self::Reset, - ClientMessage::Exit => Self::Exit, - } - } -} - -impl From<&ModuleMessage> for ModuleInput { - fn from(value: &ModuleMessage) -> Self { - match value { - ModuleMessage::Initialized(_) => Self::Initialized, - ModuleMessage::Ready => Self::Ready, - ModuleMessage::Stopped(_) => Self::Stopped, - } - } -} - -pub struct ModuleStateMachine { - machine: StateMachine, -} - -impl ModuleStateMachine { - pub fn new() -> Self { - Self { - machine: StateMachine::new(), - } - } - - /// Consume a client or module message to trigger state transitions in the machine - /// - /// This function should be called whenever a message is sent or received, with the message - /// as an argument. Inconsistent state will occur if this rule isn't followed, so be sure - /// to use the `send` and `recv` methods on the `Client` and `Controller` respectively to - /// keep this consistent, as they will call this method automatically - pub fn consume(&mut self, message: M) -> Result> - where - M: Into, - { - let input: ModuleInput = message.into(); - let pre_state = self.machine.state().clone(); - let result = self.machine.consume(&input); - let post_state = self.machine.state().clone(); - - match result { - Ok(r) => { - trace!( - "Consumed {:?}: Transitioned from {:?} -> {:?}", - input, - pre_state, - post_state - ); - Ok(r) - } - Err(e) => { - error!( - "Tried to consume {:?}: Failed to transition from {:?}: {}", - input, pre_state, e - ); - bail!( - "Tried to consume {:?}: Failed to transition from {:?}: {}", - input, - pre_state, - e - ); - } - } - } -} - -impl Default for ModuleStateMachine { - fn default() -> Self { - Self::new() - } -} diff --git a/tsffs_module/src/stops/mod.rs b/tsffs_module/src/stops/mod.rs deleted file mode 100644 index 5e17aa68..00000000 --- a/tsffs_module/src/stops/mod.rs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Definitions of various reasons the simulation can stop - -use serde::{Deserialize, Serialize}; - -use crate::{faults::Fault, magic::Magic}; - -#[derive(Debug, Serialize, Deserialize, Clone)] -pub enum StopError { - UnknownFault(i64), - NonErrorFault(Fault), - Other(String), -} - -#[derive(Debug, Serialize, Deserialize, Clone)] -/// Each time the simulation stops, a stop type must be used to determine whether the stop is -/// normal, a crash, or a timeout (timeouts cannot be monitored by the fuzzer because the -/// simulator does not run at wall clock speeds, they MUST be monitored by SIMICS). In all cases -/// a snapshot will be reverted to, but we need this information to inform the fuzzer objectives -pub enum StopReason { - /// A magic instruction happened, save the magic type and the cpu number that hit the magic - /// instruction. The second value is the processor number the instruction was raised on. - Magic((Magic, i32)), - /// A (possibly) normal stop due to the simulation exiting - SimulationExit(i32), - /// A crash occurred - Crash((Fault, i32)), - /// A timeout occurred - TimeOut, - /// An error occurred either during simulation or internally in the module - Error((StopError, i32)), - /// A breakpoint was encountered, report its number (this can be used to determine why the - /// breakpoint is an error or some such thing) - Breakpoint(i64), -} diff --git a/tsffs_module/src/traits/mod.rs b/tsffs_module/src/traits/mod.rs deleted file mode 100644 index 37d66aa8..00000000 --- a/tsffs_module/src/traits/mod.rs +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Traits for common functionality used throughout the module - -use crate::{ - config::{InputConfig, OutputConfig, RunConfig}, - messages::{client::ClientMessage, module::ModuleMessage}, - processor::{disassembler::CmpExpr, CmpType}, - state::ModuleStateMachine, - stops::StopReason, -}; -use anyhow::Result; -use simics_api::{AttrValue, ConfObject}; -use std::sync::mpsc::{Receiver, Sender}; - -pub trait State { - /// Callback when the module's state is [`ModuleState::HalfInitialized`]. The - /// input config comes from the client, and the output config is modified by each - /// [`Component`], where the last component's output configuration is returned to - /// the client containing any information it needs. - /// - /// Any one-time configuration (registering callbacks, etc) should be done here. - fn on_initialize( - &mut self, - _module: *mut ConfObject, - _input_config: &mut InputConfig, - output_config: OutputConfig, - ) -> Result { - Ok(output_config) - } - - /// Callback after executionr reaches the `Magic::Start` instruction for the first time. This - /// callback is called before `on_ready` - fn pre_first_run(&mut self, _module: *mut ConfObject) -> Result<()> { - Ok(()) - } - - /// Callback when the module is ready to run, it has hit the first [`Magic`] instruction and - /// can be started. State that needs to be restored should be restored during this callback. - /// This callback will run on each iteration of the fuzzing loop - fn on_ready(&mut self, _module: *mut ConfObject) -> Result<()> { - Ok(()) - } - - /// Callback when the module is about to run, just before the simulation is continued. Any - /// setup that needs to be done before every run should be done here (for example, resetting - /// the timeout duration). - fn on_run(&mut self, _module: *mut ConfObject, _run_config: &RunConfig) -> Result<()> { - Ok(()) - } - - /// Callback after execution has stopped, with some reason. Any cleanup or reporting that - /// needs to be done after each run should be done here. - fn on_stopped(&mut self, _module: *mut ConfObject, _reason: StopReason) -> Result<()> { - Ok(()) - } - - /// Callback when the module has ben signaled to exit by the client. Any one-time cleanup or - /// reporting should be done here. - fn on_exit(&mut self, _module: *mut ConfObject) -> Result<()> { - Ok(()) - } -} - -pub trait Interface { - fn on_add_processor(&mut self, _processor: *mut AttrValue) -> Result<()> { - Ok(()) - } - - fn on_add_fault(&mut self, _fault: i64) -> Result<()> { - Ok(()) - } - - fn on_set_breakpoints_are_faults(&mut self, _breakpoints_are_faults: bool) -> Result<()> { - Ok(()) - } -} - -/// Trait for disassemblers of various architectures to implement to permit branch -/// and compare tracing -pub trait TracerDisassembler { - fn disassemble(&mut self, bytes: &[u8]) -> Result<()>; - fn last_was_control_flow(&self) -> Result; - fn last_was_call(&self) -> Result; - fn last_was_ret(&self) -> Result; - fn last_was_cmp(&self) -> Result; - fn cmp(&self) -> Result>; - fn cmp_type(&self) -> Result>; -} - -pub trait ThreadClient { - /// Get a mutable reference to the internal client state - fn state_mut(&mut self) -> &mut ModuleStateMachine; - - /// Get a mutable reference to the internal client message sender channel, tx - fn tx_mut(&mut self) -> &mut Sender; - - /// Get a mutable reference to the internal module message receiver channel, rx - fn rx_mut(&mut self) -> &mut Receiver; - - /// Initialize the client with a configuration. The client will return an output - /// configuration which contains various information the SIMICS module needs to - /// inform the client of, including memory maps for coverage. Changes the - /// internal state from `Uninitialized` to `HalfInitialized` and then from - /// `HalfInitialized` to `ModuleState::Initialized`. - fn initialize(&mut self, config: InputConfig) -> Result; - - /// Reset the module to the beginning of the fuzz loop (the state as snapshotted). - /// Changes the internal state from `Stopped` or `Initialized` to `HalfReady`, then - /// from `HalfReady` to `Ready`. - fn reset(&mut self) -> Result<()>; - - /// Signal the module to run the target software. Changes the intenal state from `Ready` to - /// `Running`, then once the run finishes either with a normal stop, a timeout, or a crash, - /// from `Running` to `Stopped`. This function blocks until the target software stops and the - /// module detects it, so it may take a long time or if there is an unexpected bug it may - /// hang. - fn run(&mut self, input: Vec, config: RunConfig) -> Result; - - /// Signal the module to exit SIMICS, stopping the fuzzing process. Changes the internal state - /// from any state to `Done`. - fn exit(&mut self) -> Result<()>; - - /// Send a message to the module - fn send_msg(&mut self, msg: ClientMessage) -> Result<()> { - self.state_mut().consume(&msg)?; - self.tx_mut().send(msg)?; - Ok(()) - } - - /// Receive a message from the module - fn recv_msg(&mut self) -> Result { - let msg = self.rx_mut().recv()?; - self.state_mut().consume(&msg)?; - Ok(msg) - } -} diff --git a/tsffs_module/src/util/mod.rs b/tsffs_module/src/util/mod.rs deleted file mode 100644 index de2edbcf..00000000 --- a/tsffs_module/src/util/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -pub mod nonnull; diff --git a/tsffs_module/src/util/nonnull.rs b/tsffs_module/src/util/nonnull.rs deleted file mode 100644 index e0e1b57d..00000000 --- a/tsffs_module/src/util/nonnull.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#[macro_export] -/// Ensure a pointer value is non-null. Log an error and return an Err value if it is null. -macro_rules! nonnull { - ($const_ptr:expr) => {{ - tracing::info!("Checking if pointer is null: {}", $const_ptr.is_null()); - anyhow::ensure!( - !$const_ptr.is_null(), - format!("Pointer {} is null unexpectedly", stringify!($const_ptr)) - ); - $const_ptr - }}; -} diff --git a/tsffs_module/stubs/README.md b/tsffs_module/stubs/README.md deleted file mode 100644 index 465d16e4..00000000 --- a/tsffs_module/stubs/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Module Stubs - -These module stubs were created by creating an empty simics project with: - -```sh -project-setup /tmp/project -cd /tmp/project -./bin/project-setup --c-device tsffs_module -./bin/project-setup --interface tsffs -cp -a modules/* /path/to/repo/modules/ -``` - -they should never have any real code in them, and should instead link to the -tsffs module static library and call into it. diff --git a/tsffs_module/stubs/tsffs_module-interface/Makefile b/tsffs_module/stubs/tsffs_module-interface/Makefile deleted file mode 100644 index 30d57153..00000000 --- a/tsffs_module/stubs/tsffs_module-interface/Makefile +++ /dev/null @@ -1,128 +0,0 @@ -# -*- Makefile -*- - -# (optional) Module-specific parameters for the DML dependency generator and compiler -DMLC_FLAGS := - -# (optional) space- or colon-separated list of module names (optionally followed by a subdirectory: -# modulename/some/path). The source code directory of this module (or the corresponding -# subdirectory) will automatically be added to make's VPATH. The directories will also be added to -# the include search path for DML and C modules (using the -I options to the compilers). -# -# The current project as well as any installed Simics packages will be searched for the module -# source code. Note that only the first matching source code directory found will be -# used, allowing the project to override the version of an installed package. -EXTRA_MODULE_VPATH := - -# (optional) Additional object files to link into the module. The module build will be -# dependent on these files, so additional rules can be provided in the module's -# Makefile to build these files before linking them. -EXTRA_OBJ_FILES := - -# (optional) Directories to add to VPATH when building. -EXTRA_VPATH := - -# Header files to compile for an interface module. If IFACE_FILES contains -# file-name.h, in a Simics module named module-name, then the Python module -# simmod.module_name.file_name will be created, containing the Python bindings for all -# interfaces and types defined in file-name.h. The filenames in IFACE_FILES must not -# include any directory components; if any files are to be found in another directory, -# then that directory must be included in VPATH so the file is found correctly; e.g., -# by setting the EXTRA_MODULE_VPATH variable. -# -# See also section Restrictions in Defining New Interface Types in Model Builder User's -# Guide for restrictions and usage of Python bindings. -IFACE_FILES := tsffs_module-interface.h - -# (optional) Parameters for the C and C++ preprocessor and compiler -MODULE_CFLAGS := - -# Space-separated list of configuration classes that this module registers. This -# information is used by SIM_get_class() to determine that this module should be -# automatically loaded when one of the listed classes is requested. -MODULE_CLASSES := - -# Space-separated list of components that this module registers. -MODULE_COMPONENTS := - -# (optional) Module-specific flags for the C and C++ linker. Any particular library -# linking (such as -lpthread, -lm, or -L to give paths to search for libraries) can -# be included here. If the module has dependencies on LD_MODULE_PATH, it is possible -# to specify -rpath so that the module will contain the paths that were valid at -# compilation time. -MODULE_LDFLAGS := - -# Space-separated list of Python source files to include. These Python files will be -# copied and potentially compiled (see COMPILE_PYC) and placed in a Python package -# specific to the module. If a module my-module includes the file file.py in -# PYTHON_FILES, then the resulting Python module will be available as -# simmod.my_module.file in Simics. Two filenames get special treatment if included in -# PYTHON_FILES: -# - simics_start.py is automatically imported while Simics is launched. -# - module_load.py is imported by Simics when the Simics module is loaded. -# The names checkpoint_update.py and __init__.py are reserved for future use, and not -# allowed in the list of files. -PYTHON_FILES := - -# (optional) User supplied free-text string describing the module version. The version -# string is available in Simics even without loading the module, through the -# list-modules command or the SIM_get_all_modules API function. -MODULE_USER_VERSION := - -# (optional) Simics API to use when compiling the module. See the Simics Migration -# Guide for a description on how to compile old modules with a new Simics version. -# Valid API settings are listed in [simics]/[host]/include/api-versions.mk. -SIMICS_API := 6 - -# Source files to compile in the module. C source file names must end in .c; C++ -# source file names must end in .cc, .cpp, .cxx or .C (the last not allowed on -# Windows). DML file names must have a .dml suffix. Any .py files should be listed in -# the PYTHON_FILES variable. For backward compatibility, modules using Simics API 4.8 -# or older may still list Python files in the SRC_FILES variable. -SRC_FILES := - -# (optional) Images to copy directly in the images subdirectory in $(TARGET_DIR) -SRC_IMAGES := - -# If set to 'yes', provides compiler and linker flags that allow building the SystemC -# Library adapter and SystemC devices. See the SystemC Library Programming Guide for -# more information. -SYSTEMC := - -# (optional) Parameters for the C and C++ preprocessor and compiler when using -# user-specified SystemC source. -SYSTEMC_CORE_CFLAGS := - -# (optional) SystemC core specific flags for the C and C++ linker. Any particular -# library linking can be included here. -SYSTEMC_CORE_LDFLAGS := - -# (optional) Parameters for the C and C++ preprocessor and compiler when compiling -# SystemC modules. -SYSTEMC_MODULE_CFLAGS := - -# If set to yes, declare that the module is thread-safe. -THREAD_SAFE := yes - -# If set to 'yes', enable support for the default C++ Device API. It can also be set -# to a specific version to select which version of C++ Device API to use. Current -# supported versions are '1' and '2'. See the C++ Device API Programming Guide for -# more information. -USE_CC_API := - -# If set to 'yes', suppress output of the .xml device info file by the DML compiler. -SUPRESS_DEVICE_INFO := - -# An optional list of compatible compilers, in order of preference. The allowed list -# element values are gcc and cl, for MinGW and Visual Studio respectively. On -# platforms other than Windows, cl is ignored. -COMPILERS := - -# If this is set to 1, then the files listed in PYTHON_FILES are compiled, not copied. -COMPILE_PYC := - - -ifeq ($(MODULE_MAKEFILE),) -$(error Make sure you compile your module from the project directory) -else -include $(MODULE_MAKEFILE) -endif diff --git a/tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.dml b/tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.dml deleted file mode 100644 index 5b587c38..00000000 --- a/tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.dml +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -dml 1.4; - -header %{ -#include "tsffs_module-interface.h" -%} - -extern typedef struct { - void (*init)(conf_object_t *obj); - void (*add_processor)(conf_object_t *obj, attr_value_t *processor); - void (*add_fault)(conf_object_t *obj, int64 fault); - void (*add_channels)(conf_object_t *obj, attr_value_t *tx, attr_value_t *rx); - void (*set_breakpoints_are_faults)(conf_object_t *obj, bool breakpoints_are_faults); -} tsffs_module_interface_t; - -extern const char *const TSFFS_MODULE_INTERFACE; diff --git a/tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.h b/tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.h deleted file mode 100644 index 494320ce..00000000 --- a/tsffs_module/stubs/tsffs_module-interface/tsffs_module-interface.h +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -/* - © 2017 Intel Corporation -*/ - -/* - tsffs_module-interface.h - Skeleton code to base new interface modules on -*/ - -/* This module is a template for defining new interface types. See the - "Defining New Interface Types" section of the - "Simics Model Builder User's Guide" for further documentation. - - The corresponding DML definition can be found in tsffs_module_interface.dml - */ - -#ifndef TSFFS_MODULE_INTERFACE_H -#define TSFFS_MODULE_INTERFACE_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* If you need to define new struct types, a definition like this will make it - possible to allocate such structs from Python using tsffs_module_data_t(). - - Before doing this, you will have to load the tsffs_module_interface - Simics module, and import the tsffs_module_interface Python module. */ - -/* This defines a new interface type. Its corresponding C data type will be - called "tsffs_module_interface_t". */ -SIM_INTERFACE(tsffs_module) { - void (*init)(conf_object_t* obj); - void (*add_processor)(conf_object_t* obj, attr_value_t* processor); - void (*add_fault)(conf_object_t* obj, int64 fault); - void (*add_channels)(conf_object_t* obj, attr_value_t* tx, attr_value_t* rx); - void (*set_breakpoints_are_faults)(conf_object_t* obj, - bool breakpoints_are_faults); -#ifndef PYWRAP - /* methods that cannot be exported to Python, for example as it refers - to unknown data types, must be enclosed by "#ifndef PYWRAP" ... - "#endif". See the "Restrictions" subsection of "Defining New - Interface Types" mentioned above. */ -#endif -}; - -/* Use a #define like this whenever you need to use the name of the interface - type; the C compiler will then catch any typos at compile-time. */ -#define TSFFS_MODULE_INTERFACE "tsffs_module" - -#ifdef __cplusplus -} -#endif - -#endif /* ! TSFFS_MODULE_INTERFACE_H */ diff --git a/tsffs_module/stubs/tsffs_module/Makefile b/tsffs_module/stubs/tsffs_module/Makefile deleted file mode 100644 index d107cd7d..00000000 --- a/tsffs_module/stubs/tsffs_module/Makefile +++ /dev/null @@ -1,127 +0,0 @@ -# -*- Makefile ; coding: utf-8 -*- - -# (optional) Module-specific parameters for the DML dependency generator and compiler -DMLC_FLAGS := - -# (optional) space- or colon-separated list of module names (optionally followed by a subdirectory: -# modulename/some/path). The source code directory of this module (or the corresponding -# subdirectory) will automatically be added to make's VPATH. The directories will also be added to -# the include search path for DML and C modules (using the -I options to the compilers). -# -# The current project as well as any installed Simics packages will be searched for the module -# source code. Note that only the first matching source code directory found will be -# used, allowing the project to override the version of an installed package. -EXTRA_MODULE_VPATH := - -# (optional) Additional object files to link into the module. The module build will be -# dependent on these files, so additional rules can be provided in the module's -# Makefile to build these files before linking them. -EXTRA_OBJ_FILES := - -# (optional) Directories to add to VPATH when building. -EXTRA_VPATH := - -# Header files to compile for an interface module. If IFACE_FILES contains -# file-name.h, in a Simics module named module-name, then the Python module -# simmod.module_name.file_name will be created, containing the Python bindings for all -# interfaces and types defined in file-name.h. The filenames in IFACE_FILES must not -# include any directory components; if any files are to be found in another directory, -# then that directory must be included in VPATH so the file is found correctly; e.g., -# by setting the EXTRA_MODULE_VPATH variable. -# -# See also section Restrictions in Defining New Interface Types in Model Builder User's -# Guide for restrictions and usage of Python bindings. -IFACE_FILES := - -# (optional) Parameters for the C and C++ preprocessor and compiler -MODULE_CFLAGS := - -# Space-separated list of configuration classes that this module registers. This -# information is used by SIM_get_class() to determine that this module should be -# automatically loaded when one of the listed classes is requested. -MODULE_CLASSES := tsffs_module - -# Space-separated list of components that this module registers. -MODULE_COMPONENTS := - -# (optional) Module-specific flags for the C and C++ linker. Any particular library -# linking (such as -lpthread, -lm, or -L to give paths to search for libraries) can -# be included here. If the module has dependencies on LD_MODULE_PATH, it is possible -# to specify -rpath so that the module will contain the paths that were valid at -# compilation time. -MODULE_LDFLAGS := -Wl,-rpath,$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))))/../../lib/ -L $(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))))/../../lib/ -ltsffs_module - -# Space-separated list of Python source files to include. These Python files will be -# copied and potentially compiled (see COMPILE_PYC) and placed in a Python package -# specific to the module. If a module my-module includes the file file.py in -# PYTHON_FILES, then the resulting Python module will be available as -# simmod.my_module.file in Simics. Two filenames get special treatment if included in -# PYTHON_FILES: -# - simics_start.py is automatically imported while Simics is launched. -# - module_load.py is imported by Simics when the Simics module is loaded. -# The names checkpoint_update.py and __init__.py are reserved for future use, and not -# allowed in the list of files. -PYTHON_FILES := simics_start.py module_load.py - -# (optional) User supplied free-text string describing the module version. The version -# string is available in Simics even without loading the module, through the -# list-modules command or the SIM_get_all_modules API function. -MODULE_USER_VERSION := - -# (optional) Simics API to use when compiling the module. See the Simics Migration -# Guide for a description on how to compile old modules with a new Simics version. -# Valid API settings are listed in [simics]/[host]/include/api-versions.mk. -SIMICS_API := - -# Source files to compile in the module. C source file names must end in .c; C++ -# source file names must end in .cc, .cpp, .cxx or .C (the last not allowed on -# Windows). DML file names must have a .dml suffix. Any .py files should be listed in -# the PYTHON_FILES variable. For backward compatibility, modules using Simics API 4.8 -# or older may still list Python files in the SRC_FILES variable. -SRC_FILES := tsffs_module.c - -# (optional) Images to copy directly in the images subdirectory in $(TARGET_DIR) -SRC_IMAGES := - -# If set to 'yes', provides compiler and linker flags that allow building the SystemC -# Library adapter and SystemC devices. See the SystemC Library Programming Guide for -# more information. -SYSTEMC := - -# (optional) Parameters for the C and C++ preprocessor and compiler when using -# user-specified SystemC source. -SYSTEMC_CORE_CFLAGS := - -# (optional) SystemC core specific flags for the C and C++ linker. Any particular -# library linking can be included here. -SYSTEMC_CORE_LDFLAGS := - -# (optional) Parameters for the C and C++ preprocessor and compiler when compiling -# SystemC modules. -SYSTEMC_MODULE_CFLAGS := - -# If set to yes, declare that the module is thread-safe. -THREAD_SAFE := yes - -# If set to 'yes', enable support for the default C++ Device API. It can also be set -# to a specific version to select which version of C++ Device API to use. Current -# supported versions are '1' and '2'. See the C++ Device API Programming Guide for -# more information. -USE_CC_API := - -# If set to 'yes', suppress output of the .xml device info file by the DML compiler. -SUPRESS_DEVICE_INFO := - -# An optional list of compatible compilers, in order of preference. The allowed list -# element values are gcc and cl, for MinGW and Visual Studio respectively. On -# platforms other than Windows, cl is ignored. -COMPILERS := - -# If this is set to 1, then the files listed in PYTHON_FILES are compiled, not copied. -COMPILE_PYC := 0 - -ifeq ($(MODULE_MAKEFILE),) -$(error Make sure you compile your module from the project directory) -else -include $(MODULE_MAKEFILE) -endif diff --git a/tsffs_module/stubs/tsffs_module/tsffs_module.c b/tsffs_module/stubs/tsffs_module/tsffs_module.c deleted file mode 100644 index 7173b3e0..00000000 --- a/tsffs_module/stubs/tsffs_module/tsffs_module.c +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -void module_init_local(void); - -/// Called automatically by SIMICS -/// -/// We use this as a stub to call the real initialize function in our linked -/// library -void init_local() { module_init_local(); } \ No newline at end of file diff --git a/util/artifact-dependency/src/lib.rs b/util/artifact-dependency/src/lib.rs deleted file mode 100644 index 4b08407d..00000000 --- a/util/artifact-dependency/src/lib.rs +++ /dev/null @@ -1,341 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Feature-light crate to build and use dependencies whose results are Artifacts: -//! - Static Libraries -//! - C Dynamic Libraries -//! - Binaries - -#![deny(clippy::unwrap_used)] -#![forbid(unsafe_code)] - -use anyhow::{anyhow, bail, ensure, Error, Result}; -use cargo_metadata::{camino::Utf8PathBuf, MetadataCommand, Package}; -use derive_builder::Builder; -use serde::{Deserialize, Serialize}; -use std::{ - env::var, - hash::{Hash, Hasher}, - path::PathBuf, - process::{Command, Stdio}, -}; -use tracing::{debug, error}; - -#[derive(Clone, Debug, Copy)] -/// Crate type to include as the built [`Artifact`] -pub enum CrateType { - Executable, - CDynamicLibrary, - Dylib, - StaticLibrary, - RustLibrary, - ProcMacro, - // NOTE: Doesn't include raw-dylib, which allows DLL linking without import libraries: - // https://rust-lang.github.io/rfcs/2627-raw-dylib-kind.html -} - -#[derive(Clone, Debug)] -/// Profile to build. [`ArtifactDependency`] defaults to building the current profile in use, -/// but a different profile can be selected. -pub enum Profile { - Release, - Dev, - Other(String), -} - -#[derive(Builder, Clone, Debug)] -#[builder(build_fn(error = "Error"))] -/// Builder to find and optionally build an artifact dependency from a particular workspace -/// -/// # Examples -/// -/// ```rust,ignore -/// use artifact_dependency::{ArtifactDependencyBuilder, CrateType}; -/// -/// let dep_path = ArtifactDependencyBuilder::default() -/// // Build the artifact dependency if it is missing -/// .build_missing(true) -/// // Artifact type of CDylib -/// .artifact_type(CrateType::CDynamicLibrary) -/// // Name of the crate in the workspace -/// .crate_name("the-crate-name") -/// // The path to the workspace root containing the crate. If this isn't specified, it will -/// // be looked up in the current workspace. -/// .workspace_root(PathBuf::from("/path/to/workspace/root/")) -/// .build() -/// .expect("Couldn't build artifact dependency search") -/// .search() -/// .expect("Couldn't locate artifact dependency"); -/// ``` -pub struct ArtifactDependency { - #[builder(setter(into, strip_option), default)] - /// Workspace root to search for an artifact dependency in. Defaults to the current workspace - /// if one is not provided. - pub workspace_root: Option, - /// Crate name to search for an artifact dependency for. - #[builder(setter(into, strip_option), default)] - pub crate_name: Option, - /// Type of artifact to search for - pub artifact_type: CrateType, - #[builder(setter(into, strip_option), default)] - /// Profile, defaults to the current profile - pub profile: Option, - /// Build the artifact if it is missing - pub build_missing: bool, - #[builder(default = "true")] - /// (Re-)build the artifact even if it is not missing. This is the default because otherwise - /// it's very common to have a "what is going on why aren't my print statements showing up" - /// moment - pub build_always: bool, - #[builder(setter(each(name = "feature", into), into), default)] - pub features: Vec, - #[builder(setter(into))] - pub target_name: String, -} - -// NOTE: Artifact naming is not very easy to discern, we have to dig hard into rustc. -// Windows dll import lib: https://github.com/rust-lang/rust/blob/b2b34bd83192c3d16c88655158f7d8d612513e88/compiler/rustc_codegen_llvm/src/back/archive.rs#L129 -// Others by crate type: https://github.com/rust-lang/rust/blob/b2b34bd83192c3d16c88655158f7d8d612513e88/compiler/rustc_session/src/output.rs#L141 -// The default settings: https://github.com/rust-lang/rust/blob/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/compiler/rustc_target/src/spec/mod.rs#L1422-L1529 -// -// | Platform Spec | DLL Prefix | DLL Suffix | EXE Suffix | Staticlib Prefix | Staticlib Suffix | -// | Default | lib (d) | .so (d) | | lib (d) | .a (d) | -// | MSVC | | .dll | .exe | | .lib | -// | Windows GNU | | .dll | .exe | lib (d) | .a (d) | -// | WASM | lib (d) | .wasm | .wasm | lib (d) | .a (d) | -// | AIX | lib (d) | .a | | lib (d) | .a (d) | -// | Apple | lib (d) | .dylib | | lib (d) | .a (d,framework?)| -// | NVPTX | | .ptx | .ptx | lib (d) | .a (d) | -// | Windows GNULLVM | | .dll | .exe | lib (d) | .a (d) | - -#[cfg(target_family = "unix")] -const ARTIFACT_NAMEPARTS: (&str, &str, &str, &str, &str) = ("lib", ".so", "lib", ".a", ""); -#[cfg(target_family = "darwin")] -const ARTIFACT_NAMEPARTS: (&str, &str, &str, &str, &str) = ("lib", ".dylib", "lib", ".a", ""); -#[cfg(any( - target = "x86_64_pc-windows-msvc", - target = "aarch64-pc-windows-msvc", - target = "i586-pc-windows-msvc", - target = "i686-pc-windows-msvc" -))] -const ARTIFACT_NAMEPARTS: (&str, &str, &str, &str, &str) = ("", ".dll", "", ".lib", ".exe"); -#[cfg(any( - target = "x86_64_pc-windows-gnu", - target = "i586-pc-windows-gnu", - target = "i686-pc-windows-gnu" -))] -const ARTIFACT_NAMEPARTS: (&str, &str, &str, &str, &str) = ("", ".dll", "lib", ".a", ".exe"); - -#[cfg(debug_assertions)] -const PROFILE: Profile = Profile::Dev; -#[cfg(not(debug_assertions))] -const PROFILE: Profile = Profile::Release; - -#[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] -/// A built artifact -pub struct Artifact { - /// The path to the artifact output, as specified by the `artifact_type` field if the - /// dependency has multiple outputs. - pub path: PathBuf, - /// Package metadata for the artifact - pub package: Package, -} - -impl Hash for Artifact { - fn hash(&self, state: &mut H) - where - H: Hasher, - { - self.path.hash(state); - self.package.name.hash(state); - self.package.version.hash(state); - self.package.authors.hash(state); - self.package.id.hash(state); - self.package.description.hash(state); - self.package.license.hash(state); - self.package.license_file.hash(state); - self.package.targets.hash(state); - self.package.manifest_path.hash(state); - self.package.categories.hash(state); - self.package.keywords.hash(state); - self.package.readme.hash(state); - self.package.repository.hash(state); - self.package.homepage.hash(state); - self.package.documentation.hash(state); - self.package.edition.hash(state); - self.package.links.hash(state); - self.package.publish.hash(state); - self.package.default_run.hash(state); - self.package.rust_version.hash(state); - } -} - -impl Artifact { - /// Instantiate a new artifact at a path with a given metadata object - fn new(path: PathBuf, package: Package) -> Self { - Self { path, package } - } -} - -impl ArtifactDependency { - /// Build the dependency by invoking `cargo build` - pub fn build(&mut self) -> Result { - debug!("Building dependency from builder: {:?}", self); - let workspace_root = if let Some(workspace_root) = self.workspace_root.clone() { - workspace_root - } else { - MetadataCommand::new() - .no_deps() - .exec() - .map_err(|e| { - error!( - "Failed to run metadata command to find workspace root: {}", - e - ); - e - })? - .workspace_root - .into() - }; - - let metadata = MetadataCommand::new() - .current_dir(&workspace_root) - .no_deps() - .manifest_path(workspace_root.join("Cargo.toml")) - .exec() - .map_err(|e| { - error!( - "Failed to run metadata command in workspace root {}: {}", - workspace_root.display(), - e - ); - e - })?; - - self.crate_name = if let Some(crate_name) = self.crate_name.as_ref() { - Some(crate_name.clone()) - } else if let Some(root_package) = metadata.root_package() { - Some(root_package.name.clone()) - } else { - bail!("No name provided and no root package in provided workspace at {}, could not determine crate name.", workspace_root.display()); - }; - - let crate_name = self - .crate_name - .as_ref() - .cloned() - .ok_or_else(|| anyhow!("self.crate_name must have a value at this point"))?; - - let package = metadata - .packages - .iter() - .find(|p| p.name == crate_name) - .ok_or_else(|| { - anyhow!( - "No package matching name {} found in workspace at {}", - crate_name, - workspace_root.display() - ) - })?; - - let package_name = package.name.clone(); - let package_result_name = package_name.replace('-', "_"); - - let (dll_prefix, dll_suffix, staticlib_prefix, staticlib_suffix, exe_suffix) = - ARTIFACT_NAMEPARTS; - - let profile = self.profile.clone().unwrap_or(PROFILE); - - let profile_target_path = metadata.target_directory.join(match &profile { - Profile::Release => "release".to_string(), - Profile::Dev => "debug".to_string(), - Profile::Other(o) => o.clone(), - }); - - let artifact_path = match self.artifact_type { - CrateType::Executable => { - profile_target_path.join(format!("{}{}", &package_result_name, exe_suffix)) - } - CrateType::CDynamicLibrary => profile_target_path.join(format!( - "{}{}{}", - dll_prefix, &package_result_name, dll_suffix - )), - CrateType::StaticLibrary => profile_target_path.join(format!( - "{}{}{}", - staticlib_prefix, package_result_name, staticlib_suffix - )), - _ => bail!( - "Crate type {:?} is not supported as an artifact dependency source", - self.artifact_type - ), - }; - - let artifact_path = if (self.build_missing && !artifact_path.exists()) || self.build_always - { - let cargo = var("CARGO").unwrap_or("cargo".to_string()); - let mut cargo_command = Command::new(cargo); - cargo_command - .arg("build") - .arg("--manifest-path") - .arg(workspace_root.join("Cargo.toml")) - .arg("--package") - .arg(&package_name); - - // TODO: This will solve one build script trying to build the artifact at - // once, but doesn't resolve parallel scripts trying to both build it - // simultaneously, we need to actually detect the lock. - let build_target_dir = metadata.target_directory.join(&self.target_name); - - cargo_command.arg("--target-dir").arg(&build_target_dir); - - match &profile { - Profile::Release => { - cargo_command.arg("--release"); - } - Profile::Other(o) => { - cargo_command.args(vec!["--profile".to_string(), o.clone()]); - } - _ => {} - } - - cargo_command.arg(format!("--features={}", self.features.join(","))); - - let output = cargo_command - .stderr(Stdio::piped()) - .stdout(Stdio::piped()) - .output()?; - - if !output.status.success() { - bail!( - "Failed to build artifact crate:\nstdout: {}\nstderr: {}", - String::from_utf8_lossy(&output.stdout), - String::from_utf8_lossy(&output.stderr) - ); - } - - let artifact_path: PathBuf = build_target_dir - .join({ - let components = artifact_path - .components() - .rev() - .take(2) - .map(|c| c.to_string()) - .collect::>(); - components.iter().rev().collect::() - }) - .into(); - - ensure!( - artifact_path.exists(), - "Artifact build succeeded, but artifact not found in {}", - artifact_path.display() - ); - - artifact_path - } else { - artifact_path.into() - }; - - Ok(Artifact::new(artifact_path, package.clone())) - } -} diff --git a/util/artifact-dependency/tests/test_module.rs b/util/artifact-dependency/tests/test_module.rs deleted file mode 100644 index 309bd530..00000000 --- a/util/artifact-dependency/tests/test_module.rs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use artifact_dependency::{ArtifactDependencyBuilder, CrateType}; - -#[test] -#[cfg_attr(miri, ignore)] -fn test() { - let dep = ArtifactDependencyBuilder::default() - .build_missing(true) - .build_always(true) - .artifact_type(CrateType::CDynamicLibrary) - .target_name("test_module") - .crate_name("tsffs_module") - .feature("6.0.169") - .build() - .expect("Couldn't build dependency") - .build() - .expect("Couldn't find dependency"); - - assert!(dep.path.exists(), "Dep did not exist"); -} diff --git a/util/ffi-macro/src/lib.rs b/util/ffi-macro/src/lib.rs deleted file mode 100644 index e9c4042a..00000000 --- a/util/ffi-macro/src/lib.rs +++ /dev/null @@ -1,456 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -//! Provides the `callback_wrappers` attribute for automatically generating CFFI functions for -//! callbacks into struct methods - -#![deny(clippy::unwrap_used)] -#![forbid(unsafe_code)] - -use proc_macro::TokenStream; -use proc_macro_error::{abort, proc_macro_error}; -use quote::{format_ident, quote}; -use std::hash::Hash; -use syn::{ - parse::{Parse, ParseStream}, - parse_macro_input, - punctuated::Punctuated, - FnArg, Ident, ItemImpl, ReturnType, Token, Type, -}; - -/// A type or '...' -enum CallbackWrapperArgParam { - Arg(FnArg), - BangArg(FnArg), - Ellipsis, -} - -impl Parse for CallbackWrapperArgParam { - /// Parse a single callback wrapper parameter - fn parse(input: ParseStream) -> syn::Result { - if input.peek(Token![!]) { - input.parse::()?; - let typ = input.parse::()?; - Ok(Self::BangArg(typ)) - } else if input.peek(Token![...]) { - input.parse::()?; - Ok(Self::Ellipsis) - } else { - let typ = input.parse::()?; - Ok(Self::Arg(typ)) - } - } -} - -/// Parameters to a callback wrapper attribute -struct CallbackWrapperArgParams { - params: Vec, -} - -impl Parse for CallbackWrapperArgParams { - fn parse(input: ParseStream) -> syn::Result { - let parsed = Punctuated::::parse_terminated(input)?; - - let params: Vec = parsed.into_iter().collect(); - - Ok(Self { params }) - } -} - -#[derive(Hash, Eq, PartialEq)] -enum CallbackWrapperArgType { - /// The argument index of the callback function that is a pointer to the instance the callback - /// function is called on. This pointer must be convertible to a `&self` or `&mut self` reference, - /// depending on the callback function's receiver parameter mutability. - Pub, - /// Whether result types should be unwrapped by the wrapper function (to allow the callback - /// function to return `Result` instead of `T`). - UnwrapResult, - /// Trace callback entrypoints with tracing::trace! - Trace, -} - -impl Parse for CallbackWrapperArgType { - fn parse(input: ParseStream) -> syn::Result { - if let Ok(_pub_literal) = input.parse::() { - Ok(Self::Pub) - } else if let Ok(ident) = input.parse::() { - match ident.to_string().as_str() { - "unwrap_result" => Ok(Self::UnwrapResult), - "trace" => Ok(Self::Trace), - _ => abort!(ident.span(), "Unknown callback wrapper argument type"), - } - } else { - abort!(input.span(), "Expected 'pub'"); - } - } -} - -enum CallbackWrapperArgValue { - None, -} - -struct CallbackWrapperArg { - typ: CallbackWrapperArgType, - _value: CallbackWrapperArgValue, -} - -impl Parse for CallbackWrapperArg { - fn parse(input: ParseStream) -> syn::Result { - let typ = input.parse::()?; - let _value = match typ { - CallbackWrapperArgType::Pub - | CallbackWrapperArgType::UnwrapResult - | CallbackWrapperArgType::Trace => CallbackWrapperArgValue::None, - }; - Ok(Self { typ, _value }) - } -} - -struct CallbackWrapperArgs { - args: Vec, -} - -impl Parse for CallbackWrapperArgs { - fn parse(input: ParseStream) -> syn::Result { - let parsed = if let Ok(parsed) = - Punctuated::::parse_terminated(input) - { - parsed - } else { - abort! { - input.span(), - "Failed to parse aguments to `callback_wrappers()`" - }; - }; - - let args: Vec = parsed.into_iter().collect(); - - Ok(Self { args }) - } -} - -impl CallbackWrapperArgs { - pub fn is_pub(&self) -> bool { - self.args - .iter() - .any(|arg| matches!(arg.typ, CallbackWrapperArgType::Pub)) - } - - pub fn has_unwrap_result(&self) -> bool { - self.args - .iter() - .any(|arg| matches!(arg.typ, CallbackWrapperArgType::UnwrapResult)) - } - - pub fn has_trace(&self) -> bool { - self.args - .iter() - .any(|arg| matches!(arg.typ, CallbackWrapperArgType::Trace)) - } -} - -#[proc_macro_attribute] -pub fn params(_args: TokenStream, input: TokenStream) -> TokenStream { - input -} - -#[proc_macro_error] -#[proc_macro_attribute] -/// Create a companion C FFI function that calls the Rust method. -/// -/// # Syntax -/// -/// Below is an example of the syntax for this macro. The `callback_wrappers` macro must be -/// applied to an `impl` block. The `params` macro must be applied to *all* methods in that -/// `impl` block. Parameters specified in the `params` must be in the order the C FFI callback -/// function expects to receive them from the C code. The parameter that is a pointer or some -/// other value that can be converted to a `&self` or `&mut self` reference must be prefixed -/// with a `!`, and it must have a `From` implementation from the type of the `self` parameter in -/// the FFI callback function to the type of the `self` parameter in the Rust method (e.g. either -/// `&self` or `&mut self`). -/// -/// ```ignore -/// #[callback_wrappers(?, ?)] -/// -/// impl { -/// #[params(, ..., !)] -/// pub fn (&self, , ...) -> { -/// } -/// } -/// ``` -/// -/// -/// # Examples -/// -/// This will generate an extern "C" function `test_callbacks::test` that calls the Rust method -/// `Test::test`, with the first argument being a pointer to the instance of `Test`. -/// -/// ```rust,ignore -/// use ffi_macro::{callback_wrappers, params}; -/// -/// pub struct TestStruct {} -/// -/// #[callback_wrappers(pub)] -/// impl TestStruct { -/// #[params(!slf: *mut std::ffi::c_void, ...)] -/// pub fn test(&self, a: i32, b: i32) -> i32 { -/// a + b -/// } -/// } -/// ``` -/// -/// We can also use the `unwrap_result` argument to tell our generated FFI functions to unwrap -/// result types from our method. -/// -/// ```rust,ignore -/// use ffi_macro::{callback_wrappers, params}; -/// use anyhow::Result; -/// -/// pub struct TestStruct {} -/// -/// #[callback_wrappers(pub, unwrap_result)] -/// impl TestStruct { -/// #[params(!slf: *mut std::ffi::c_void, ...)] -/// pub fn test2(&self, a: i32, b: i32) -> Result { -/// Ok(a + b) -/// } -/// } -/// ``` -pub fn callback_wrappers(args: TokenStream, input: TokenStream) -> TokenStream { - let impl_args = parse_macro_input!(args as CallbackWrapperArgs); - let visibility = if impl_args.is_pub() { - quote! { pub } - } else { - quote! {} - }; - let implementation = parse_macro_input!(input as ItemImpl); - - let struct_name = if let Type::Path(ty) = &*implementation.self_ty { - if let Some(p) = ty.path.segments.first() { - p.ident.clone() - } else { - abort! { - ty, - "Path contains no entries" - } - } - } else { - abort! { - implementation, - "Could not obtain struct type from implementation" - } - }; - - let struct_name_string = quote! { #struct_name }.to_string().to_ascii_lowercase(); - - let impl_fns = implementation - .items - .iter() - .filter_map(|item| { - if let syn::ImplItem::Fn(method) = item { - Some(method) - } else { - None - } - }) - .collect::>(); - - let cb_mod_name = format_ident!("{}_callbacks", struct_name_string); - - let callbacks = impl_fns - .iter() - .map(|f| { - let attrs = &f.attrs; - let is_unsafe = f.sig.unsafety.is_some(); - let args: CallbackWrapperArgParams = - if let Some(args) = attrs.iter().find(|a| a.path().is_ident("params")) { - match args.parse_args() { - Ok(parsed) => parsed, - Err(e) => { - abort! { - args, - "Could not parse arguments to `params` attribute: {}", e - } - } - } - } else { - abort! { - f, - "Expected `params` attribute" - }; - }; - let fname = &f.sig.ident; - - // Check if frty is a Result - let is_result = if let ReturnType::Type(_, ty) = &f.sig.output { - if let Type::Path(tp) = ty.as_ref() { - if let Some(segment) = tp.path.segments.last() { - segment.ident == "Result" - } else { - false - } - } else { - false - } - } else { - false - }; - - let frty = if is_result { - quote! {} - } else { - let rty = &f.sig.output; - quote! { #rty } - }; - - let receiver = &f.sig.receiver().expect("No method receiver (self parameter) found on function"); - - // Get the args without the receiver, this will be dropped in for 'Ellipsis' - let fargs = &f - .sig - .inputs - .iter() - .filter(|fa| !matches!(fa, syn::FnArg::Receiver(_))) - .cloned() - .collect::>(); - - let mut cb_args = Vec::new(); - let mut cb_receiver_arg_offset = None; - let mut receiver_arg = None; - - for param in args.params { - match param { - CallbackWrapperArgParam::BangArg(arg) => { - receiver_arg = Some(arg.clone()); - - cb_args.push(arg); - cb_receiver_arg_offset = Some(cb_args.len() - 1); - } - CallbackWrapperArgParam::Arg(arg) => cb_args.push(arg), - CallbackWrapperArgParam::Ellipsis => { - for arg in fargs { - cb_args.push(arg.clone()); - } - } - } - } - - let (receive, receiver_ident)= match receiver_arg { - Some(arg) => { - let ident = match arg { - FnArg::Typed(pat) => match *pat.pat { - syn::Pat::Ident(ref ident) => ident.ident.clone(), - _ => abort! { - pat, - "expected identifier" - }, - }, - _ => abort! { - arg, - "expected identifier" - }, - }; - (quote! { - let #ident: &mut #struct_name = #ident.into(); - }, ident) - } - None => { - abort! { - receiver, - "expected receiver" - } - } - }; - - let cb_selfcall_args = if let Some(offset) = cb_receiver_arg_offset { - let mut args = cb_args.clone(); - args.remove(offset); - args - } else { - cb_args.clone() - }; - - let cb_selfcall_args_identsonly = cb_selfcall_args - .iter() - .map(|a| { - let ident = match a { - FnArg::Typed(pat) => match *pat.pat { - syn::Pat::Ident(ref ident) => ident.ident.clone(), - _ => abort! { - pat, - "expected identifier" - }, - }, - _ => abort! { - a, - "expected identifier" - }, - }; - quote! { #ident } - }) - .collect::>(); - - let fname_string = f.sig.ident.to_string(); - - let unwrap_mb = if is_result && impl_args.has_unwrap_result() { - quote! { .expect(&format!("Error: unable to unwrap result from FFI callback {}::{}", #struct_name_string, #fname_string)); } - } else if is_result { - abort! { f.sig.output, "Result output, but `unwrap_result` was not specified" } - } else { - quote! {} - }; - - - let trace_mb = if impl_args.has_trace() { - quote! { - tracing::trace!("Callback {}::{} executed", #struct_name_string, #fname_string); - } - } else { - quote! {} - }; - - let call = quote! { - #receiver_ident.#fname( - #( #cb_selfcall_args_identsonly ),* - )#unwrap_mb - }; - - let call = if is_unsafe { - quote! { - unsafe { #call } - } - } else { - call - }; - - quote! { - #[no_mangle] - pub extern "C" fn #fname( - #( #cb_args ),* - ) #frty { - #trace_mb - #receive - #call - } - } - }) - .collect::>(); - - let r: TokenStream = quote! { - #implementation - - #visibility mod #cb_mod_name { - use super::*; - - #(#callbacks)* - } - } - .into(); - - // let _s = r.to_string(); - - // eprintln!("{}", _s); - - r -} diff --git a/util/ffi-macro/tests/test_callback.rs b/util/ffi-macro/tests/test_callback.rs deleted file mode 100644 index 97b5e0f8..00000000 --- a/util/ffi-macro/tests/test_callback.rs +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![allow(clippy::new_without_default)] - -use anyhow::Result; -use ffi_macro::{callback_wrappers, params}; - -struct TestStruct {} - -impl TestStruct { - pub fn new() -> Self { - Self {} - } -} - -#[callback_wrappers(pub, unwrap_result)] -impl TestStruct { - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn do_return(&self, a: i32, b: i32) -> i32 { - a + b - } - - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn do_result(&self, a: i32, b: i32) -> Result { - Ok(a + b) - } - - #[params(!slf: *mut std::ffi::c_void)] - pub fn do_noargs(&mut self) -> Result<()> { - Ok(()) - } -} - -impl<'a> From<*mut std::ffi::c_void> for &'a mut TestStruct { - fn from(ptr: *mut std::ffi::c_void) -> &'a mut TestStruct { - unsafe { &mut *(ptr as *mut TestStruct) } - } -} - -#[test] -fn test_cb() { - let t = Box::new(TestStruct::new()); - // Pretend this object was created in C by a malloc or some such thing - let t_ptr = Box::into_raw(t); - let t_ptr_void = t_ptr as *mut std::ffi::c_void; - println!("{}", teststruct_callbacks::do_return(t_ptr_void, 1, 2)); - teststruct_callbacks::do_result(t_ptr_void, 1, 2); - teststruct_callbacks::do_noargs(t_ptr_void); - // Free it on drop since it wasn't actually created in C by a malloc or some such thing - let _: Box = unsafe { Box::from_raw(t_ptr as *mut TestStruct) }; - println!("Done"); -} diff --git a/util/ffi-macro/tests/test_lifetime.rs b/util/ffi-macro/tests/test_lifetime.rs deleted file mode 100644 index c81ca6aa..00000000 --- a/util/ffi-macro/tests/test_lifetime.rs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#![allow(clippy::new_without_default)] - -use anyhow::Result; -use ffi_macro::{callback_wrappers, params}; - -struct TestStruct<'a> { - _x: &'a [u8], -} - -impl<'a> TestStruct<'a> { - pub fn new() -> Self { - Self { _x: &[1] } - } -} - -#[callback_wrappers(pub, unwrap_result)] -impl<'a> TestStruct<'a> { - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn do_return(&self, a: i32, b: i32) -> i32 { - a + b - } - - #[params(!slf: *mut std::ffi::c_void, ...)] - pub fn do_result(&self, a: i32, b: i32) -> Result { - Ok(a + b) - } - - #[params(!slf: *mut std::ffi::c_void)] - pub fn do_noargs(&mut self) -> Result<()> { - Ok(()) - } -} - -impl<'a, 'b> From<*mut std::ffi::c_void> for &'a mut TestStruct<'b> { - fn from(ptr: *mut std::ffi::c_void) -> &'a mut TestStruct<'b> { - unsafe { &mut *(ptr as *mut TestStruct) } - } -} - -#[test] -fn test_cb() { - let t = Box::new(TestStruct::new()); - // Pretend this object was created in C by a malloc or some such thing - let t_ptr = Box::into_raw(t) as *mut std::ffi::c_void; - println!("{}", teststruct_callbacks::do_return(t_ptr, 1, 2)); - teststruct_callbacks::do_result(t_ptr, 1, 2); - teststruct_callbacks::do_noargs(t_ptr); - // Free it on drop since it wasn't actually created in C by a malloc or some such thing - let _: Box> = unsafe { Box::from_raw(t_ptr as *mut TestStruct<'_>) }; - println!("Done"); -} diff --git a/util/ffi-macro/tests/ui.rs b/util/ffi-macro/tests/ui.rs deleted file mode 100644 index e4b6f8af..00000000 --- a/util/ffi-macro/tests/ui.rs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#[test] -#[cfg_attr(miri, ignore)] -fn ui() { - let t = trybuild::TestCases::new(); - // t.compile_fail("tests/ui/*.rs"); - t.compile_fail("tests/ui/test_missing_params.rs"); -} diff --git a/util/ffi-macro/tests/ui/test_missing_params.rs b/util/ffi-macro/tests/ui/test_missing_params.rs deleted file mode 100644 index dba21cfa..00000000 --- a/util/ffi-macro/tests/ui/test_missing_params.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -use ffi_macro::callback_wrappers; - -struct Test {} - -#[callback_wrappers] -impl Test { - pub fn test(&self, a: i32, b: i32) -> i32 { - a + b - } -} - -fn main() {} diff --git a/util/ffi-macro/tests/ui/test_missing_params.stderr b/util/ffi-macro/tests/ui/test_missing_params.stderr deleted file mode 100644 index 06f78ace..00000000 --- a/util/ffi-macro/tests/ui/test_missing_params.stderr +++ /dev/null @@ -1,7 +0,0 @@ -error: Expected `params` attribute - --> tests/ui/test_missing_params.rs:10:5 - | -10 | / pub fn test(&self, a: i32, b: i32) -> i32 { -11 | | a + b -12 | | } - | |_____^